我想知道是否有人能够让 Kubernetes 通过 Wireguard VPN 正常运行。我在由wireguard 链接的2 个VM 上创建了一个2 节点集群。具有完整控制平面的主节点工作正常,并且可以通过wireguard 接口接受工作节点。我将 kubelet 的 nodeip 设置为 wireguard ip,并将 flannel 的 iface 参数设置为使用 wireguard 接口而不是默认接口。到目前为止,这似乎运作良好。
当我尝试通过 join 命令将工作节点加入集群时,就会出现问题。请注意,我还将 kubelet 的节点 ip 编辑为工作节点上的 wireguard ip。
在加入时,所有到节点的流量都会被“Kubernetes 防火墙”丢弃。通过 kubernetes 防火墙,我的意思是如果您在工作节点上发出 join 命令后检查 iptables,您将看到 KUBE-FIREWALL 丢弃所有标记的数据包。防火墙是标准的,因为它在主节点上是相同的,但我认为我缺少的部分是在加入主节点后如何让工作节点上的流量流动。
我什至无法 ping google.com 或通过 Wireguard 隧道与主机通信。也无法安排 Pod。我手动删除了 KUBE-FIREWALL 规则作为测试,然后允许调度 pod 并在工作节点上流动常规流量,但 Kubelet 将在大约一分钟后快速重新创建规则。
我认为需要在加入之前创建一条路线或沿着这些路线创建一条路线。有没有人尝试过这个,非常感谢任何建议。