Kubernetes 部署 SSH 跳板机:用 autossh 打通内网访问
背景
在 Kubernetes 集群中,很多时候服务没有对外暴露的网络入口,排查问题或日常运维都需要进入集群内部。通常的做法是:
- 在集群内部署一个 SSH 服务作为跳板机
- 通过 SSH 反向隧道将跳板机暴露到外部可访问的服务器上
- 开发者通过隧道连接跳板机,再访问集群内部服务
本文介绍如何在 K8s 中用一个 Pod 两个容器实现 SSH 跳板机 + autossh 自动隧道,实现稳定的内网穿透。
在 Kubernetes 集群中,很多时候服务没有对外暴露的网络入口,排查问题或日常运维都需要进入集群内部。通常的做法是:
本文介绍如何在 K8s 中用一个 Pod 两个容器实现 SSH 跳板机 + autossh 自动隧道,实现稳定的内网穿透。
在内网环境中,经常需要将本地服务暴露到远程服务器上,常见场景如:
使用 SSH 反向隧道(-R 参数)可以将本地端口映射到远程服务器端口,而 autossh 则能自动保持 SSH 连接稳定,在断线时自动重连。
apt install socat ebtables ethtool
主要软件有:
kubeadm_1.10.2-00_arm64 、kubectl_1.10.2-00_arm64 、kubelet_1.10.2-00_arm64 、kubernetes-cni_0.6.0-00_arm64