分类
技术

通过 SSH 端口转发操作 K8s

无法直接访问,那我们就打洞 🕳️

因安全需要,K8s 无法在本地直接访问和操作;这时候本地不能使用 kubectl 执行类似于 apply file 的命令,以及使用 Lens 来可视化操作。

不过有跳板机,所以可以使用端口转发来解决。首先建立一个动态端口转发:

ssh -ND 60443 user@host

这时候相当于在本地 60443 端口起了一个 SOCKS5 代理,可以验证一下:

curl -x socks5://localhost:60443 cip.cc

转发有了,就可以操作 K8s 了。

如果是 Lens,配置下它的 HTTP Proxy 即可直接使用;Lens 对于域名,也会使用代理来远程解析,因此即使 kubeconfig 里的 server 是内网地址,或者其他本机不可达的地址,都没有关系。

而 kubectl,就得稍微多处理一下。第一个方法是获取 server 地址对应的 IP,然后写到本机的 hosts 里;第二个方法是使用 proxychains 来代理 kubectl:

proxychinas kubectl get nodes

proxychinas 不能让受 SIP 保护的程序走代理,而 /usr/local 目录不在保护列表中,因此,如果 kubectl 是通过 brew 安装的,可以无痛使用。

参考链接:SSH 端口转发

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注