協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為叢集建立受管節點群組
本主題說明如何啟動向 Amazon EKS 叢集註冊的節點之 Amazon EKS 受管節點群組。節點加入叢集後,您就可以將 Kubernetes 應用程式部署至其中。
如果這是您第一次啟動 Amazon EKS 受管節點群組,建議您改為遵循我們的開始使用 Amazon EKS指南之一。這些指南提供使用節點建立 Amazon EKS 叢集的逐步解說。
您可以使用 eksctl
或 AWS Management Console建立受管節點群組。
- eksctl
-
使用 eksctl
建立受管節點群組
此程序需要 eksctl
版本 0.189.0
或更新版本。您可使用以下命令檢查您的版本:
eksctl version
如需有關安裝或更新 eksctl
的指示,請參閱 eksctl
文件中的 Installation 一節。
-
(選擇性) 如果 Amazon EKS CNI _ 政策受管IAM政策附加到您的Amazon EKS 節點 IAM 角色,建議您將其指派給與Kubernetesaws-node
服務帳戶相關聯的IAM角色。如需詳細資訊,請參閱配置 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/家裡 #/集群打開 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、Pods從執行個體不同的CIDR區塊指派 IP 位址、為執行個體啟用執containerd
行階段,以及將節點部署到沒有輸出網際網路存取的叢集。如需詳細資訊,請參閱 為具有前置字元的 Amazon EKS 節點指派更多 IP 地址、pods在具有自訂網路的替代子網路中部署、測試 Amazon Linux 2 從遷移Docker到 containerd 和 部署網際網路存取受限的私有叢集。
啟動範本必須符合 使用啟動範本自訂受管節點 要求。如果您不使用自己的啟動範本,Amazon EKS API 會在您的帳戶中建立預設的 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 CLI AWS CloudFormation、或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售 AWS CloudFormation 範本建立的,則此設定已設定為true
。如果子網路是使用eksctl
或在 2020 年 3 月 26 日之前建立的 AWS CloudFormation 範本,則您需要手動變更設定。如需詳細資訊,請參閱修改子網路的公有 IPv4
定址屬性。
-
如果您使用啟動範本並指定多個網路界面,即使設定為true
,Amazon 也EC2不會自動指派公MapPublicIpOnLaunch
用IPv4
地址。若要在此案例中加入叢集的節點,您必須啟用叢集的私人API伺服器端點,或啟動私有子網路中的節點,並透過替代方法 (例如NAT閘道) 提供輸出網際網路存取權。如需詳細資訊,請參閱 Amazon EC2使用者指南中的 Amazon EC2 執行個體 IP 定址。
-
設定對節點的SSH存取權限 (選用)。啟用SSH可讓您連線至執行個體,並在發生問題時收集診斷資訊。強烈建議您在建立節點群組時啟用遠端存取。您無法在建立節點群組之後啟用遠端存取。
如果您選擇使用啟動範本,則不會顯示此選項。若要啟用節點的遠端存取,請在啟動範本中指定金鑰對,並確定您在啟動範本中指定之安全群組中的節點已開啟適當的連接埠。如需詳細資訊,請參閱使用自訂安全群組。
對於Windows,此命令不會啟用SSH。相反地,它會將您的 Amazon EC2 key pair 與執行個體產生關聯,並允許您進RDP入執行個體。
-
對於 SSHkey pair (選用),請選擇要使用的 Amazon EC2 SSH 金鑰。如需詳Linux細資訊,請參閱 Amazon EC2使用者指南中的 Amazon EC2 金鑰對和Linux執行個體。如需詳Windows細資訊,請參閱 Amazon EC2使用者指南中的 Amazon EC2 金鑰對和Windows執行個體。如果您選擇使用啟動範本,則無法選取範本。使用為節點群組提供 Amazon EC2 SSH 金鑰時 BottlerocketAMIs,也會啟用管理容器。如需詳細資訊,請參閱 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/k8 s-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附加元件,並將應用程式部署到叢集。以下文件主題可協助您擴展叢集的功能。