在我们系统部署到 k8s集群以后,开发测试模式也会有一定变化,下面是一些常见的问题,如果处理不好,直接影响我们的效率

  • 本地服务如何访问k8s集群里面的服务进行功能测试?
  • 本地如何快速访问k8s集群中资源,比如访问某个微服务的 swagger?
  • 如何把k8s集群里面流量转发到本地服务,进行功能测试?
  • 如何临时快速部署一个服务到 k8s集群 里面进行功能验证?

以上问题,我相信大多数开发者都会遇到过,而且常用的方式应该是把服务部署到 k8s中在进行测试,这种方式虽然简单,但是效率很低,因为我们的系统还在单元测试,遇到的bug会比较多,每次改动都要重新发布,时间都花费在系统打包部署上面了

下面推荐一个阿里开源的k8s工具,它可以帮助我们解决以上问题

KtConnect介绍

图片图片

KtConnect(Kt为Kubernetes Toolkit集群工具包的简写)由阿里开源,是一款基于k8s环境用于提高本地测试联调效率的小工具,它提供了本地和测试环境集群的双向互联能力

地址:https://github.com/alibaba/kt-connect

特性

  • Connect:建立数据代理通道,实现本地服务直接访问Kubernetes集群内网(包括Pod IP和Service域名)
  • Exchange:让集群服务流量重定向到本地,实现快速验证本地版本和调试排查问题
  • Mesh:创建路由规则重定向特定流量,实现多人协作场景下互不影响的本地调试
  • Preview:暴露本地服务到集群,实现无需发布即可在线预览集成效果

快速体验

在这篇文档里,使用一个简单的示例,来快速演示通过KtConnect完成本地直接访问集群中的服务、以及将集群中指定服务的请求转发到本地的过程。

安装

brew install kt-connect