Kubernetes 出口靜態 IP。最優雅、最有效的解決方案?

Kubernetes 出口靜態 IP。最優雅、最有效的解決方案?

有人可以告訴我你是如何以最優化、最優雅的方式解決這個問題的嗎?有一個 Kubernetes 集群,有一些部署,一些客戶端需要將我們的 IP 添加到他們的白名單中,以便應用程式可以執行請求。隨著叢集的可擴展性,有必要將新節點的新IP提供給客戶端白名單或在同一節點上部署應用程式。

該解決方案不是最佳的,因此您需要修復 IP。將它們設定為靜態或通過一個網關出去。

Kubernetes 安裝是網路供應商 Flannel 的標準安裝。該提供者沒有這樣的功能。

  1. 這樣的特徵有例如印花布。https://projectcalico.docs.tigera.io/networking/use-specific-ip
  2. 我還找到了這個項目:https://github.com/nirmata/kube-static-egress-ip- 有人用過嗎?

您有什麼建議?

如果有幫助,那麼我們的託管在 Hetzner 上。

謝謝!

答案1

最優雅的解決方案可能是 Antreahttps://antrea.io/docs/v1.3.0/docs/egress/用於 ex 的 CNI。 VMWare Tanzu 等提供。使用 Antrea,您可以定義一個 EgressIPPool,CNI 將自動管理該池,在 Kubernetes 節點之間提供 HA 功能。您在需要使用靜態傳出位址的 pod 上設定標籤,然後就完成了。

Calico 具有類似的功能,但 Egress Gateway 是付費選項,因此您只能使用 IPPool 並將 IP 區塊分配給 K8s 節點並標記某些 pod 以使它們使用這些 IP。正如您所猜測的,在大型叢集環境中,這些 IP 池可能會很快耗盡。另外,我還遇到了 L2 路由問題(無法從相同 VLAN 內的位址存取 Pod),但這可能是我的一些設定錯誤。

我還嘗試安裝 Cillium,它確實非常先進且高效,但對於 Egress Gateway,它僅支援節點上的單一 IP(必須在節點的介面上手動配置),沒有 HA 功能。

如果無法進行 CNI 遷移,您的最後一個資源

相關內容