微软与红帽(Red Hat)合作开发在VS Code的Kubernetes扩展组件中,加入Kubernetes本地调试(Local Tunnel Debugging)功能,开发者能够针对任何集群,即时地使用原生开发工具进行调试。在过去几年,微服务架构逐渐发展成为构建云上应用程序的标准,但开发微服务应用所面临的挑战却经常被忽略,由于微服务架构将应用切分成多个服务,因此开发人员现在有更多的部分需要开发、测试和管理。测试排错应用需要了解多个微服务之间的配置和执行,而且要在本地端机器复制集群环境也存在许多困难与复杂性,甚至在部分情况,因为开发机器资源的限制,使得微服务应用没办法完整地在开发机器上进行调试排错。为了解决微服务开发的调试问题,微软和红帽共同开发了这个本地通道调试功能,这个新功能被添加在VS Code的Kubernetes扩展组件中,用户可以使用这个功能,在开发机器上原生执行应用的微服务,并且继续使用既有的工具进行开发,Kubernetes扩展组件会连接到Kubernetes集群,与其他应用和服务一起运行。此时应用发出的请求会在服务之间路由,直到排查的服务被呼叫,请求会被导向正在本地端排查的开发机器,而请求处理完毕,便会被无缝地送回集群中的其他服务。这种开发形式,让开发者能够以更加整合的方式,测试应用的各个微服务,调试工作都能在本地端进行,而且本地通道调试还进一步简化操作复杂性,开发者不需要构建Docker镜像,且要在部署到集群后才看得到改变。
另外,这项新功能还可以复制集群环境,直接应用到开发机器上,这消除了原本开发过程,需要开发者手动获取、配置和编译外部服务相依性的麻烦,极大程度简化微服务开发,来自集群环境的环境变数和连接字串等配置,都会被复制到开发机器,使本地端微服务能够顺利执行。而针对共享集群的开发团队,本地通道调试功能还支持隔离服务,开发者会获得一个特别的URL,使用该URL的流量,才会被路由到开发者的开发机器,其他使用原始应用的URL,都会被路由到集群中未经修改的服务,因此开发者的开发环境,不会对团队成员造成干扰。获取 Visual Studio Code 扩展组件
VS Code 的 Kubernetes 扩展组件
https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools