共用方式為


Azure Kubernetes Service (AKS) 叢集的 IP 位址規劃

本文提供 Azure Kubernetes Service (AKS) 叢集的 IP 位址規劃指引。

如需個別 CNI 選項 IP 位址規劃的特定指引,請參閱 後續步驟 一節,以取得外掛程式文件的連結。

子網大小調整

您的 Azure VNet 子網必須夠大,才能容納您的叢集,視您 使用的是重疊網路一般網路而定。

重疊網路

使用重迭網路,例如 Azure CNI 重疊,您的子網必須夠大,才能將 IP 指派給節點。 Pod 會從個別的私人 CIDR 範圍指派 IP,而且不需要 VNet IP。 您用於叢集的 VNet 子網可以小於一般網路。

請務必確定您在私人 CIDR 範圍中配置足夠的空間,讓 Pod 能夠考慮調整。 規劃IP位址範圍大小時,您應該計算Pod計數上限。 叢集中的每個節點都會為 Pod 指派 /24 (256 個 IP 位址) 子網。 您應該規劃重迭網路子網,以容納您預期要執行的節點數目上限。

一般網路

一般網路,例如 Azure CNI Pod 子網,需要足夠大的子網來容納節點 Pod。 由於節點和 Pod 會從 VNet 接收 IP,因此您必須規劃預期要執行的節點和 Pod 數目上限。 Azure CNI Pod 子網會針對您的節點使用子網,併為 Pod 使用個別的子網,因此您必須針對這兩者進行規劃。

IP 位址重設大小

升級和調整考慮

規劃 AKS 叢集的 IP 位址時,您應該 考慮升級和調整作業所需的 IP 位址數目。 如果您將IP位址範圍設定為只支援固定數目的節點,您將無法升級或調整叢集。

當您 升級 AKS 叢集時,會在叢集中部署新的節點。 服務和工作負載會開始在新的節點上執行,並移除叢集中較舊的節點。 此輪流升級程序需要至少一個額外的 IP 位址區塊以供使用。 您的n + 1n節點計數就是叢集中的節點數目。

當您 調整 AKS 叢集時,會在叢集中部署新的節點。 服務和工作負載會開始在新的節點上執行。 您的IP位址範圍必須考慮您想要如何相應增加叢集可支援的節點和Pod數目。 也應包含一個額外的節點以用於升級作業。 因此您的節點計數為 n + number-of-additional-scaled-nodes-you-anticipate + max surge

如果您使用 Azure CNI Pod 子網 ,而且預期您的節點會執行最大 Pod 數目,而且您定期終結和部署 Pod,則也應該考慮每個節點的額外 IP 位址。 刪除服務並釋放其IP位址可能需要幾秒鐘的延遲,才能部署新服務並取得位址。 額外的IP位址會考慮這種可能性。

適用於 AKS 叢集的 IP 位址方案會由一個虛擬網路、至少一個適用於節點和 Pod 的子網路,以及一個 Kubernetes 服務位址範圍所組成。

Azure 資源 位址範圍 限制和重設大小
Azure 虛擬網路 大小上限 /8。 65,536 個已設定的IP位址限制。 如需例外狀況,請參閱 Azure CNI Pod 子網靜態區塊配置 網路內的重疊位址空間可能會導致問題。
子網路 必須夠大,才能容納叢集中的節點、Pod 和所有 Kubernetes 和 Azure 資源。 例如,如果您部署內部 Azure Load Balancer,其前端 IP 會從叢集子網配置,而不是公用 IP。 子網大小也應該考慮升級作業和未來的調整需求。

使用下列方程式來計算最小子網大小,包括升級作業的額外節點:例如 50 節點叢集:(number of nodes + 1) + ((number of nodes + 1) * maximum pods per node that you configure)

(/21 或更大

) 50 節點叢集的範例,準備相應增加額外的 10 個節點: (51) + (51 * 30 (default)) = 1,581(61) + (61 * 30 (default)) = 1,891 (/21 或更大)

如果您未在建立叢集時指定每個節點的最大 Pod 數目,則 每個節點的 Pod 數目上限設定為 30。 IP 位址所需的最小數目是根據該值。 如果您以不同的最大值來計算最小 IP 位址需求,請參閱每個節點的最大 Pod 數目,在您部署叢集時設定此值。

Kubernetes Service 位址範圍 此虛擬網路上或連線到此虛擬網路的任何網路元素不得使用此範圍。 服務位址 CIDR 必須小於 /12。 您可以在不同 AKS 叢集中重複使用此範圍。
Kubernetes DNS 服務 IP 位址 叢集服務探索所使用的 Kubernetes 服務地址範圍內的 IP 位址。 請勿使用您位址範圍中的第一個 IP 位址。 您子網路範圍內的第一個位址會用於 kubernetes.default.svc.cluster.local 位址。

每個節點的最大 Pod 數目

AKS 叢集中每個節點的最大 Pod 數目為 250 個。 每個節點「預設」的最大 Pod 數目,會根據 kubenetAzure CNI 網路以及叢集部署的方法而有所不同。

CNI 預設最大 Pod 可在部署時設定
Azure CNI 重疊 250 是 (最多 250 個)
Azure CNI Pod 子網 110 是 (最多 250 個)
Azure CNI (舊版) 30 是 (最多 250 個)
Kubenet 110 是 (最多 250 個)

為您的叢集設定每個節點的 Pod 數目上限

您可以在叢集部署期間或新增節點集區時,設定每個節點的最大 Pod 數目。 您可以將每個節點值的最大 Pod 設定為 250。

系統會為每個節點的最大 Pod 數目強制執行最小值,以確保提供空間給對叢集健康情況至關重要的系統 Pod。 只有當每個節點集區的設定能夠容納至少 30 個 Pod 時,可針對每個節點的最大 Pod 數目設定的最小值才會是 10。 舉例來說,如果將每個節點的最大 Pod 數目設定為最小值 10,則每個個別節點集區均須包含至少三個節點。 此需求亦適用於每個新建立的節點集區,因此如果將 10 定義為每個節點的最大 Pod 數目,則每個新增的節點集區均須包含至少三個節點。

網路 最小值 最大值
Azure CNI 10 250
Kubenet 10 250

注意

前一表格中的最小值完全由 AKS 服務強制執行。 您無法為 maxPods 設定低於所顯示最小值的值,因為這樣做可以防止叢集啟動。

新叢集

當您使用下列其中一種方法建立新的叢集時,您可以定義每個節點的最大 Pod 數:

  • Azure CLI:使用 命令部署叢集az aks create時指定 --max-pods 自變數。
  • Azure Resource Manager 範本:當您使用 Azure Resource Manager 範本部署叢集時,請在 [ManagedClusterAgentPoolProfile] 物件中指定 maxPods 屬性。
  • Azure 入口網站:在建立叢集或新增節點集區時,變更節點集區設定中的 Max pods per node 欄位。

現有叢集

當您建立新的節點集區時,您可以定義每個節點的最大 Pod 數目。 如果您需要在現有叢集上增加 maxPods 設定,請使用新的所需 maxPods 計數來新增節點集區。 將 Pod 移轉至新的集區之後,請刪除節點較舊的集區。

後續步驟