本文已發布超過一年。較舊的文章可能包含過時的內容。請確認頁面中的資訊自發布以來是否已變得不正確。

使用 EC2 虛擬私有雲實現高效能網路

執行 Kubernetes 最受歡迎的平台之一是 Amazon Web Services 的彈性運算雲端 (AWS EC2)。EC2 在提供 IaaS 方面擁有超過十年的經驗,並隨著時間推移擴展到包含一組豐富且易於使用的 API 服務,已在全球範圍內贏得開發人員的青睞和忠誠度。

然而,在網路連線方面,EC2 有些限制會阻礙效能,並使將 Kubernetes 叢集部署到生產環境變得不必要地複雜。Romana v2.0 的預覽版本是一個適用於雲原生應用程式的網路和安全性自動化解決方案,其中包含解決在 EC2 中執行 Kubernetes 時一些眾所周知的網路問題的功能。

傳統 VPC 網路連線效能瓶頸

Kubernetes pod 網路與 Amazon Virtual Private Cloud (VPC) 執行個體網路是分開的;因此,執行個體外部的 pod 流量需要路由才能到達目的地 pod。幸運的是,VPC 支援設定這些路由。當使用 kubenet 外掛程式建構叢集網路時,每當新增節點時,AWS 雲端供應商會自動將 VPC 路由新增至在該節點上執行的 pod。

使用 kubenet 設定路由可提供原生 VPC 網路效能和可見性。然而,由於 kubenet 不支援更進階的網路功能,例如用於 pod 流量隔離的網路原則,因此許多使用者選擇在後端執行容器網路介面 (CNI) 供應商。

在 Romana v2.0 之前,所有 CNI 網路供應商在跨可用區域 (AZ) 使用時都需要覆疊網路,這使得想要部署 HA 叢集的 CNI 使用者無法獲得原生 VPC 網路連線的效能。

即使是不需要進階網路連線的使用者也會遇到限制,因為 VPC 路由表最多支援 50 個項目,這將叢集的大小限制為 50 個節點(或更少,如果某些 VPC 路由需要用於其他目的)。在 Romana v2.0 之前,使用者也需要執行覆疊網路才能繞過此限制。

無論您對用於流量隔離的進階網路連線或執行大型生產 HA 叢集(或兩者)感興趣,您都無法獲得原生 VPC 網路連線的效能和可見性。

多區段網路上的 Kubernetes

避免耗盡 VPC 路由的方法是謹慎使用它們,方法是讓它們轉發多個執行個體的 pod 流量。從網路連線的角度來看,這表示 VPC 路由需要轉發到路由器,然後路由器可以將流量轉發到最終目的地執行個體。

Romana 是一個 CNI 網路供應商,它在主機上設定路由以轉發 pod 網路流量,而無需覆疊網路。由於節點間路由安裝在主機上,因此完全不需要 VPC 路由。但是,當 VPC 分割為子網路以進行跨區域的 HA 部署時,VPC 路由是必要的。

幸運的是,主機上的節點間路由允許它們充當網路路由器,並轉發來自另一個區域的輸入流量,就像處理來自本機 pod 的流量一樣。這使得 Romana 設定的任何 Kubernetes 節點都能接受來自其他區域的輸入 pod 流量,並將其轉發到子網路上正確的目的地節點。

由於此本機路由功能,可以彙總到子網路上其他執行個體上的 pod 的最上層路由,從而將必要路由的總數減少到每個子網路只有一個。為了避免使用單一執行個體轉發所有流量,可以使用更多路由將流量分散到多個執行個體,最多可達到可用路由的最大數量(即相當於 kubenet)。

最終結果是,您現在可以建構跨 AZ 的任何大小的叢集,而無需覆疊網路。Romana 叢集也支援網路原則,以透過網路隔離來提高安全性。

使其全面運作

雖然彙總路由和子網路上節點轉發的組合消除了覆疊網路並避免了 VPC 50 路由限制,但它對 CNI 供應商施加了某些要求。例如,主機應僅針對本機子網路上同一區域中的其他節點設定節點間路由。到所有其他主機的流量必須使用預設的離主機路由,然後使用(彙總的)VPC 路由將流量轉發出區域。此外:新增主機時,為了維護彙總的 VPC 路由,CNI 外掛程式需要使用可在新主機上連線的 pod 的 IP 位址。

最新版本的 Romana 也解決了有關 VPC 路由如何安裝的問題;轉發流量的節點發生故障時會發生什麼情況;如何偵測轉發節點故障;以及路由如何更新以及叢集如何復原。

Romana v2.0 包含一個新的 AWS 路由設定功能來設定 VPC 路由。這是自動化 L3 網路中路由設定的新網路廣告功能集的一部分。Romana v2.0 包含拓撲感知 IP 位址管理 (IPAM),可實現 VPC 路由彙總以保持在此處描述的 50 個路由限制內,以及新的健康檢查,以便在路由執行個體發生故障時更新 VPC 路由。對於較小的叢集,Romana 會像 kubenet 一樣設定 VPC 路由,為每個執行個體設定路由,從而充分利用每個可用的 VPC 路由。

原生 VPC 網路連線無所不在

使用 Romana v2.0 時,原生 VPC 網路連線現在可用於任何大小的叢集,無論是否具有網路原則以及是否跨多個區域分割進行 HA 生產部署。