安全的 Kubernetes Ingress 和 Egress Controller,如何應對kubernetes的安全挑戰安全的 Kubernetes Ingress 和 Egress Controller本文旨在描述如何部署VoltMesh集群,以充當部署至現有Kubernetes基礎架構中的出海應用工作負載的高可......
本文旨在描述如何部署VoltMesh集群,以充當部署至現有Kubernetes基礎架構中的出海應用工作負載的高可用型Ingress和Egress Controller。
本文提供了兩種設計方式:
設計一利用BGP (Calico)實現最佳負載均衡性能,同時提供最大冗余
設計二利用NodePort服務實現最大兼容性,但負載均衡特性欠佳,出口流量可能會丟失冗余
在此設計中,將1個三節點VoltMesh集群部署至現有Kubernetes集群前端,并安裝Calico CNI網絡插件,以便為應用工作負載提供進出流量路由和網絡安全防護。盡管這一解決方案設計側重于Calico,但也可在未封裝的情況下替代其他支持BGP的CNI插件。
您可以通過Volterra服務發現與Kubernetes API服務器的集成自動發現應用端點,從而執行實時檢測。隨著應用工作負載不斷橫向擴展和收縮,這些應用端點或Pod IP將自動在VoltMesh源池中進行添加和刪除,有助于實現零接觸負載均衡器重新配置。
通過服務發現識別應用Pod IP后,VoltMesh集群和應用Pod之間的3層路由將通過Pod IP路由的BGP通告啟用。該集群中的所有VoltMesh節點將直接對等互連Calico節點,或通過中間的“架頂式”路由器對等互連。VoltMesh支持eBGP和iBGP對等互連。
在直接對等互連VoltMesh節點與Calico節點時,請務必注意VoltMesh不是路由反射器服務器—Calico節點之間的內部對等互連對于在Kubernetes集群內共享Pod IP信息必不可少,這樣方可避免向每個Pod到Pod請求添加額外的跳數,甚至破壞Pod到Pod通信。內部對等互連可通過全網狀部署(適用于小規模部署)或通過充當路由反射器的指定Calico節點(適用于大中規模部署)實現。
為了針對應用工作負載啟用VoltMesh Egress Controller功能,VoltMesh集群需要檢查離開Kubernetes集群的所有流量,以便在3、4和7層應用可配置的安全策略。
如果直接對等互連VoltMesh節點與Calico節點,則集群中的單個VoltMesh節點將成為所有離開Kubernetes集群的流量的默認網關或“下一跳”。默認路由通過BGP從VoltMesh集群通告給所有Kubernetes節點,并由Calico安裝至主機操作系統。如果用作默認網關的VoltMesh節點因任何原因發生故障,VoltMesh集群均可檢測到,并通過BGP自動將新的網關地址傳播到Kubernetes節點。
通過中間路由器對等互連VoltMesh節點可以在VoltMesh集群和路由器之間創建等價多路徑(ECMP)路由,以支持出口流量通過所有三個VoltMesh節點而非單個節點進行路由,從而充分利用全主配置,而非主/備/備配置。由VoltMesh集群通過BGP傳播的默認網關不會通告給Kubernetes節點,每個Kubernetes節點的下一跳仍然是路由器。
虛擬IP或VIP均被用于部署在VoltMesh集群上的所有HTTP(S)和TCP負載均衡器。當一個VoltMesh節點發生故障時,每個VIP均可使用VRRP實現高可用性,并通過BGP進行通告。
這一設計能夠為關鍵任務應用提供高可用性和容錯性,是推薦的部署配置。
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部