KT Connect项目在迭代了10个小版本后变化

在Dockone微信分享(二三一)中,我分享了如何基于 KT Connect
实现本地与Kubernetes集群内之间的各种联调测试的场景。 之后我们继续迭代了10+小版本后带来了一些新的变化。

特性介绍

KT Connect
是面向Kubernetes开发者提供的一款轻量级的开发测试辅助工具。基于SSH协议实现本地与Kubernetes集群内服务之间的双向网络互通。从而可以直接在本地访问Kubernetes集群中的服务,以及从集群访问本地服务的能力。并提供了以下命令:

  • connect: 建立本地->Kubernetes的网络通道,从而在本地可以直接访问PodIP, CluserIP以及Service DNS
  • exchange: 将集群中所有对特定应用的网络请求,全部转发到本地服务
  • mesh: 将部分对特定应用的网络请求,转发到本地服务。配合Istio可以实现精确的流量控制

Windows的原生支持

在新版本中全新引入socks5代理模式,解决了由于依赖sshuttle导致Windows用户无法使用connect功能的问题。 在全新的版本中,Windows用户可以使用如下命令:

ktctl -d connect --method socks5

在命令执行成功后,通过设置http_proxy和https_proxy环境变量就可以直接在本地访问集群的PodIP以及ClusterIP。 同时为了解决socks5模式下无法使用DNS域名解析的问题新增加参数 --dump2hosts
可以自动同步service dns解析规则到系统的hosts文件,并且在退出后自动清理。

同时还新增了IDEA插件 JVM Inject
可以自动加载http_proxy以及https_proxy参数到Java启动命令从,从而自动使用socks5代理模式, 点击这里
查看详细介绍

DNS域名解析增强

在旧版的KT Connect中本地访问Kubernetes集群中的服务只能使用类似于 ..svc.cluster.local
这样的完整域名,在新版本中为了保持本地与集群的一致性。 目前已经支持本地直接使用
以及 .
的完整支持。


新增 run
命令:暴露本地服务到集群

在kubectl中我们可以使用 kubectl run
命令在集群中快速使用镜像创建deployment并暴露svc.
在KT Connect中我们也可以采用类似的方式直接在集群中暴露本地服务:

ktctl run localservice --port=5701 --expose

其中localservice是注册到Kubernetes集群中的服务名,通过在集群中访问localservice:5701可以直接访问到本地服务。

新增dashboard以及check命令

为了简化用户对当前本地环境无法正常使用ktctl相关命令的问题,新增 check
命令用于检查本地环境依赖。通过 ktctl dashboard init
以及 ktctl dashboard open
可以帮助用户快速安装以及使用KT Connect的Dashboard支持。

特别感谢

在这10多个版本迭代过程中除了云效团队以外,还有以下用户一起参与了KT Connect的建设中排名不分先后:

也希望有更多的用户和开发者能够参与到KT Connect的项目中,一起从Cloud Native到Cloud To Native,打造面向Kubernetes的高效的本地开发测试体验。