

 **協助改進此頁面** 

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

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

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

# 建立 Amazon EKS 叢集
<a name="create-cluster"></a>

**注意**  
本主題涵蓋在沒有 EKS Auto 模式的情況下建立 Amazon EKS 叢集。  
如需建立 EKS 自動模式叢集的詳細資訊，請參閱 [建立 Amazon EKS 自動模式叢集](create-cluster-auto.md)。  
要開始使用 EKS 自動模式，請參閱 [Amazon EKS 入門– EKS 自動模式](getting-started-automode.md)。

本主題提供可用選項的概觀，並介紹您建立 Amazon EKS 叢集時需要考慮的問題。如果您需要使用內部部署基礎結構建立叢集，作為節點的運算，請參閱 [建立具有混合節點的 Amazon EKS 叢集](hybrid-nodes-cluster-create.md)。如果這是您第一次建立 Amazon EKS 叢集，建議您按照 [開始使用 Amazon EKS](getting-started.md) 中一個指南的步驟進行。這些指南可協助您建立一個簡單的預設叢集，而無需擴展到所有可用選項。

## 先決條件
<a name="_prerequisites"></a>
+ 現有 VPC 和子網符合 [Amazon EKS 要求](network-reqs.md)。部署叢集以供生產使用之前，建議您先徹底了解 VPC 和子網要求。如果您沒有 VPC 和子網路，您可以使用 [Amazon EKS provided AWS CloudFormation 範本](creating-a-vpc.md)建立它們。
+ `kubectl` 命令列工具安裝在您的裝置或 AWS CloudShell 上。版本可以與您的叢集 Kubernetes 版本相同，或是為最多比該版本更舊一版或更新一版的次要版本。若要安裝或升級 `kubectl`，請參閱 [設定 `kubectl` 和 `eksctl`](install-kubectl.md)。
+ 在您的裝置或 AWS CloudShell 上安裝和設定的 AWS 命令列界面 (AWS CLI) 版本 `1.27.160` `2.12.3`或更新版本。若要檢查您目前的版本，請使用 `aws --version | cut -d / -f2 | cut -d ' ' -f1`。適用於 macOS 的 `yum`、 `apt-get`或 Homebrew 等套件管理員通常是最新版本 CLI AWS 後面的幾個版本。若要安裝最新版本，請參閱《 * AWS 命令列界面使用者指南*》中的使用 aws 設定[安裝](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 和快速組態。 [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)在 AWS CloudShell 中安裝的 AWS CLI 版本也可能是最新版本後面的幾個版本。若要更新它，請參閱《CloudShell [AWS 使用者指南》中的將 CLI 安裝到您的主目錄](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software)。 * AWS CloudShell *
+ 具有對 Amazon EKS 叢集 `create` 和 `describe` 的許可的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)。如需詳細資訊，請參閱[在 Outpost 上建立本機 Kubernetes 叢集](security-iam-id-based-policy-examples.md#policy-create-local-cluster)及[所有叢集的清單或描述](security-iam-id-based-policy-examples.md#policy-example2)。

## 步驟 1：建立叢集 IAM 角色
<a name="_step_1_create_cluster_iam_role"></a>

1. 如果您已擁有叢集 IAM 角色，或者您要使用 `eksctl` 來建立叢集，則可以略過此步驟。根據預設，`eksctl` 會為您建立角色。

1. 執行下列命令以建立 IAM 信任政策 JSON 檔案。

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "eks.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. 建立 Amazon EKS 叢集 IAM 角色。如有必要，請在 *eks-cluster-role-trust-policy.json* 前面加上您在上一步中寫入檔案的電腦的路徑。命令會將您在上一步驟中建立的信任策略與角色相關聯。若要建立 IAM 角色，必須為建立角色的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)指派以下 `iam:CreateRole` 動作 (許可)。

   ```
   aws iam create-role --role-name myAmazonEKSClusterRole --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
   ```

1. 您可以指派 Amazon EKS 受管政策或建立自己的自訂政策。如需了解在自訂政策中必須使用的最低許可，請參閱 [Amazon EKS 叢集 IAM 角色](cluster-iam-role.md)。

   將名為 [AmazonEKSClusterPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKSClusterPolicy.html#AmazonEKSClusterPolicy-json) 的 Amazon EKS 受管 IAM 政策連接到角色。若要將 IAM 政策連接至 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)，必須為連接政策的 IAM 實體指派以下 IAM 動作之一 (許可)：`iam:AttachUserPolicy` 或 `iam:AttachRolePolicy`。

   ```
   aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy --role-name myAmazonEKSClusterRole
   ```

### 服務連結角色
<a name="_service_linked_role"></a>

Amazon EKS 會自動建立名為 `AWSServiceRoleForAmazonEKS` 的服務。

這是叢集 IAM 角色之外的額外角色。服務連結角色是直接連結至 Amazon EKS 的一種特殊 IAM 角色類型。該角色可讓 Amazon EKS 管理您帳戶中的叢集。如需詳細資訊，請參閱[使用 Amazon EKS 叢集的角色](using-service-linked-roles-eks.md)。

您用來建立 EKS 叢集的 IAM 身分必須具有建立服務連結角色的許可。這包括 `iam:CreateServiceLinkedRole` 許可。

如果服務連結角色尚不存在，且您當前的 IAM 角色沒有足夠的許可來建立，則叢集建立操作將會失敗。

## 步驟 2：建立叢集
<a name="_step_2_create_cluster"></a>

您可以透過以下方式建立叢集：
+  [`eksctl`](#step2-eksctl) 
+  [的 AWS 管理主控台](#step2-console) 
+  [AWS CLI](#step2-cli) 

### 建立叢集 - eksctl
<a name="step2-eksctl"></a>

1. 您需要在裝置`0.215.0`或 AWS CloudShell 上安裝版本 或更新版本的`eksctl`命令列工具。如需有關安裝或更新 `eksctl` 的指示，請參閱 `eksctl` 文件中的[安裝](https://eksctl.io/installation)一節。

1. 在預設 AWS 區域中使用 Amazon EKS 預設 Kubernetes 版本建立 Amazon EKS `IPv4`叢集。執行命令之前，請執行下列替換：

1. 將 *region-code* 取代為您要在其中建立叢集 AWS 的區域。

1. 使用您的叢集名稱取代 *my-cluster*。此名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以英數字元開頭，且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。

1. 將 *1.35* 取代為任何 [Amazon EKS 支援的版本](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)。

1. 變更 `vpc-private-subnets` 的值以符合您的要求。您也可以新增其他 ID。您必須指定至少兩個子網路 ID。如果您希望指定公有子網路，則可以將 `--vpc-private-subnets` 變更為 `--vpc-public-subnets`。公有子網路具有與網際網路閘道路由相關的路由表，但私有子網路沒有關聯的路由表。我們建議盡可能使用私有子網。

   您選擇的子網必須符合 [Amazon EKS 子網要求](network-reqs.md#network-requirements-subnets)。選擇子網路之前，建議您先熟悉 [Amazon EKS VPC 和子網路要求和考量事項](network-reqs.md)。

1. 執行以下命令：

   ```
   eksctl create cluster --name my-cluster --region region-code --version 1.35 --vpc-private-subnets subnet-ExampleID1,subnet-ExampleID2 --without-nodegroup
   ```

   叢集佈建需要幾分鐘的時間。建立叢集時，會出現幾行輸出。輸出的最後一行類似於下面的範例行。

   ```
   [✓]  EKS cluster "my-cluster" in "region-code" region is ready
   ```

1. 繼續進行 [步驟 3：更新 kubeconfig](#step3) 

#### 選項設定
<a name="_optional_settings"></a>

若要查看使用 `eksctl` 建立叢集時可指定的大部分選項，請使用 `eksctl create cluster --help` 命令。若要查看所有可用的選項，您可使用 `config` 檔案。如需詳細資訊，請參閱 `eksctl` 文件中的[使用組態檔](https://eksctl.io/usage/creating-and-managing-clusters/#using-config-files)與[組態檔結構描述](https://eksctl.io/usage/schema/)。您可以在 GitHub 上找到[組態檔範例](https://github.com/weaveworks/eksctl/tree/master/examples)。

以下是選用設定，如有需要，必須將其新增至上一個命令中。您只能在建立叢集時啟用這些選項，而不能在建立叢集之後啟用。如果需要指定這些選項，您必須使用 [eksctl 組態檔案](https://eksctl.io/usage/creating-and-managing-clusters/#using-config-files)建立叢集並指定設定，而不是使用上一個命令。
+ 如果您要指定一或多個 Amazon EKS 指派給其建立的網路介面的安全群組，請指定 [securityGroup](https://eksctl.io/usage/schema/#vpc-securityGroup) 選項。

  無論您是否選擇任何安全群組，Amazon EKS 都會建立一個安全群組，以支援您的叢集和 VPC 之間的通訊。Amazon EKS 將此安全群組及您選擇的任何群組與其建立的網路介面相關聯。如需有關 Amazon EKS 建立的叢集安全群組的詳細資訊，請參閱 [檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md)。您可以修改 Amazon EKS 建立的叢集安全群組中的規則。
+ 如果您想指定 Kubernetes 要從哪個 `IPv4` 無類別域間路由 (CIDR) 區塊中指派服務 IP 位址，請指定 [serviceIPv4CIDR](https://eksctl.io/usage/schema/#kubernetesNetworkConfig-serviceIPv4CIDR) 選項。

  指定您自己的範圍有助於防止 Kubernetes 服務與對等或連接到您的 VPC 的其他網路之間發生衝突。在 CIDR 標記法中輸入範圍。例如：`10.2.0.0/16`。

  CIDR 區塊必須符合下列需求：
  + 處於以下範圍之一：`10.0.0.0/8`、`172.16.0.0/12` 或 `192.168.0.0/16`。
  + 具有最小尺寸的 `/24` 和最大尺寸的 `/12`。
  + 與您的 Amazon EKS 資源的 VPC 範圍不重疊。

    您只能在使用 `IPv4` 地址系列時指定此選項，並且只能在建立叢集時指定。如果您未指定此項，則 Kubernetes 會從 `10.100.0.0/16` 或 `172.20.0.0/16` CIDR 區塊指派服務 IP 位址。
+ 如果您正在建立叢集，並希望叢集將 `IPv6` 位址 (而不是 `IPv4` 位址) 指派給 Pod 和服務，請指定 [ipFamily](https://eksctl.io/usage/schema/#kubernetesNetworkConfig-ipFamily) 選項。

  預設情況下，Kubernetes 會為 Pod 和服務指派 `IPv4` 位址。在決定使用 `IPv6` 系列之前，請確認您已熟悉 [VPC 要求和注意事項](network-reqs.md#network-requirements-vpc)、[子網需求和注意事項](network-reqs.md#network-requirements-subnets)、[檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md) 和 [了解叢集、Pod 與服務的 IPv6 位址](cni-ipv6.md) 主題中的所有考量事項和要求。如果您選擇 `IPv6` 系列，則無法像對 `IPv4` 系列那樣，指定 Kubernetes 從中分配 `IPv6` 服務位址的位址範圍。Kubernetes 從唯一的本地位址範圍指派服務位址 (`fc00::/7`)。

### 建立叢集 - AWS 主控台
<a name="step2-console"></a>

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 選取 **Add cluster** (新增叢集)，然後選取 **Create** (建立)。

1. 在**組態選項**下，請選取**自訂組態** 
   + 有關使用 EKS 自動模式快速建立叢集的更多資訊，請參閱 [使用 AWS 管理主控台 建立 EKS 自動模式叢集](automode-get-started-console.md)。

1. 在 **EKS 自動模式**下，關閉**使用 EKS 自動模式**。
   + 有關使用自訂組態建立 EKS 自動模式叢集的詳細資訊，請參閱 [建立 Amazon EKS 自動模式叢集](create-cluster-auto.md)。

1. 在 **Configure cluster** (設定叢集) 頁面上，輸入下列欄位：
   +  **Name** (名稱)：叢集的名稱。名稱僅包含英數字元 (區分大小寫)、連字號和底線。必須以英數字元開頭，且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。
   +  **叢集 IAM 角色** – 選擇您建立的 Amazon EKS 叢集 IAM 角色，以允許 Kubernetes 控制平面代表您管理 AWS 資源。
   +  **Kubernetes version** (Kubernetes 版本) – 您的叢集使用的 Kubernetes 版本。我們建議選取最新版本，除非您需要較早版本。
   +  **支援類型**：您要為叢集設定的 Kubernetes 版本政策。如果您希望叢集僅在標準支援版本上執行，可以選擇**標準支援**。如果您希望叢集在某個版本的標準支援結束時進入延伸支援，可以選擇**延伸支援**。如果您選擇的 Kubernetes 版本目前處於延伸支援狀態，則無法選取標準支援作為選項。
   +  **Secrets encryption** (秘密加密)：(選用) 選擇使用 KMS 金鑰啟用 Kubernetes 秘密的秘密加密。您也可以在建立叢集後啟用此功能。啟用此功能之前，請確定您已熟悉 [在現有叢集上使用 KMS 加密 Kubernetes 秘密](enable-kms.md) 中的資訊。
   +  **Tags** (標籤) – (選用) 將任何標籤新增到您的叢集。如需詳細資訊，請參閱[使用標籤組織 Amazon EKS 資源](eks-using-tags.md)。
   +  **ARC 區域轉移** - (選用) 您可使用 Route53 Application Recovery Controller 來緩解受損的可用區域。如需詳細資訊，請參閱[了解 Amazon EKS 中的 Amazon 應用程式復原控制器 (ARC) 區域轉移](zone-shift.md)。

1. 在設定叢集頁面的**叢集存取**部分，輸入以下欄位：
   +  **引導叢集管理員存取**：叢集建立者自動成為 Kubernetes 管理員。如果您要停用此功能，請選擇**不允許叢集管理員存取**。
   +  **叢集身分驗證模式**：決定您想要如何授予 IAM 使用者和角色對 Kubernetes API 的存取權。如需詳細資訊，請參閱[設定叢集驗證模式](grant-k8s-access.md#set-cam)。

     完成此頁面後，請選擇**下一步**。

1. 在 **Specify networking (指定網路)** 頁面上，選取下列欄位的值：
   +  **VPC**：選擇符合 [Amazon EKS VPC 要求](network-reqs.md#network-requirements-vpc)的現有 VPC 來建立您的叢集。選擇 VPC 之前，建議您先熟悉 [檢視 VPC 和子網路的 Amazon EKS 聯網需求](network-reqs.md) 中的所有要求和考量事項。建立叢集後，您無法變更要使用的 VPC。如果沒有列出 VPC，則您需要先建立一個。如需詳細資訊，請參閱 [為您的 Amazon EKS 叢集建立 Amazon VPC](creating-a-vpc.md)。
   +  **Subnets** (子網路)：根據預設，前一個欄位指定的 VPC 中的所有可用子網路會預先選取。您必須選取至少兩個。

     您選擇的子網必須符合 [Amazon EKS 子網要求](network-reqs.md#network-requirements-subnets)。選擇子網路之前，建議您先熟悉 [Amazon EKS VPC 和子網路要求和考量事項](network-reqs.md)。

      **安全群組**:(選用) 指定一或多個您希望 Amazon EKS 與其建立的網路介面相關聯的安全群組。

     無論您是否選擇任何安全群組，Amazon EKS 都會建立一個安全群組，以支援您的叢集和 VPC 之間的通訊。Amazon EKS 將此安全群組及您選擇的任何群組與其建立的網路介面相關聯。如需有關 Amazon EKS 建立的叢集安全群組的詳細資訊，請參閱 [檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md)。您可以修改 Amazon EKS 建立的叢集安全群組中的規則。
   +  **選擇叢集 IP 地址系列**：您可以選擇 **IPv4** 或 **IPv6**。

     預設情況下，Kubernetes 會為 Pod 和服務指派 `IPv4` 位址。在決定使用 `IPv6` 系列之前，請確認您已熟悉 [VPC 要求和考量事項](network-reqs.md#network-requirements-vpc)、[子網需求和注意事項](network-reqs.md#network-requirements-subnets)、[檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md) 和 [了解叢集、Pod 與服務的 IPv6 位址](cni-ipv6.md) 主題中的所有考量事項和要求。如果您選擇 `IPv6` 系列，則無法像對 `IPv4` 系列那樣，指定 Kubernetes 從中分配 `IPv6` 服務位址的位址範圍。Kubernetes 從唯一的本地位址範圍指派服務位址 (`fc00::/7`)。
   + (選用) 選擇**設定 Kubernetes 服務 IP 位址範圍**，並指定**服務 `IPv4` 範圍**。

     指定您自己的範圍有助於防止 Kubernetes 服務與對等或連接到您的 VPC 的其他網路之間發生衝突。在 CIDR 標記法中輸入範圍。例如：`10.2.0.0/16`。

     CIDR 區塊必須符合下列需求：
     + 處於以下範圍之一：`10.0.0.0/8`、`172.16.0.0/12` 或 `192.168.0.0/16`。
     + 具有最小尺寸的 `/24` 和最大尺寸的 `/12`。
     + 與您的 Amazon EKS 資源的 VPC 範圍不重疊。

   您只能在使用 `IPv4` 地址系列時指定此選項，並且只能在建立叢集時指定。如果您未指定此項，則 Kubernetes 會從 `10.100.0.0/16` 或 `172.20.0.0/16` CIDR 區塊指派服務 IP 位址。
   + 針對 **Cluster endpoint access** (叢集端點存取)，選取一個選項。建立叢集後，您可以變更此選項。在選取非預設選項之前，請務必熟悉這些選項及其含義。如需詳細資訊，請參閱[叢集 API 伺服器端點](cluster-endpoint.md)。

     完成此頁面後，請選擇**下一步**。

1. (選用) 在**設定可觀測性**頁面上，選擇要開啟的**指標**和**控制平面日誌記錄**選項。根據預設，系統會關閉每個日誌類型。
   + 如需有關 Prometheus 指標選項的詳細資訊，請參閱 [步驟 1：開啟 Prometheus 指標](prometheus.md#turn-on-prometheus-metrics)。
   + 如需**控制平面日誌記錄**選項的詳細資訊，請參閱 [將控制平面日誌傳送至 CloudWatch Logs](control-plane-logs.md)。

   完成此頁面後，請選擇**下一步**。

1. 在 **Select add-ons** (選取附加元件) 頁面上，選擇您要新增至叢集的附加元件。某些附加元件是預先選取的。您可以視需要選擇任意數量的 **Amazon EKS 附加元件**和 ** AWS Marketplace 附加元件**。如果您想要安裝的 ** AWS Marketplace 附加元件**未列出，您可以按一下頁面編號以檢視其他頁面結果，或在搜尋方塊中輸入文字來搜尋可用的 ** AWS Marketplace 附加元件**。您也可以依**類別**、**廠商**或**定價模式**搜尋，然後從搜尋結果中選擇附加元件。建立叢集時，您可以檢視、選取和安裝支援 EKS Pod 身分識別的任何附加元件，詳見 [了解 EKS Pod 身分識別如何授予 AWS 服務的 Pod 存取權](pod-identities.md)。

   完成此頁面後，請選擇**下一步**。

   一些附加元件，例如 Amazon VPC CNI、CoreDNS 和 kube-proxy，是預設安裝的。如果停用任何預設附加元件，可能會影響您執行 Kubernetes 應用程式的能力。

1. 在**設定選取的附加元件設定**頁面上，選取您要安裝的版本。建立叢集後，您隨時皆可更新至更新版本。

   對於支援 EKS Pod 身分的附加元件，您可以使用 主控台自動產生角色，其中包含專為附加元件預先填入的名稱、 AWS 受管政策和信任政策。您可以重複使用現有角色或為支援的附加元件建立新角色。有關使用主控台為支援 EKS Pod 身分識別的附加元件建立角色的步驟，請參閱 [建立附加元件AWS （主控台）](creating-an-add-on.md#create_add_on_console)。如果附加元件不支援 EKS Pod 身分識別，則會顯示一則訊息，指示在叢集建立後使用精靈建立服務帳戶的 IAM 角色 (IRSA)。

   您可以在建立叢集後更新每個附加元件的組態。如需有關設定附加元件的詳細資訊，請參閱[更新 Amazon EKS 附加元件](updating-an-add-on.md)。完成此頁面後，請選擇**下一步**。

1. 在 **Review and create (檢閱並建立)** 頁面上，檢閱您在先前頁面上輸入或選取的資訊。如需變更，請選擇 **Edit** (編輯)。當您感到滿意時，請選擇**建立**。在佈建叢集時，**Status** (狀態) 欄位顯示 **CREATING** (正在建立)。
**注意**  
您可能會收到錯誤，表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況，錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊，請參閱[容量不足](troubleshooting.md#ice)。

   叢集佈建需要幾分鐘的時間。

1. 繼續進行 [步驟 3：更新 kubeconfig](#step3) 

### 建立叢集 - AWS CLI
<a name="step2-cli"></a>

1. 使用下列命令建立您的叢集。執行命令之前，請執行下列替換：
   + 將 *region-code* 取代為您要在其中建立叢集 AWS 的區域。
   + 使用您的叢集名稱取代 *my-cluster*。名稱僅包含英數字元 (區分大小寫)、連字號和底線。必須以英數字元開頭，且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。
   + 將 *1.35* 取代為任何 [Amazon EKS 支援的版本](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)。
   + 使用帳戶 ID 取代 *111122223333*，並使用叢集 IAM 角色名稱取代 *myAmazonEKSClusterRole*。
   + 以您自己的值取代 `subnetIds` 值。您也可以新增其他 ID。您必須指定至少兩個子網路 ID。

     您選擇的子網必須符合 [Amazon EKS 子網要求](network-reqs.md#network-requirements-subnets)。選擇子網路之前，建議您先熟悉 [Amazon EKS VPC 和子網路要求和考量事項](network-reqs.md)。
   + 如果您不想要指定安全群組 ID，請從命令中移除 `,securityGroupIds=sg-<ExampleID1>`。如果要指定一或多個安全群組 ID，請將 `securityGroupIds` 取代為您自己的值。您也可以新增其他 ID。

     無論您是否選擇任何安全群組，Amazon EKS 都會建立一個安全群組，以支援您的叢集和 VPC 之間的通訊。Amazon EKS 將此安全群組及您選擇的任何群組與其建立的網路介面相關聯。如需有關 Amazon EKS 建立的叢集安全群組的詳細資訊，請參閱 [檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md)。您可以修改 Amazon EKS 建立的叢集安全群組中的規則。

     ```
     aws eks create-cluster --region region-code --name my-cluster --kubernetes-version 1.35 \
        --role-arn arn:aws: iam::111122223333:role/myAmazonEKSClusterRole \
        --resources-vpc-config subnetIds=subnet-ExampleID1,subnet-ExampleID2,securityGroupIds=sg-ExampleID1
     ```
**注意**  
您可能會收到錯誤，表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況，錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊，請參閱[容量不足](troubleshooting.md#ice)。

     以下是選用設定，如有需要，必須將其新增至上一個命令中。您只能在建立叢集時啟用這些選項，而不能在建立叢集之後啟用。
   + 預設情況下，EKS 在叢集建立期間會安裝多個聯網附加元件。這包括 Amazon VPC CNI、CoreDNS 及 kube-proxy。

     如果您想要停用這些預設聯網附加元件的安裝，請使用以下參數。這可能用於替代 CNI，例如 Cilium。如需詳細資訊，請參閱 [EKS API 參考](https://docs.aws.amazon.com/eks/latest/APIReference/API_CreateCluster.html)。

      `aws eks create-cluster --no-bootstrap-self-managed-addons …​` 
   + 如果您想指定 Kubernetes 要從哪個 `IPv4` 無類別域間路由 (CIDR) 區塊中指派服務 IP 地址，您必須將 `--kubernetes-network-config serviceIpv4Cidr=<cidr-block>` 新增至下列命令來指定。

     指定您自己的範圍有助於防止 Kubernetes 服務與對等或連接到您的 VPC 的其他網路之間發生衝突。在 CIDR 標記法中輸入範圍。例如：`10.2.0.0/16`。

     CIDR 區塊必須符合下列需求：
     + 處於以下範圍之一：`10.0.0.0/8`、`172.16.0.0/12` 或 `192.168.0.0/16`。
     + 具有最小尺寸的 `/24` 和最大尺寸的 `/12`。
     + 與您的 Amazon EKS 資源的 VPC 範圍不重疊。

   您只能在使用 `IPv4` 地址系列時指定此選項，並且只能在建立叢集時指定。如果您未指定此項，則 Kubernetes 會從 `10.100.0.0/16` 或 `172.20.0.0/16` CIDR 區塊指派服務 IP 位址。
   + 如果您正在建立叢集，並希望叢集將 `IPv6` 位址 (而不是 `IPv4` 位址) 指派給 Pod 和服務，請將 `--kubernetes-network-config ipFamily=ipv6` 新增至以下命令。

     預設情況下，Kubernetes 會為 Pod 和服務指派 `IPv4` 位址。在決定使用 `IPv6` 系列之前，請確認您已熟悉 [VPC 要求和考量事項](network-reqs.md#network-requirements-vpc)、[子網需求和注意事項](network-reqs.md#network-requirements-subnets)、[檢視叢集的 Amazon EKS 安全群組要求](sec-group-reqs.md) 和 [了解叢集、Pod 與服務的 IPv6 位址](cni-ipv6.md) 主題中的所有考量事項和要求。如果您選擇 `IPv6` 系列，則無法像對 `IPv4` 系列那樣，指定 Kubernetes 從中分配 `IPv6` 服務位址的位址範圍。Kubernetes 從唯一的本地位址範圍指派服務位址 (`fc00::/7`)。

1. 佈建叢集需要幾分鐘才能完成。您可以使用下列命令來查詢叢集的狀態。

   ```
   aws eks describe-cluster --region region-code --name my-cluster --query "cluster.status"
   ```

   在傳回的輸出為 `ACTIVE` 之前，請勿進行下一個步驟。

1. 繼續進行 [步驟 3：更新 kubeconfig](#step3) 

## 步驟 3：更新 kubeconfig
<a name="step3"></a>

1. 如果您使用 `eksctl` 建立叢集，則可以略過此步驟。這是因為 `eksctl` 已為您完成此步驟。透過向 `kubectl` `config` 檔案新增內容，使 `kubectl` 能夠與您的叢集通訊。如需建立和更新檔案的詳細資訊，請參閱 [透過建立 kubeconfig 檔案將 kubectl 連線至 EKS 叢集](create-kubeconfig.md)。

   ```
   aws eks update-kubeconfig --region region-code --name my-cluster
   ```

   範例輸出如下。

   ```
   Added new context arn:aws: eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
   ```

1. 透過執行以下命令確認與叢集的通訊。

   ```
   kubectl get svc
   ```

   範例輸出如下。

   ```
   NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
   kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   28h
   ```

## 步驟 4：叢集設定
<a name="_step_4_cluster_setup"></a>

1. （建議） 若要使用一些 Amazon EKS 附加元件，或讓個別 Kubernetes 工作負載具有特定的 AWS Identity and Access Management (IAM) 許可，請為您的叢集[建立 IAM OpenID Connect (OIDC) 供應商](enable-iam-roles-for-service-accounts.md)。您只需要為叢集建立 IAM OIDC 提供商一次。若要進一步了解 Amazon EKS 附加元件，請參閱 [Amazon EKS 附加元件](eks-add-ons.md)。若要進一步了解如何將特定 IAM 許可指派給您的工作負載，請參閱 [服務帳戶的 IAM 角色](iam-roles-for-service-accounts.md)。

1. (建議) 將叢集設定為 Kubernetes 專用 Amazon VPC CNI 外掛程式，然後再將 Amazon EC2 節點部署到叢集。預設情況下，外掛程式已隨叢集一起安裝。將 Amazon EC2 節點新增到叢集時，外掛程式會自動部署至您新增的每個 Amazon EC2 節點。外掛程式要求您將以下 IAM 政策之一連接至 IAM 角色。如果您的叢集使用 `IPv4` 系列，可使用 [AmazonEKS\$1CNI\$1Policy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEKS_CNI_Policy.html) 受管 IAM 政策。如果您的叢集使用 `IPv6` 系列，可使用[您建立的 IAM 政策](cni-iam-role.md#cni-iam-role-create-ipv6-policy)。

   您連接政策的 IAM 角色可以是節點 IAM 角色，也可以是僅用於外掛程式的專用角色。我們建議將政策連接至此角色。有關建立角色的更多資訊，請參閱 [設定 Amazon VPC CNI 外掛程式以使用 IRSA](cni-iam-role.md) 或 [Amazon EKS 節點 IAM 角色](create-node-role.md)。

1. 如果您使用 部署叢集 AWS 管理主控台，則可以略過此步驟。根據預設， AWS 管理主控台 部署適用於 Kubernetes、CoreDNS 和 Amazon EKS 附加元件`kube-proxy`的 Amazon VPC CNI 外掛程式。

   如果您使用 `eksctl`或 AWS CLI 部署叢集，則會部署適用於 Kubernetes、CoreDNS 和`kube-proxy`自我管理附加元件的 Amazon VPC CNI 外掛程式。您可以將隨叢集一起部署的 Kubernetes 專用 Amazon VPC CNI 外掛程式、CoreDNS 和 `kube-proxy` 自我管理附加元件移轉到 Amazon EKS 附加元件。如需詳細資訊，請參閱[Amazon EKS 附加元件](eks-add-ons.md)。

1. (選用) 如果您尚未執行此操作，則可啟用叢集的 Prometheus 指標。如需詳細資訊，請參閱《*Amazon Managed Service for Prometheus 使用者指南*》中的[建立湊集器](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-collector-how-to.html#AMP-collector-create)。

1. 如果您計劃將使用 Amazon EBS 磁碟區的工作負載部署到叢集，則必須在部署工作負載之前將 [Amazon EBS CSI](ebs-csi.md) 安裝到叢集。

## 後續步驟
<a name="_next_steps"></a>
+ 建立叢集的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)是唯一可以存取叢集的 IAM 主體。[將許可授予其他 IAM 主體](grant-k8s-access.md)，這樣他們就可以存取您的叢集。
+ 如果建立叢集的 IAM 主體僅具有先決條件中所參考的最低 IAM 許可，那麼您可能需要為該主體新增其他 Amazon EKS 許可。如需將 Amazon EKS 許可授予 IAM 主體的詳細資訊，請參閱 [Amazon EKS 的 Identity and Access Management](security-iam.md)。
+ 如果您希望建立叢集的 IAM 主體或任何其他主體在 Amazon EKS 主控台中檢視 Kubernetes 資源，請對實體授予[必要許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)。
+ 如果您希望節點和 IAM 主體從 VPC 內存取您的叢集，請啟用叢集的私有端點。根據預設，公有端點為啟用狀態。如有需要，您可以在啟用私有端點後停用公有端點。如需詳細資訊，請參閱[叢集 API 伺服器端點](cluster-endpoint.md)。
+  [為叢集啟用密鑰加密](enable-kms.md)。
+  [設定叢集的日誌](control-plane-logs.md)。
+  [將節點新增至叢集](eks-compute.md)。