協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
將更多 IP 位址指派給具有字首的 Amazon EKS 節點
適用於:包含 Amazon EC2 執行個體的 Linux 和 Windows 節點
適用於:公有和私有子網路
每個 Amazon EC2 執行個體都支援最大數量的彈性網路介面,以及可指派給每個網路介面的最大數量的 IP 地址。每個節點的每個網路介面都需要一個 IP 地址。所有其他可用的 IP 地址都可以指派給 Pods。每個 Pod 都需要專屬的 IP 地址。因此,您的節點可能具有可用的運算和記憶體資源,但無法容納其他 Pods,因為節點已耗盡要指派給 Pods 的 IP 位址。
您可以透過指派 IP 字首 (而不是將個別的次要 IP 位址指派給節點),大幅增加節點可指派給 Pods 的 IP 位址數量。每個字首都包含多個 IP 地址。如果您未針對 IP 字首指派設定叢集,則叢集必須進行更多 Amazon EC2 應用程式介面 (API) 呼叫,才能設定 Pod 連線所需的網路介面和 IP 位址。隨著叢集規模不斷擴大,這些 API 呼叫的頻率可能會導致 Pod 和執行個體的啟動時間變得更長。這樣一來,會導致擴展延遲以滿足大型和高峰工作負載的需求,並增加成本和管理負荷,因為您需要佈建額外的叢集和 VPC 以符合擴展需求。如需詳細資訊,請參閱 GitHub 上的 Kubernetes 可擴展性閾值
與適用於 Kubernetes 功能的 Amazon VPC CNI 外掛程式相容
您可以搭配 IP 字首使用下列功能:
-
IPv4 來源網路位址轉譯 - 如需詳細資訊,請參閱 啟用 Pod 的傳出網際網路存取。
-
叢集、Pod 及服務的 IPv6 位址 - 如需詳細資訊,請參閱 了解叢集、Pod 與服務的 IPv6 位址。
-
使用 Kubernetes 網路政策來限制流量 - 如需詳細資訊,請參閱 使用 Kubernetes 網路政策限制 Pod 流量。
以下清單提供了適用的 Amazon VPC CNI 外掛程式設定的相關資訊。有關每個設定的更多資訊,請參閱 GitHub 上的 amazon-vpc-cni-k8s
-
WARM_IP_TARGET -
MINIMUM_IP_TARGET -
WARM_PREFIX_TARGET
考量事項
使用此功能時請考慮以下事項:
-
每種 Amazon EC2 執行個體類型都支援最大數量的 Pod。如果受管節點群組包含多個執行個體類型,叢集中執行個體的最小 Pod 數量上限會套用至叢集中的所有節點。
-
依預設,您最多可在節點上執行 110 個
Pods,但您可以變更該數量。如果您變更該數量且擁有現有受管節點群組,則節點群組的下一個 AMI 或啟動範本更新會導致新的工作節點出現變更後的值。 -
從指派 IP 地址轉換為指派 IP 字首時,建議您建立新的節點群組來增加可用 IP 地址的數量,而不是對現有節點執行輪流取代。在同時指派 IP 位址和字首的節點上執行 Pod,可能會導致公告的 IP 位址容量不一致,進而影響節點日後的工作負載。有關執行轉換的建議方式,請參閱《Amazon EKS 最佳實務指南》中的 Linux 的字首委派模式。
-
安全群組範圍為節點層級 - 如需詳細資訊,請參閱安全群組。
-
指派給網路介面的 IP 字首支援每個節點的高 Pod 密度,且具有最佳的啟動時間。
-
IP 字首和 IP 地址與標準 Amazon EC2 彈性網路介面相關聯。需要特定安全群組的 Pod 會被指派分支網路介面的主要 IP 地址。您可以把取得 IP 位址的 Pod,或從 IP 字首的 IP 位址與在相同節點上取得分支網路介面的 Pod 混合。
-
僅適用於具有 Linux 節點的叢集。
-
設定附加元件以指派字首給網路介面後,您就無法將 Kubernetes 專用 Amazon VPC CNI 外掛程式附加元件降級為低於
1.9.0(或1.10.1) 的版本,且不移除叢集中所有節點群組中的所有節點。 -
如果您也使用 Pod 的安全群組,且
POD_SECURITY_GROUP_ENFORCING_MODE=standard、AWS_VPC_K8S_CNI_EXTERNALSNAT=false,則當 Pod 與 VPC 外部端點通訊時,將使用節點的安全群組,而不會使用您指派給 Pod 的任何安全群組。如果您也使用 Pod 的安全群組,且
POD_SECURITY_GROUP_ENFORCING_MODE=strict,則當Pods與 VPC 外部端點通訊時,將使用Pod’s安全群組。
-