

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# `AWS-CreateEKSClusterWithNodegroup`
<a name="aws-createeksclusterwithnodegroup"></a>

 **Description** 

 `AWS-CreateEKSClusterWithNodegroup` Runbook 會使用節點群組建立容量的 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集。

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWS-CreateEKSClusterWithNodegroup) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 之使用者的許可。
+ ClusterName

  類型：字串

  描述：（必要） 叢集的唯一名稱。
+ ClusterRoleArn

  類型：字串

  描述：（必要） IAM 角色的 ARN，提供 Kubernetes 控制平面代表您呼叫 AWS API 操作的許可。
+ NodegroupName

  類型：字串

  描述：（必要） 節點群組的唯一名稱。
+ NodegroupRoleArn

  類型：字串

  描述：（必要） 要與您的節點群組建立關聯的 IAM 角色 ARN。Amazon EKS 工作者節點 kubelet 協助程式會代表您呼叫 AWS APIs。節點透過 IAM 執行個體描述檔和關聯的政策，取得這些 API 呼叫的許可。啟動節點並在叢集中註冊之前，您必須先為那些節點建立啟動時要使用的 IAM 角色。
+ SubnetIds

  類型：StringList

  描述：（必要） 您要用於 Amazon EKS 叢集IDs。Amazon EKS 會在這些子網路中建立彈性網路介面，以便在節點和 Kubernetes 控制平面之間進行通訊。您必須指定至少兩個子網路 ID。
+ EKSEndpointPrivateAccess

  類型：布林值

  預設：True

  描述：（選用） 將此值設為 `True`，以允許叢集 Kubernetes API 伺服器端點的私有存取。如果您啟用私有存取，叢集 VPC 中的 Kubernetes API 請求將使用私有 VPC 端點。如果您停用私有存取，且叢集中有節點或 Pod，則請確保 `publicAccessCidrs`包含與節點或 Fargate AWS Fargate Pod 通訊所需的 CIDR 區塊。
+ EKSEndpointPublicAccess

  類型：布林值

  預設：False

  描述：（選用） 將此值設定為 `False`，以停用對叢集 Kubernetes API 伺服器端點的公開存取。如果您停用公有存取，叢集的 Kubernetes API 伺服器只能從啟動它的 VPC 內接收請求。
+ PublicAccessCIDRs

  類型：StringList

  描述：（選用） 允許存取叢集公有 Kubernetes API 伺服器端點的 CIDR 區塊。從您指定的 CIDR 區塊之外的地址與端點的通訊遭拒。如果您已停用私有端點存取，且叢集中有節點或 Fargate Pod，則請確定您指定必要的 CIDR 區塊。
+ SecurityGroupIds

  類型：StringList

  描述：（選用） 指定一或多個安全群組，以與 Amazon EKS 在您帳戶中建立的彈性網路介面建立關聯。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:StartAutomationExecution`
+ `ssm:GetAutomationExecution`
+ `ec2:DescribeSubnets`
+ `eks:CreateCluster`
+ `eks:CreateNodegroup`
+ `eks:DescribeCluster`
+ `eks:DescribeNodegroup`
+ `iam:CreateServiceLinkedRole`
+ `iam:GetRole`
+ `iam:ListAttachedRolePolicies`
+ `iam:PassRole`

 **文件步驟** 
+ CreateEKSCluster (aws：executeAwsApi) - 建立 Amazon EKS 叢集。
+ VerifyEKSClusterIsActive (aws：waitForAwsResourceProperty) - 驗證叢集狀態為 `ACTIVE`。
+ CreateNodegroup (aws：executeAwsApi) - 建立叢集的節點群組。
+ VerifyNodegroupIsActive (aws：waitForAwsResourceProperty) - 驗證節點群組狀態為 `ACTIVE`。

 **輸出** 
+ `CreateEKSCluster.CreateClusterResponse`：從 `CreateCluster` API 呼叫收到的回應。
+ `CreateNodegroup.CreateNodegroupResponse`：從 `CreateNodegroup` API 呼叫收到的回應。