將更多 IP 位址指派給具有字首的 Amazon EKS 節點 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 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 字首使用下列功能:

以下清單提供了適用的 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 = standardAWS_VPC_K8S_CNI_EXTERNALSNAT = false,則當 Pod 與 VPC 外部端點通訊時,將使用節點的安全群組,而不會使用您指派給 Pod 的任何安全群組。

      如果您也使用 Pod 的安全群組,且 POD_SECURITY_GROUP_ENFORCING_MODE = strict,則當 Pods 與 VPC 外部端點通訊時,將使用 Pod’s 安全群組。