使用 Calico 在 Kubernetes 上通过 OpenVPN 路由流量

使用 Calico 在 Kubernetes 上通过 OpenVPN 路由流量

我在 IBM 容器服务上运行 kubernetes 集群。

我设置了一个 OpenVPN pod,它允许客户端成功连接。客户端使用 CCD 分配了固定 IP(在范围内10.240.0.0/16)。

我希望我的集群中的其他 pod(在172.30.42.0/24)能够访问通过 OpenVPN 连接的客户端。

我尝试通过向主机节点添加路由来实现这一点:

ip route add 10.240.0.0/16 via 172.30.42.65172.30.42.65OpenVPN pod 在哪里)

简而言之,这允许来自节点上其他 pod 的流量将流量路由到 OpenVPN 客户端。不幸的是,Calico 的 Felix 会在短时间后删除根。

是否可以通过 VPN 服务器 pod 设置从节点到 VPN 客户端的路由,接受 Calico 似乎由 IBM 强制执行?

我见过https://github.com/pieterlange/kube-openvpn,它使用端口转发实现了接近的效果。然而,这依赖于为每个 VPN 客户端设置端口转发规则,我宁愿避免这种情况(感觉我们正在用这个解决方案重新发明路由……)

我认为这可以通过 Calico 配置来实现,但是在他们的文档中我找不到任何看起来可以做正确事情的东西。

答案1

Calico 有一个注释您可以在其中指定 Pod 的 IP 地址:

annotations:
        "cni.projectcalico.org/ipAddrs": "[\"192.168.0.1\"]"

您可以在注释中为您的 OpenVPN pod 指定地址,然后为 OpenVPN 客户端创建静态路由。

相关内容