ssh隧道到kubectl的多个k8s集群

ssh tunnel to multiple k8s clusters for kubectl

我在私有网络中有多个 k8s 集群,我只能通过 jumpbox/bastion 主机访问。

例如下面是我的 k8s 集群:

k8s-c3 端点 ip 192.168.220.3

k8s-c4 端点 ip 192.168.220.4

k8s-c5 端点 ip 192.168.220.5

我能做的是: 一次创建到 1 个端点的 ssh 隧道,例如:ssh -i /root/.ssh/id_rsa -4 -fNT -L 6443:192.168.220.3:6443 user@1.2.3.4 并从我的本地计算机使用 kubectl 命令。

我想做的是: 为上面提到的所有 3 个目的地创建一个到我的堡垒主机的 6443 端口的 ssh 隧道,并使用 kubectl config use-context 从我的本地机器切换和连接到不同的集群。

这可能吗?如果是这样怎么办? 如果不可能使用 ssh,我还有哪些其他选择?非常感谢示例代码示例。

谢谢

ssh 隧道允许在同一命令中为多台机器打开多个隧道。 这里的陷阱是你必须使用不同的端口,并在 kubectl 配置文件中更改你正在隧道化的端口。

该命令将有多个 -L:

-L 6443:192.168.220.3:6443 -L 6444:192.168.220.4:6443 -L 6445:192.168.220.5:6443

并且 .kube/config 文件中的每个 cluster 条目都应包含具有正确端口(6443、6444 或 6445)的服务器。

很抱歉,我现在无法对此进行测试,但理论上,我会这样做。