協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為您的叢集建立受管節點群組
本主題說明如何啟動向 Amazon EKS叢集註冊的節點的 Amazon EKS受管節點群組。節點加入叢集後,您可以部署 Kubernetes 應用程式。
如果這是您第一次啟動 Amazon EKS受管節點群組,建議您改為遵循我們的其中一個開始使用 Amazon EKS指南。本指南提供使用節點建立 Amazon EKS叢集的逐步解說。
您可以使用 eksctl
或 AWS Management Console建立受管節點群組。
- eksctl
-
使用 eksctl
建立受管節點群組
此程序需要 eksctl
版本 0.191.0
或更新版本。您可使用以下命令檢查您的版本:
eksctl version
如需有關安裝或更新 eksctl
的指示,請參閱 eksctl
文件中的 Installation 一節。
-
(選用) 如果 Amazon EKS_CNI_Policy 受管IAM政策已連接至您的 Amazon EKS 節點 IAM 角色,建議您將其指派給與 相關聯的IAM角色 Kubernetes aws-node
服務帳戶。如需詳細資訊,請參閱設定要使用的 Amazon VPC CNI 外掛程式 IRSA。
-
使用或不使用自訂啟動範本來建立受管節點群組。手動指定啟動範本可讓您更靈活地自訂節點群組。例如,它可以允許在 Amazon EKS最佳化 中部署自訂AMI或提供 引數至boostrap.sh
指令碼AMI。如需每個可用選項和預設值的完整清單,請輸入以下命令。
eksctl create nodegroup --help
在以下命令中,將 my-cluster
取代為您的叢集名稱,並將 my-mng
取代為您的節點群組名稱。節點群組名稱不可超過 63 個字元。它必須以字母或數字開頭,但剩餘字元也可以包含連字符和底線。
如果在第一次建立受管的節點群組時未使用自訂啟動範本,請勿在之後針對節點群組使用自訂啟動範本。如果沒有指定自訂啟動範本,系統會自動產生啟動範本 (不建議手動修改該範本)。手動修改此自動產生的啟動範本可能會導致錯誤。
- AWS Management Console
-
使用 建立受管節點群組 AWS Management Console
-
等待您的叢集狀態顯示為 ACTIVE
。您無法針對尚未進入 ACTIVE
狀態的叢集建立受管節點群組。
開啟位於 https://console.aws.amazon.com/eks/home#/clusters 的 Amazon EKS主控台。
-
選擇要在其中建立受管節點群組的叢集名稱。
-
選取 Compute (運算) 標籤。
-
選擇 Add node group (新增節點群組)。
-
在 Configure node group (配置節點群組) 頁面上,相應地填寫參數,然後選擇 Next (下一步)。
-
Name (名稱) – 輸入受管節點群組的唯一名稱。節點群組名稱不可超過 63 個字元。它必須以字母或數字開頭,但剩餘字元也可以包含連字符和底線。
-
節點IAM角色 – 選擇節點執行個體角色以搭配節點群組使用。如需詳細資訊,請參閱Amazon EKS 節點 IAM 角色。
-
Use launch template (使用啟動範本):(選用) 選擇是否要使用現有的啟動範本。選取啟動範本名稱。然後,選取 Launch template version (啟動範本版本)。如果您未選取版本,則 Amazon EKS會使用範本的預設版本。啟動範本可讓您自訂節點群組,例如允許您部署自訂 AMI、將顯著較多的 IP 地址指派給 Pods,將 IP 地址指派給 Pods 從與執行個體不同的CIDR區塊,啟用執行個體的containerd
執行期,並將節點部署到沒有傳出網際網路存取權的叢集。如需詳細資訊,請參閱 為具有前置字元的 Amazon EKS 節點指派更多 IP 地址、pods在具有自訂網路的替代子網路中部署、測試 Amazon Linux 2 從遷移Docker到 containerd 和 部署網際網路存取受限的私有叢集。
啟動範本必須符合 使用啟動範本自訂受管節點 要求。如果您不使用自己的啟動範本,Amazon 會在您的帳戶中EKSAPI建立預設的 Amazon EC2啟動範本,並使用預設啟動範本部署節點群組。
如果您IAM為服務帳戶 實作角色,請直接將必要的許可指派給每個 Pod 需要存取 AWS 服務,而且沒有 Pods 基於IMDS其他原因需要存取 ,例如擷取目前的 AWS 區域,您也可以針對 停用對 IMDS的存取 Pods 在啟動範本中不使用主機聯網。如需詳細資訊,請參閱限制存取指派給工作節點的執行個體設定檔。
-
Kubernetes 標籤 – (選用) 您可以選擇套用 Kubernetes 標籤到受管節點群組中的節點。
-
Kubernetes 污點 – (選用) 您可以選擇套用 Kubernetes 受管節點群組中節點的污點。Effect (效果) 功能表中的可用選項是 NoSchedule
、NoExecute
及 PreferNoSchedule
。如需詳細資訊,請參閱防Pods止在特定節點上排程。
-
標籤 – (選用) 您可以選擇標記 Amazon EKS受管節點群組。這些標籤不會傳播到節點群組中的其他資源,例如 Auto Scaling 群組或執行個體。如需詳細資訊,請參閱使用標籤整理 Amazon EKS 資源。
-
在 Set compute and scaling configuration (設定運算和擴展組態) 頁面上,相應地填寫參數,然後選擇 Next (下一步)。
-
AMI 類型 – 選取AMI類型。如果您在部署 Arm 執行個體,請務必在部署前檢閱 Amazon EKS最佳化 Arm Amazon Linux AMIs 中的考量事項。
如果您在上一頁指定了啟動範本,並在啟動範本AMI中指定了 ,則無法選取值。系統會顯示範本中的值。範本中AMI指定的 必須符合 中的要求指定 AMI。
-
Capacity type (容量類型) – 選取容量類型。如需選擇容量類型的詳細資訊,請參閱 受管節點群組容量類型。您無法在同一節點群組中混合使用不同的容量類型。如果要同時使用這兩種容量類型,請建立個別的節點群組,每個群組都有自己的容量和執行個體類型。
-
Instance types (執行個體類型):依預設會指定一或多個執行個體類型。若要移除預設執行個體類型,請選取執行個體類型的右側的 X
。選擇要在受管節點群組中使用的執行個體類型。如需詳細資訊,請參閱 選擇最佳的 Amazon EC2節點執行個體類型。
主控台會顯示一組常用的執行個體類型。如果您需要使用未顯示的執行個體類型建立受管節點群組,請使用 eksctl
、 AWS CloudFormation、 AWS CLI或 SDK來建立節點群組。如果您在上一頁指定了啟動範本,則無法選取值,因為必須在啟動範本中指定執行個體類型。系統會顯示啟動範本中的值。如果為 Capacity type (容量類型) 選取了 Spot,則建議您指定多個執行個體類型以增強可用性。
-
Disk size (磁碟大小) – 輸入要用於節點根磁碟區的磁碟大小 (以 GiB 為單位)。
如果您在上一頁指定了啟動範本,則無法選取值,因為必須在啟動範本中指定該值。
-
Desired size (所需大小) – 指定受管節點群組目前在啟動時應該維護的節點數量。
-
Minimum size (大小下限) – 指定受管節點群組可縮減至的節點數量下限。
-
Maximum size (大小上限):指定受管節點群組可擴增至的節點數量上限。
-
Node group update configuration (節點群組更新組態) – (選用) 您可以選取要平行更新的節點數量或百分比。這些節點在更新期間將無法使用。對於 Maximum unavailable (無法使用的上限),選取下列其中一個選項,然後指定 Value (值):
-
在 Specify networking (指定聯網) 頁面上,據此填寫參數,然後選擇 Next (下一步)。
-
Subnets (子網路):選擇要將受管節點啟動至其中的子網路。
-
如果您選擇公有子網路,且叢集僅啟用公有API伺服器端點,則子網路必須MapPublicIPOnLaunch
設定為 true
,執行個體才能成功加入叢集。如果子網路是在 2020 年 3 月 26 日當天或之後使用 eksctl
或 Amazon EKS vended AWS CloudFormation 範本建立,則此設定已設定為 true
。如果在 2020 年 3 月 26 日之前使用 eksctl
或 AWS CloudFormation 範本建立子網路,則需要手動變更設定。如需詳細資訊,請參閱修改子網路的公有 IPv4
定址屬性。
-
如果您使用啟動範本並指定多個網路介面,即使 MapPublicIpOnLaunch
設定為 ,Amazon EC2也不會自動指派公有IPv4
地址true
。若要讓節點在此案例中加入叢集,您必須啟用叢集的私有API伺服器端點,或在私有子網路中啟動節點,並透過替代方法提供傳出網際網路存取,例如NAT閘道。如需詳細資訊,請參閱 Amazon 使用者指南 中的 Amazon EC2執行個體 IP 定址。 EC2
-
設定節點的SSH存取 (選用)。啟用SSH可讓您連線至執行個體,並在發生問題時收集診斷資訊。強烈建議您在建立節點群組時啟用遠端存取。您無法在建立節點群組之後啟用遠端存取。
如果您選擇使用啟動範本,則不會顯示此選項。若要啟用節點的遠端存取,請在啟動範本中指定金鑰對,並確定您在啟動範本中指定之安全群組中的節點已開啟適當的連接埠。如需詳細資訊,請參閱使用自訂安全群組。
用於 Windows,此命令不會啟用 SSH。反之,它會將您的 Amazon EC2金鑰對與執行個體建立關聯,並允許您與執行個體RDP建立關聯。
-
針對SSH金鑰對 (選用),選擇要使用的 Amazon EC2SSH金鑰。用於 Linux 資訊,請參閱 Amazon EC2金鑰對和 LinuxAmazon EC2使用者指南 中的 執行個體。用於 Windows 資訊,請參閱 Amazon EC2金鑰對和 WindowsAmazon EC2使用者指南 中的 執行個體。如果您選擇使用啟動範本,則無法選取範本。當使用 為節點群組提供 Amazon EC2SSH金鑰時 Bottlerocket AMIs,系統也會啟用 管理容器。如需詳細資訊,請參閱 上的管理容器 GitHub.
-
對於允許從 SSH遠端存取,如果您想要限制對特定執行個體的存取,請選取與這些執行個體相關聯的安全群組。如果您未選取特定安全群組,則允許從網際網路上的任何地方SSH存取 (0.0.0.0/0
)。
-
在 Review and create (檢閱並建立) 頁面上,檢閱您的受管節點群組組態,然後選擇 Create (建立)。
如果節點無法加入叢集,請參閱疑難排解章節節點無法加入叢集中的 。
-
查看節點的狀態,並等待他們到達 Ready
狀態。
kubectl get nodes --watch
-
(GPU僅限節點) 如果您選擇GPU執行個體類型和 Amazon EKS最佳化加速 AMI,則必須將NVIDIA裝置外掛程式套用至 Kubernetes 作為 DaemonSet 在您的叢集上。在執行下列命令之前,將 取代vX.X.X
為您想要的 NVIDIA/k8s-device-plugin 版本。
kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X
/deployments/static/nvidia-device-plugin.yml
現在您已擁有具有節點的正常運作 Amazon EKS叢集,可以開始安裝 Kubernetes 附加元件和將應用程式部署到您的叢集。以下文件主題可協助您擴展叢集的功能。