0%

ali_kt

阿里开源 KT Connnect,轻量级云原生测试环境治理平台来啦!

参考链接:

https://developer.aliyun.com/article/751321?scm=20140722.184.2.173

https://www.v2ex.com/t/584314

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

https://alibaba.github.io/kt-connect/#/

目前越来越多的开发者开始采纳 Kubernetes 管理基础设施环境,并通过 Kubernetes 完成日常的开发,测试以及生产发布活动,为了能够有效的帮助开发者提升在 Kubernetes 场景下的本地开发测试效率,阿里巴巴研发效能云效团队面向原生 Kubernetes 开源了一款轻量级的开发者工具 KT Connect。

1、KT Connect 是什么

KT Connect ( Kubernetes Developer Tool ) 是轻量级的面向 Kubernetes 用户的开发测试环境治理辅助工具。其核心是通过建立本地到集群以及集群到本地的双向通道,从而提升在持续交付生命周期中开发环节的效率问题以及开发测试环境的复用问题:

KT Connect 包含一组用于快速实现本地与集群联调的 Cli 命令集: **connect,exchange,mesh **以及一个集中式的可视化 Dashboard

  • **connect: **在 kubectl 的基础上基于 SSH 协议构建本地到 Kubernetes 集群的 VPN 网络,使得用户本地能够直接访问 Kubernetes 集群的内部网络如 PodIP, ClusterIP。同时基于内置的 DNS 服务,开发者本地可以直接访问集群内的 Service DNS 地址。
  • **exchange: **通过部署代理容器接管集群内对特定应用的全部流量并转发到开发者本地端口,从而帮助开发者将本地服务加入到集群中从而实现联调测试。
  • **mesh: **与 exchange 类似,区别在于 mesh 不会完全接管所有流量,而是在 Service 后部署一个带有特定版本号的 Pod 实例,配合 Istio 的流量管理规则,从而可以将特定流量转发到开发者本地。

通过 KT Connect 提供的上述能力,开发者可以从传统的“开发-构建-部署”的场景中解脱,直接实现本地开发本地联调,从而可以极大的提升开发效率。同时通过 Mesh 提供混合能力,通过复用测试环境减少在基础设施层面的资源投入。

2、KT Connect 的优势

KT Connect 源于阿里巴巴研发效能在测试规模化环境治理上的丰富经验,同时受启发于像 Azure Dev Spaces 和 Telepresence 这样的开发者工具,而形成的一套面向原生 Kubernetes 用户的测试环境治理以及本地联调解决方案:

  • 原生 Kubernetes 支持:兼容任意 Kubernetes 集群,同时支持以 kubectl 插件的方式运行;
  • 轻量级:基于 Go 实现,且只在 connect 的 VPN 网络能力方面主要依赖 SSHUttle 工具,无其它任何第三方依赖;用户可以在任意能正常运行 kubectl 的环境中使用 KT Connect ;
  • 多种应用场景:通过与原生 Istio 的集成,支持用户独占式或者共享开发测试环境;
  • 可视化:基于同一的 Dashboard 以及可视化能力,让用户更直观的了解测试环境的使用情况。
  • 可扩展性:KT Connect 中提供了详细的元数据信息,用户可以快速基于 Kubernetes API 扩展 Dashboard 以及功能;

3、安装

安装 kubectl

安装文档:https://kubernetes.io/docs/tasks/tools/install-kubectl/

配置K8S集群凭证

在用户家目录创建 .kube目录,并将config文件放入该目录

安装 KT

Mac
Install sshuttle
1
brew install sshuttle
Download And Install KT
1
2
3
4
5
6
curl -OL https://rdc-incubators.oss-cn-beijing.aliyuncs.com/stable/ktctl_darwin_amd64.tar.gz

tar -xzvf ktctl_darwin_amd64.tar.gz
mv ktctl_darwin_amd64 /usr/local/bin/ktctl

ktctl -h
Windows

https://github.com/alibaba/kt-connect/releases下载安装包![](./kt2.png)

解压安装包获取ktctl.exe文件。

4、连接

Mac

1
ktctl connect

Windows

1
2
3
4
5
ktctl connect --method=socks5 --dump2hosts

# 新开CMD窗口
# 配置环境变量
export http_proxy=socks5://127.0.0.1:2223
1
2
3
4
5
# 访问集群服务

curl http://<POD_IP>:<PORT> #本地直接访问PodIP
curl http://<CLUSTER_IP>:<PORT> # 本地直接访问ClusterIP
curl http://<SVC_NAME>:<PORT> #使用Service的域名访问