演示资源已提交:k8s-helm-tpl - Repos (azure.com)
目录
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,无论是你本地的或者是云服务上面的。并且提供了隔离和非隔离两种调试模式。
接下来我们要介绍的这个Visual Studio 插件是微软团队研发的,它主要做了以下几点
并且它还具有路由隔离模式,假如你和其他开发人员共用一个cluster进行调试,你可以选择使用路由功能,仅将请求从每个子域重定向到开发计算机,从而避免中断群集中的其他流量
!我并不清楚它现在可用性怎么样,仅作学习使用Bridge to Kubernetes on Visual Studio | Microsoft
到 Visual Studio扩展市场下载Bridge to Kubernetes插件
我在此注释掉了livenessProbe和readinessProbe,并且使用helm upgrade更新了cluster上的服务,否则调试起来的pod会失败。
1. 点击调试,会提示你连接到cluster,并且选择调试目标。
2. 在页面点击 Fetch Data,命中断点
在.csproj同级目录下新建一个KubernetesLocalProcessConfig.yaml文件,在其中覆写Cluster中的环境变量。
隔离模式下启用 Bridge to Kubernetes 复制服务和支持独立路由的 envoy pod。