使用 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,极大提升开发效率。

相关推荐
慌糖5 小时前
微服务介绍
微服务·云原生·架构
高山莫衣10 小时前
Docker Desktop导致存储空间不足时的解决方案
docker·容器·eureka
鹏大师运维10 小时前
在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
linux·运维·docker·容器·麒麟·统信uos·中科方德
Ahlson10 小时前
【fnNAS】docker的nginx配置html
nginx·docker·容器·fnnas
LuckyLay10 小时前
Compose 常用命令详解——AI教你学Docker
docker·容器·eureka
阿里云云原生10 小时前
阿里云可观测 2025 年 6 月产品动态
云原生
阿里云云原生10 小时前
30 秒锁定黑客攻击:SLS SQL 如何从海量乱序日志中“揪”出攻击源
云原生
moppol11 小时前
容器化 vs 虚拟机:什么时候该用 Docker?什么时候必须用 VM?
运维·docker·容器
没有名字的小羊11 小时前
7.可视化的docker界面——portainer
docker·容器·eureka
斯普信专业组12 小时前
K8s环境下基于Nginx WebDAV与TLS/SSL的文件上传下载部署指南
nginx·kubernetes·ssl