本頁面說明 Google Kubernetes Engine (GKE) IP 位址使用率的 Network Analyzer 洞察資料。如要瞭解所有洞察類型,請參閱「洞察群組和類型」。
在 Recommender API 中查看洞察資料
如要在 gcloud CLI 或 Recommender API 中查看這些洞察資料,請使用下列洞察資料類型:
google.networkanalyzer.container.ipAddressInsight
您需要具備下列權限:
recommender.networkAnalyzerGkeIpAddressInsights.list
recommender.networkAnalyzerGkeIpAddressInsights.get
如要進一步瞭解如何使用 Recommender API 取得 Network Analyzer 深入分析資料,請參閱「使用 Recommender CLI 和 API」。
分配的 GKE Pod 範圍過多
這項洞察資料表示,GKE 叢集 Pod 位址範圍的 IP 位址使用率高於 80%。GKE Pod 的 IP 位址分配政策會因叢集是設為虛擬私有雲原生叢集或路由叢集而異。
路徑導向叢集
在 GKE 中,叢集可根據將流量從一個 Pod 轉送至另一個 Pod 的方式來區分叢集。使用 Google Cloud 路徑的叢集稱為「路徑導向叢集」。詳情請參閱「建立路徑導向叢集」。
路徑導向叢集擁有一系列用於 Pod 和服務的 IP 位址。即使該範圍用於 Pod 和服務,它也稱為「Pod 位址範圍」。
Pod 位址範圍的最後一個 /20
是用於服務。一個 /20
範圍有 212 = 4096
個位址。因此,4096
位址會用於服務,其餘範圍則用於 Pod。
Pod 位址範圍的每個節點都有一個 /24
範圍的 Pod IP 位址。一個 /24
範圍有 28 = 256
個位址。請注意,Pod 位址範圍中的 4096
位址是用於服務。Pod 位址範圍的剩餘部分用於 Pod,並且必須夠大以容納節點數 x 256 個位址。
Pod 位址範圍的分配比率計算方式如下:
舉例來說,假設您計劃建立 900
節點叢集。那麼您需要 900 x 256 = 230,400
的 Pod 位址。現在假設您有一個 /14
Pod 位址範圍。一個 /14
範圍有 218 = 262,144
個位址。減去用於服務的 4096
位址,可得到 258,048
,足以容納 900
節點。
虛擬私人雲端原生叢集
在 GKE 中,叢集可根據將流量從一個 Pod 轉送至另一個 Pod 的方式來區分叢集。使用別名 IP 位址範圍的叢集稱為虛擬私有雲端原生叢集。詳情請參閱「虛擬私有雲原生叢集」。
在虛擬私有雲原生叢集中建立節點集區時,您需要選取次要 IP 位址範圍,為 GKE Pod 分配 IP。不同的節點集區可以使用不同的次要範圍來分配 Pod IP 位址。詳情請參閱多 Pod CIDR。Network Analyzer 會為用於為特定叢集分配 Pod IP 位址的每個次要 IP 位址範圍,計算分配比率。如果整體分配比率超過 80%,您就會收到高使用率的洞察資料。
單一次要 IP 位址範圍的分配比率計算方式如下:
舉例來說,/24
次要 Pod 範圍可容納 256
Pod。如果只有 1
節點搭配預設 max_pods_per_node
、110
和 16
Pod 執行,則比率會顯示 100% (256/256
),而非 6.25% (16/256
),因為即使未使用 240
Pod IP 位址,但仍屬於這個節點。只有在有 256
個未使用的 Pod IP 位址時,才能成功建立其他新節點。
整體分配比例的計算方式如下:
舉例來說,如果預設 Pod IP 位址和額外的 Pod IPv4 位址範圍設為 /22
,且有 2
個節點集區,則一個節點集區會使用預設 Pod IP 位址範圍,並具有 3
個節點,而第二個節點集區會使用額外的 Pod IP 位址範圍,並具有 3
個節點,預設 Pod 數量上限設為 110
。Kubernetes 會將 /24
CIDR 範圍指派給叢集中的節點。分配 6
個節點和 /24
CIDR 範圍後,總共有 256 * 6 = 1536
個 IP 位址。這是兩個 Pod IP 位址範圍 (1024 * 2 = 2048
) 中可用的 IP 位址總數的 75%。
請注意,如果次要 IP 位址在不同叢集之間共用,洞察資料會顯示所有叢集的匯總總值。如要查看單一叢集的 IP 範圍使用率,您可以執行 gcloud container cluster describe CLUSTER_NAME
,查看每個次要 IP 位址的使用率狀態。將 CLUSTER_NAME
替換為叢集名稱。
相關主題
建議
- 以路徑導向叢集來說,如果您需要在叢集內建立額外的節點集區,而儲存空間已用盡,請重新建立叢集,並採用更大的 Pod 位址範圍。
- 如為虛擬私有雲原生叢集,則請建立未來要使用的節點集區,並採用更大的 Pod IP 位址範圍。
- 降低 Pod 數量上限。
- 對 Standard 和 Autopilot 叢集使用多 Pod CIDR,增加更多 Pod IPv4 位址範圍。
GKE Pod 範圍分配會限制自動調度資源功能
這項洞察資料表示叢集的 Pod IP 位址範圍沒有足夠的位址,無法在所有節點集區中建立最大節點數。洞察詳細資料頁面包含一張表格,其中列出目前使用的 Pod IP 位址數量,以及每個 GKE 叢集 Pod IP 位址範圍的 Pod IP 位址數量上限。
當 IP 位址使用率值超過 100%,Network Analyzer 就會產生這項洞察資料。
如果叢集中的 Pod IP 位址範圍內,所需的 Pod IP 位址數量超過叢集中的節點數上限,則全自動調度 IP 位址使用率值會超過 100%。叢集中的節點數量上限,是叢集內每個節點集區的節點數量上限總和 (maxNodeCount)。
系統會使用 高 GKE Pod 範圍分配中的公式計算完全自動調度的 IP 位址使用率值。
路徑導向叢集
當 Pod 位址範圍的分配比率超過 100%,且所有節點集區都已完全自動調整時,系統就會產生這項洞察資料。由於缺少 IP 位址空間,因此不會建立 GKE 節點。
虛擬私人雲端原生叢集
如果用於分配 Pod IP 位址的任何次要 IP 位址範圍沒有足夠的未分配 IP 位址空間,系統就會產生這項洞察資料。當所有節點集區都處於完全自動調整狀態時,IP 位址空間不足將無法處理這種情況。
相關主題
詳情請參閱「GKE 網路最佳做法」和「叢集自動配置器限制」。
建議
- 如為路徑導向叢集,請重新建立叢集,並採用更大的 Pod 位址範圍。請將這個叢集建立為 VPC 原生叢集,因為這是建議的網路模式。請參閱虛擬私人雲端原生叢集和路徑導向叢集。
- 針對虛擬私有雲原生叢集,請使用多 Pod CIDR 將其他 Pod 範圍新增至叢集層級,並啟用節點自動佈建功能,以便透過自動 Pod IP 位址分配功能自動調整節點。如要進一步控管哪個 Pod IP 位址用於哪個節點集區,您可以使用多 Pod CIDR 建立使用特定次要 IP 位址範圍的節點集區;不過,這項功能僅適用於 Standard 叢集。