3. Visual Studio Bridge to Kubernetes-附加到k8s集群调试

演示资源已提交:k8s-helm-tpl - Repos (azure.com)

目录

前言

1. Bridge to Kubernetes

2. launchSettings.json 新增启动类型

3. Helm Upgrade

4. Debug within Cluster 

5. Override cluster env variables 

隔离模式原理图


前言

通过前面两篇博客,我们使用helm将一个Blazor Server项目部署到了k8s,并为其配置了Ingress,

1. HelmTemplate 3分钟将项目打包成Helm Chart并部署至k8s_郭麻花的博客-CSDN博客

2.HelmTemplate Guidance and Enable Ingress for Blazor Server_郭麻花的博客-CSDN博客

接下来,我们来探索一个少见但非常实用的操作:将程序桥接到Kubernetes Cluster中调试。

首先声明:这是非常具有应用场景的技术,并且我们在研发阶段中已经采用了这种技术。

当微服务体系中的服务越来越多时,在开发阶段怎么进行调试就成了问题。

或许团队会搭建一套公用的测试环境,每个项目调试时会根据环境变量,连接到测试环境进行调试。那么这就带来一个问题,项目所有人共用的是同一个集群环境,同样微服务版本。假如测试环境提交了一个有故障的服务版本,那么可能导致所有的测试工作无法正常进行,或者影响到别人正在进行的调试工作。

微软提供的这个VS插件可以让你的本地代码通过VS直接连接到现有的Cluster,无论是你本地的或者是云服务上面的。并且提供了隔离和非隔离两种调试模式。

1. Bridge to Kubernetes

接下来我们要介绍的这个Visual Studio 插件是微软团队研发的,它主要做了以下几点

  • 将集群流量重定向到Visual Studio
  • 从群集收集环境变量、服务、卷装载和secret等
  • 使用Visual Studio调试设置的变量
  • 更新本地Host文件
  • 运行调试

并且它还具有路由隔离模式,假如你和其他开发人员共用一个cluster进行调试,你可以选择使用路由功能,仅将请求从每个子域重定向到开发计算机,从而避免中断群集中的其他流量

!我并不清楚它现在可用性怎么样,仅作学习使用Bridge to Kubernetes on Visual Studio | Microsoft

到 Visual Studio扩展市场下载Bridge to Kubernetes插件

2. launchSettings.json 新增启动类型

3. Helm Upgrade

我在此注释掉了livenessProbe和readinessProbe,并且使用helm upgrade更新了cluster上的服务,否则调试起来的pod会失败。

4. Debug within Cluster 

1. 点击调试,会提示你连接到cluster,并且选择调试目标。

 2. 在页面点击 Fetch Data,命中断点

5. Override cluster env variables 

在.csproj同级目录下新建一个KubernetesLocalProcessConfig.yaml文件,在其中覆写Cluster中的环境变量。

隔离模式原理图

隔离模式下启用 Bridge to Kubernetes 复制服务和支持独立路由的 envoy pod。

猜你喜欢

转载自blog.csdn.net/qq_40404477/article/details/126909484