協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
選擇最佳的 Amazon EC2節點執行個體類型
Amazon 為工作者節點EC2提供廣泛的執行個體類型選擇。每個執行個體類型皆提供不同的運算、記憶體、儲存與網路功能。每個執行個體也會依照這些功能分組為執行個體系列。如需清單,請參閱 Amazon EC2使用者指南中的可用執行個體類型,以及 Amazon EC2使用者指南 中的可用執行個體類型。Amazon 會EKS發行數種 Amazon 版本EC2AMIs來啟用支援。若要確保您選取的執行個體類型與 Amazon 相容EKS,請考慮下列條件。
-
所有 Amazon 目前EKSAMIs都不支援
g5g
和mac
系列。 -
Arm 和非加速 Amazon EKSAMIs不支援
g3
、g4
、inf
和p
系列。 -
加速的 Amazon EKSAMIs不支援
a
、c
、m
、hpc
和t
系列。 -
對於以 Arm 為基礎的執行個體,Amazon Linux 2023 (AL2023) 僅支援使用 的執行個體類型 Graviton2 或更新版本的處理器。AL2023 不支援
A1
執行個體。
在 Amazon 支援的執行個體類型之間進行選擇時EKS,請考慮每種類型的下列功能。
- 節點群組中的執行個體數量
-
一般而言,越少、較大的執行個體越好,特別是如果您有許多 Daemonsets。 每個執行個體都需要API呼叫API伺服器,因此您擁有的執行個體越多,API伺服器的負載就越多。
- 作業系統
-
檢閱 Linux、Windows 以及 Bottlerocket
支援的執行個體類型。建立之前 Windows 執行個體,檢閱 部署 Windows EKS 叢集上的節點。 - 硬體架構
-
您需要 x86 或 Arm? 部署之前 Arm 執行個體,檢閱 Amazon EKS最佳化 Arm Amazon Linux AMIs。您需要在 上建置的執行個體嗎 Nitro System (Linux 或 Windows ) 或具有加速功能? 如果您需要加速功能,您只能使用 Linux 使用 Amazon EKS。
- 數量上限 Pods
-
由於每個 Pod 會指派自己的 IP 地址,執行個體類型支援的 IP 地址數量是決定 Pods 可在執行個體上執行。手動判斷數量 Pods 執行個體類型支援,請參閱 Amazon EKS建議上限 Pods 適用於每個 Amazon EC2執行個體類型。
注意
如果您使用的是
v20220406
或更新版本AMI的 Amazon EKS最佳化 Amazon Linux 2,則可以使用新的執行個體類型,而無需升級至最新的 AMI。對於這些 AMIs,如果檔案中未列出必要max-pods
值,則 AMI 會自動計算該值eni-max-pods.txt
。Amazon EKS 預設可能不支援目前預覽中的執行個體類型。max-pods
這類類型的 值仍需要新增至eni-max-pods.txt
中的 AMI。AWS Nitro System
執行個體類型可選擇性地支援比非 Nitro System 執行個體類型更多的 IP 地址。不過,並非所有為執行個體指派的 IP 地址都可以用於 Pods。 若要將大量 IP 地址指派給您的執行個體,您必須在叢集中安裝版本 1.9.0
或更新版本的 Amazon VPC CNI 附加元件,並正確設定。如需詳細資訊,請參閱為具有前置字元的 Amazon EKS 節點指派更多 IP 地址。若要將最大數量的 IP 地址指派給執行個體,您必須在叢集中安裝1.10.1
或更新版本的 Amazon VPC CNI 附加元件,並使用IPv6
系列部署叢集。 - IP 系列
-
您可以在將
IPv4
系列用於叢集時使用任何支援的執行個體類型,這可讓您的叢集將私有IPv4
地址指派給您的 Pods 和服務。但是,如果您想在叢集中使用IPv6
系列,則必須使用 AWS Nitro 系統執行個體類型或裸機類型。只有 IPv4
支援 Windows 執行個體。您的叢集必須執行1.10.1
或更新版本的 Amazon VPC CNI 附加元件。如需有關使用IPv6
的詳細資訊,請參閱 將IPv6地址指派給叢集,pods、 和服務。 - 您正在執行的 Amazon VPC CNI 附加元件版本
-
最新版本的 Amazon Kubernetes VPCCNI外掛程式
支援這些執行個體類型 。您可能需要更新 Amazon VPC CNI 附加元件版本,才能利用最新的支援執行個體類型。如需詳細資訊,請參閱IPs 指派給 Pods 使用 Amazon VPC CNI。最新版本支援與 Amazon 搭配使用的最新功能EKS。舊版不支援所有功能。您可以在 Changelog on 中檢視不同版本支援的功能 GitHub. - AWS 區域 您要在 中建立節點
-
並非所有 AWS 區域皆提供執行個體類型。
- 您是否使用 的安全群組 Pods
-
如果您將安全群組用於 Pods,僅支援特定執行個體類型。如需詳細資訊,請參閱將安全群組指派至個別 pods。
Amazon EKS建議上限 Pods 適用於每個 Amazon EC2執行個體類型
由於每個 Pod 會指派自己的 IP 地址,執行個體類型支援的 IP 地址數量是決定 Pods 可在執行個體上執行。Amazon EKS提供指令碼供您下載並執行,以判斷 Amazon EKS建議的最大數量 Pods 在每個執行個體類型上執行。指令碼使用每個執行個體的硬體屬性和組態選項,來判斷 Pods 號碼。您可以使用這些步驟中傳回的數字來啟用功能,例如將 IP 地址指派給 Pods 來自與執行個體 不同的子網路,並大幅增加執行個體 的 IP 地址數量。如果您使用的是具有多個執行個體類型的受管節點群組,請使用適用於所有執行個體類型的值。
-
下載可用來計算最大數量的指令碼 Pods 適用於每個執行個體類型。
curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh
-
將指令碼標記為電腦上的可執行檔。
chmod +x max-pods-calculator.sh
-
執行指令碼,取代
您計劃部署的執行個體類型,以及m5.large
Amazon VPC CNI 附加元件版本。若要判斷附加元件版本為何,請參閱 IPs 指派給 Pods 使用 Amazon VPC CNI 中的更新程序。1.9.0-eksbuild.1
./max-pods-calculator.sh --instance-type
m5.large
--cni-version1.9.0-eksbuild.1
範例輸出如下。
29
您可以將下列選項新增至指令碼,以查看上限 Pods 使用選用功能時支援 。
-
--cni-custom-networking-enabled
:想要從不同於執行個體的子網路指派 IP 地址時,請使用此選項。如需詳細資訊,請參閱pods在具有自訂網路的替代子網路中部署。將此選項新增至具有相同範例值的前一個指令碼會產生20
。 -
--cni-prefix-delegation-enabled
:想要為每個彈性網路介面指派更大量的 IP 地址時,請使用此選項。此功能需要在 Nitro 系統和 Amazon VPCCNI附加元件版本1.9.0
或更新版本上執行的 Amazon Linux 執行個體。如需詳細資訊,請參閱為具有前置字元的 Amazon EKS 節點指派更多 IP 地址。將此選項新增至具有相同範例值的前一個指令碼會產生110
。
-
您還可以使用 --help
選項執行指令碼,以查看所有可用選項。
注意
最大值 Pods 計算器指令碼110
根據 限制傳回值為 Kubernetes 可擴展性250
,這是以內部 Amazon EKS可擴展性團隊測試為基礎的數字。如需詳細資訊,請參閱 Amazon VPCCNI外掛程式會提高每個節點的 Pod 數量限制