我有 3 個節點運行多個OpenVPN pods
,每個 pod 都有一個 VPN 網絡100.70.0.0/16
,連接到這些 pod 的客戶端會收到此範圍內的 IP 位址,例如,假設客戶端100.70.162.91
連接到其中一個 pod。
現在,我想在此叢集上新增更多執行不同服務的 Pod,並且每個 Pod 必須能夠與每個 VPN 用戶端通訊。到目前為止,我使用 AWS ECS 執行此操作的重要步驟之一是ip route add 100.70.192.91/32 via <OpenVPN-pod-IPv4>/32
在客戶端使用 AWS API 連接後添加一條路由,例如在集群 VPC 的子網路由表上添加路由,此方法似乎也可以docker-compose
使用Kubernetes
只要所有Pod 都位於同一網路上。
但是,現在我嘗試從 ECS 遷移到 Kubernetes,我似乎找不到任何方法在 Kubernetes 上新增叢集範圍的網路靜態路由。
在 Kubernetes 上實現這一點的最佳方法是什麼?
答案1
如果您使用普通 k8s 而不是 ECS,您可以選擇在工作節點上新增此類路由。因此,到非 k8s(VPN 用戶端網路與 k8s pods 網路不同)網路的 pod 流量將透過工作節點路由表流出。您需要在工作節點上新增至 VPN 用戶端網路的靜態路由。您設定的 vpn-pod IP 的路由目的地。它可以從任何 k8s 工作節點存取。