協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 CLI AWS 建立 EKS 自動模式叢集
EKS Auto Mode 叢集可自動化運算、儲存和聯網的例行叢集管理任務。例如,EKS Auto Mode Clusters 會自動偵測何時需要額外節點,並佈建新的 EC2 執行個體以滿足工作負載需求。
本主題會引導您使用 CLI 建立新的 EKS AWS 自動模式叢集,並選擇性地部署範例工作負載。
先決條件
-
在裝置上安裝和設定的最新版本 AWS 命令列界面 (AWS CLI)。若要檢查您目前的版本,請使用
aws --version
。若要安裝最新版本,請參閱《 AWS 命令列界面使用者指南》中的使用 aws 設定安裝 和快速組態。-
使用足夠的 IAM 許可登入 CLI,以建立 AWS 資源,包括 IAM 政策、IAM 角色和 EKS 叢集。
-
-
裝置上安裝的 kubectl 命令列工具。 AWS 建議您使用與 EKS 叢集 Kubernetes 版本相同的 kubectl 版本。若要安裝或升級 kubectl,請參閱 設定 kubectl 和 eksctl。
指定 VPC 子網路
Amazon EKS Auto Mode 會將節點部署到 VPC 子網路。建立 EKS 叢集時,您必須指定要部署節點的 VPC 子網路。您可以使用 AWS 帳戶中的預設 VPC 子網路,或為關鍵工作負載建立專用 VPC。
-
AWS 建議為您的叢集建立專用 VPC。了解如何 為您的 Amazon EKS 叢集建立 Amazon VPC。
-
EKS 主控台可協助建立新的 VPC。了解如何 使用 建立 EKS 自動模式叢集 AWS Management Console。
-
或者,您可以使用 AWS 帳戶的預設 VPC。使用下列指示來尋找子網路 IDs。
使用 AWS CLI:
-
執行下列命令來列出預設 VPC 及其子網路:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=$(aws ec2 describe-vpcs --query 'Vpcs[?IsDefault==`true`].VpcId' --output text)" --query 'Subnets[*].{ID:SubnetId,AZ:AvailabilityZone}' --output table
-
儲存輸出並記下子網路 IDs。
輸出範例:
---------------------------------------- | DescribeSubnets | ---------------------------------------- | SubnetId | AvailabilityZone | |--------------------|---------------------| | subnet-012345678 | us-west-2a | | subnet-234567890 | us-west-2b | | subnet-345678901 | us-west-2c | ----------------------------------------
EKS 自動模式叢集的 IAM 角色
叢集 IAM 角色
EKS Auto Mode 需要叢集 IAM 角色才能在 AWS 帳戶中執行動作,例如佈建新的 EC2 執行個體。您必須建立此角色,才能授予 EKS 必要的許可。 AWS 建議將下列 AWS 受管政策連接至叢集 IAM 角色:
節點 IAM 角色
當您建立 EKS Auto Mode 叢集時,您可以指定節點 IAM 角色。當 EKS Auto Mode 建立節點來處理待處理的工作負載時,每個新的 EC2 執行個體節點都會指派節點 IAM 角色。此角色允許節點與 EKS 通訊,但節點上執行的工作負載通常無法存取。
如果您想要授予許可給在節點上執行的工作負載,請使用 EKS Pod Identity。如需詳細資訊,請參閱了解 EKS Pod Identity 如何授予 Pod 對 AWS 服務的存取權。
您必須建立此角色並連接下列 AWS 受管政策:
EKS Auto Mode 還需要服務連結角色,由 自動建立和設定 AWS。如需詳細資訊,請參閱 AWSServiceRoleForAmazonEKS。
建立 EKS 自動模式叢集 IAM 角色
步驟 1:建立信任政策
建立允許 Amazon EKS 服務擔任角色的信任政策。將政策儲存為 trust-policy.json
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }
步驟 2:建立 IAM 角色
使用信任政策來建立叢集 IAM 角色:
aws iam create-role \ --role-name AmazonEKSAutoClusterRole \ --assume-role-policy-document file://trust-policy.json
步驟 3:記下角色 ARN
擷取並儲存新角色的 ARN,以供後續步驟使用:
aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text
步驟 4:連接必要的政策
將下列 AWS 受管政策連接至叢集 IAM 角色,以授予必要的許可:
AmazonEKSClusterPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy
AmazonEKSComputePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy
AmazonEKSBlockStoragePolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy
AmazonEKSLoadBalancingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy
AmazonEKSNetworkingPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy
建立 EKS 自動模式節點 IAM 角色
步驟 1:建立信任政策
建立允許 Amazon EKS 服務擔任角色的信任政策。將政策儲存為 node-trust-policy.json
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
步驟 2:建立節點 IAM 角色
使用上一個步驟中的 node-trust-policy.json 檔案來定義哪些實體可以擔任該角色。執行下列命令來建立節點 IAM 角色:
aws iam create-role \ --role-name AmazonEKSAutoNodeRole \ --assume-role-policy-document file://node-trust-policy.json
步驟 3:記下角色 ARN
建立角色之後,請擷取並儲存節點 IAM 角色的 ARN。在後續步驟中,您將需要此 ARN。使用下列命令來取得 ARN:
aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text
步驟 4:連接必要的政策
將下列 AWS 受管政策連接至節點 IAM 角色,以提供必要的許可:
AmazonEKSWorkerNodeMinimalPolicy:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy
AmazonEC2ContainerRegistryPullOnly:
aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
建立 EKS 自動模式叢集
概觀
若要使用 CLI AWS 建立 EKS 自動模式叢集,您需要下列參數:
-
cluster-name
:叢集的名稱。 -
k8s-version
:Kubernetes 版本 (例如 1.31)。 -
subnet-ids
:在先前步驟中識別IDs。 -
cluster-role-arn
:叢集 IAM 角色的 ARN。 -
node-role-arn
:節點 IAM 角色的 ARN。
預設叢集組態
在建立叢集之前,請檢閱這些預設值和功能:
-
nodePools
:EKS Auto Mode 包含一般用途和系統預設節點集區。進一步了解節點集區。
注意:EKS Auto Mode 中的節點集區與 Amazon EKS 受管節點群組不同,但可以同時存在於同一個叢集中。
-
computeConfig.enabled
:自動化例行運算任務,例如建立和刪除 EC2 執行個體。 -
kubernetesNetworkConfig.elasticLoadBalancing.enabled
:自動化負載平衡任務,包括建立和刪除 Elastic Load Balancer。 -
storageConfig.blockStorage.enabled
:自動化儲存任務,例如建立和刪除 Amazon EBS 磁碟區。 -
accessConfig.authenticationMode
:需要 EKS 存取項目。進一步了解 EKS 身分驗證模式。
執行 命令
使用下列命令建立叢集:
aws eks create-cluster \ --region ${AWS_REGION} \ --cli-input-json \ "{ \"name\": \"${CLUSTER_NAME}\", \"version\": \"${K8S_VERSION}\", \"roleArn\": \"${CLUSTER_ROLE_ARN}\", \"resourcesVpcConfig\": { \"subnetIds\": ${SUBNETS_JSON}, \"endpointPublicAccess\": true, \"endpointPrivateAccess\": true }, \"computeConfig\": { \"enabled\": true, \"nodeRoleArn\":\"${NODE_ROLE_ARN}\", \"nodePools\": [\"general-purpose\", \"system\"] }, \"kubernetesNetworkConfig\": { \"elasticLoadBalancing\": { \"enabled\": true } }, \"storageConfig\": { \"blockStorage\": { \"enabled\": true } }, \"accessConfig\": { \"authenticationMode\": \"API\" } }
檢查叢集狀態
步驟 1:驗證叢集建立
執行下列命令來檢查叢集的狀態。叢集建立通常需要約 15 分鐘:
aws eks describe-cluster --name "${CLUSTER_NAME}" --output json
步驟 2:更新 kubeconfig
叢集準備就緒後,請更新您的本機 kubeconfig 檔案,kubectl
讓 與叢集通訊。此組態使用 AWS CLI 進行身分驗證。
aws eks update-kubeconfig --name "${CLUSTER_NAME}"
步驟 3:驗證節點集區
使用下列命令列出叢集中的節點集區:
kubectl get nodepools
後續步驟
-
了解如何將範例工作負載部署至新的 EKS Auto Mode 叢集。