使用 KT-Connect 0.3.7在本地访问 Kubernetes

文章目录


引言

在 Kubernetes 开发环境中,本地机器通常无法直接访问集群内的 Pod,尤其是当 Pod 运行在k8s中的私有网段时。KT-Connect 提供了一种便捷的方式,让本地 Windows / Linux / MacOs机器可以访问 Kubernetes 内部的 Pod,极大地提升了开发和调试效率。

本文将介绍如何在 **Windows / Linux** 上安装和使用 KT-Connect,并解决可能遇到的问题。
博主穷啊,没有MacOs

安装包下载路径

官网

官网下载

CSDN

下载链接

环境

  • linux:CentOS Linux release 7.8.2003 (Core)
  • windows:Windows 10 企业版:22H2

什么是 KT-Connect?

KtConnect阿里巴巴 开源的一款工具,主要用于 本地开发环境与 Kubernetes 集群互通,帮助开发者在本地调试和访问 Kubernetes 集群中的 Pod 和服务。

KT-Connect 的作用

  • 本地访问 Kubernetes Pod(绕过 Kubernetes 网络隔离)
  • 本地调试 Kubernetes 服务(无需部署到集群即可模拟真实环境)
  • 解决 Kubernetes 网络隔离问题 (如 100.64.0.0/10 Pod 网段无法直接访问)

KT-Connect 主要功能

本地访问 Pod

使用 ktctl connect,可让本地机器访问 Kubernetes Pod 网段(如 100.64.0.0/10),使得开发者可以直接测试和调试 Pod 内的应用。

端口映射(Mesh 模式)

ktctl exchange 允许将本地服务替换集群中的 Pod,使得集群内的流量直接进入本地开发环境,适用于微服务调试。

本地代理(Socks5 模式)

ktctl connect --method socks5 允许本地应用通过 Socks5 代理访问 Kubernetes 内部网络,不改变本地路由配置。

KT-Connect 适用场景

场景 解决方案
本地访问 Kubernetes 内部 Pod ktctl connect --method vpn
在本地调试 Kubernetes 微服务 ktctl exchange
使用代理访问 Kubernetes 内部资源 ktctl connect --method socks5
临时访问 Kubernetes Service kubectl port-forward

KT-Connect 的工作原理

KT-Connect 通过在 Kubernetes 集群内启动 一个特权 Pod(kt-rectifier),然后在本地创建一个 VPN 或 Socks5 代理,打通本地与 Kubernetes 内部网络的通信。

KT-Connect 连接模式

模式 作用 适用场景
VPN 模式(默认) 本地加入 Kubernetes 内部网络 适用于本地访问 Pod 和 Service
Socks5 模式 通过 Socks5 代理访问 Kubernetes 适用于仅部分应用需要访问 Kubernetes
Exchange 模式 本地应用替换 Kubernetes Pod 适用于调试集群内服务

为什么选择 KT-Connect?

方案 优势 劣势
KT-Connect 易用、支持 VPN & Socks5、多种模式 需要 Kubernetes 允许 privileged Pod
kubectl port-forward 直接使用 Kubernetes 原生命令 只能访问单个 Pod,端口绑定麻烦
Cloud VPN 直接让本地接入 Kubernetes VPC 配置复杂,通常不适用于本地开发

Linux上部署以及测试

拷贝k8s的config到linux上

登录k8s拷贝config默认是在 ~/.kube/config

直接复制走就行

bash 复制代码
cat ~/.kube/config


复制到linux的 ~/.kube/config

bash 复制代码
 mkdir ~/.kube/
 vim ~/.kube/config
 cat  ~/.kube/config

配置hosts解析


!!!!文件权限修改

bash 复制代码
[root@sonar ~]# cd .kube/
l[root@sonar .kube]# ll
total 8
-rw-r--r-- 1 root root 5611 Mar 31 13:49 config
[root@sonar .kube]# chmod 600 config 
[root@sonar .kube]# ll
total 8
-rw------- 1 root root 5611 Mar 31 13:49 config
[root@sonar .kube]# 

部署KT-Connect

包名:ktctl_0.3.7_Linux_x86_64.tar.gz

系统:CentOS Linux release 7.8.2003 (Core)

配置环境变量

/etc/profile

bash 复制代码
export KT_HOME=/data/kt
export PATH=$PATH:$KT_HOME
bash 复制代码
source /etc/profile

连接

bash 复制代码
ktctl connect

测试

查看k8s的pod地址


正常进行通信了
断开kt-connect


测试不通了

Windows上部署以及测试

拷贝k8s的config到Windows上

登录k8s拷贝config默认是在 ~/.kube/config

直接复制走就行

打开powershell,并且以管理员运行

默认打开是你的用户,我的是Administrator用户

创建.kube

然后创建config.txt把k8s中内容粘贴进去,然后重命名config

配置hosts解析

C:\Windows\System32\drivers\etc

部署KT-Connect

我是解压到了这个下边

ktctl_0.3.7_Windows_x86_64.zip

bash 复制代码
D:\downloads\ktctl_0.3.7_Windows_x86_64

配置环境变量




连接&&测试

bash 复制代码
 ktctl.exe --help


查看k8spod的地址

测试
因为没有连接所有不通

连接

bash 复制代码
ktctl.exe connect


不要关闭,新开窗口测试


可以连接了

总结

KT-Connect 是一个高效的工具,适用于开发者在本地访问和调试 Kubernetes 应用。它通过 VPN、Socks5 或 exchange 模式,使开发者可以像访问本地应用一样访问 Kubernetes 内部 Pod,极大提升开发效率。

相关推荐
可观测性用观测云15 分钟前
Kubernetes APIServer 可观测最佳实践
kubernetes
阿里云云原生36 分钟前
Java版Manus实现来了,Spring AI Alibaba发布开源OpenManus实现
云原生
阿里云云原生40 分钟前
当实时消费遇到 SPL:让数据处理更高效、简单
云原生
碣石潇湘无限路2 小时前
【云原生】Kubernetes CEL 速查表
容器·贪心算法·kubernetes
阿里云云原生3 小时前
大模型 Token 的消耗可能是一笔糊涂账
云原生
mingyuewu4 小时前
MAC安装docker 后提示com.docker.vmnetd”将对您的电脑造成伤害
macos·docker·容器
企鹅侠客6 小时前
Prometheus operator怎么添加targets和告警规则
运维·云原生·kubernetes·prometheus·pod
专注代码七年7 小时前
Docker运维篇
运维·docker·容器
一杯敬朝阳 一杯敬月光8 小时前
WIN11 企业版 部署Dify+Docker
运维·docker·容器
Leo Han8 小时前
k8s常用命令(持续更新中)
docker·容器·kubernetes