kube-vip LoadBalancer 与节点 SSH 的 22 端口之争
背景 homelab 的 K8s 集群用 kube-vip 把 VIP 192.168.50.100 绑在某一台 control-plane 节点上,Kong 通过 LoadBalancer Service 占用了这个 VIP 的 443 端口对外提供 HTTPS。 最近想在集群里自建一个 Git 服务(Forgejo),它需要 SSH 端口供 git clone 使用。一个想法是:再建一个 LoadBalancer Service,把 VIP 的 22 端口转发给 Forgejo 的内建 SSH。 但这里有个让人犹豫的问题: VIP 是绑在某台宿主机上的,而那台宿主机自己的 sshd 也监听着 22 端口。那么发往 192.168.50.100:22 的流量,到底会进 Forgejo,还是会被宿主机的 sshd 接走? 先做个小实验 在集群上分三步验证,探测 192.168.50.100:22 返回的是什么。 第一步,不创建任何 22 端口的 LoadBalancer Service,直接探测 VIP 的 22 端口: nc -w 2 192.168.50.100 22 # SSH-2.0-OpenSSH_10.3 ← 落到了宿主机的 sshd 第二步,建一个 LoadBalancer Service,把 VIP 的 22 端口指向一个普通的 HTTP 测试 Pod: ...