头图

越来越多的组织完成了云原生转型并将服务迁移至 Kubernetes,获得了更佳的资源利用率和可以满足不断扩大需求的能力。与此同时系统复杂度的提升也给组织带来一些困难,比如开发者每一次小变更的验证都必须提交一次CI/CD。为了实现快速、高效的开发,组织中的开发者需要一套方法来弥补远程 Kubernetes 集群和本地环境之间的差距,并缩短运行反馈和调试的时间。

KubeOrbit CLI 作为一款开源工具,以轻量无依赖的方式,允许开发者针对远程 Kubernetes集群在本地编程和测试微服务,其提供的能力主要是打通本地和远程 Kubernetes 集群,使远程环境本地化,从而让服务开发者实现更快的反馈、协作和调试。

在设计 KubeOrbit CLI 时,我们给它配备了优秀的场景兼容能力。它不但支持原生的 Kubernetes SVC 服务发现,也同时支持 Eureka、Nacos、Consul 等主流微服务注册发现中心。

KubeOrbit CLI 的核心能力为 Forward 命令,它的工作原理是将流量从远程集群中引向本地,在集群中可以直接访问本地服务,通过在集群中部署 Proxy Agent 来配置容器的三层路由转发规则,同时配合本地 CLI 工具创建 ssh 端口转发,使得 ssh 客户端和服务端之间成功建立一个隧道来进行通信。Forward 用到的是 ssh 远程端口转发的方式,也就是将发送到远端主机端口的请求转发到目标主机,这样可以通过访问远程端口来达到访问目标主机端口的目的。

下面是执行 Forward 后可以看到 Traffic Agent 已注入的图解:

其详细工作流程为:

  1. 重启 Workload Pod
  2. 初始化容器启动配置 Pod 网络栈
  3. 代理容器 kubeorbit-proxy 注入成功
  4. 执行 port-forward 将远程服务端口映射至本地 ssh 端口
  5. 执行 ssh 远程端口转发,将流量转发至本地指定服务占用端口

目前 KubeOrbit CLI 跨平台操作系统已经支持 Mac、Linux、Windows,当前版本只提供了远程到本地集群的打通能力,未来会继续优化,实现按需集成本地到远程集群打通以及内网 DNS 的功能。

了解更多:www.kubeorbit.io
关注我们:GitHub 知乎 微博
联系我们:dev.relation@teamcode.com


TeamCode
23 声望14 粉丝

TeamCode - 云端协作开发平台,重构开发流程,提供基于云端开发的一站式工具和服务,持续自动生成开发环境、构建和部署项目,帮助开发者云端协作开发。