

 **協助改進此頁面** 

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

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

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

# 開始使用 Amazon EKS – AWS 管理主控台 和 AWS CLI
<a name="getting-started-console"></a>

**注意**  
本主題涵蓋**不使用** EKS 自動模式時的入門。它會使用受管節點群組來部署節點。  
EKS 自動模式會自動執行用於叢集運算、儲存和聯網的例行任務。[了解如何開始使用 Amazon EKS 自動模式。](getting-started-automode.md)EKS 自動模式是部署節點的慣用方法。

本指南可協助您建立所有必要的資源，以使用 AWS 管理主控台 和 CLI 開始使用 Amazon Elastic Kubernetes Service AWS (Amazon EKS)。在本指南中，您可以手動建立每個資源。此教學結束時，您將擁有一個執行中的 Amazon EKS 叢集，而您可以在其中部署應用程式。

本指南中的程序可讓您完全瞭解每個資源的建立方式，以及資源彼此之間的互動方式。如果您希望自動為您建立大部分資源，請使用 `eksctl` CLI 建立叢集和節點。如需詳細資訊，請參閱[Amazon EKS 入門 – `eksctl`](getting-started-eksctl.md)。

## 先決條件
<a name="eks-prereqs"></a>

開始此教學之前，您必須先安裝和設定下列在建立和管理 Amazon EKS 叢集所需的工具和資源。
+  ** AWS CLI** – 用於使用 AWS 服務的命令列工具，包括 Amazon EKS。如需詳細資訊，請參閱《 AWS 命令列界面使用者指南》中的[安裝](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)。安裝 CLI AWS 之後，建議您也進行設定。如需詳細資訊，請參閱《 AWS 命令列界面使用者指南》中的[具有 aws 設定的快速組態](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)。請注意，使用此頁面中顯示的 **update-kubeconfig** 選項需要 AWS CLI v2。
+  ** `kubectl` **：命令列工具，適用於使用 Kubernetes 叢集。如需詳細資訊，請參閱[設定 `kubectl` 和 `eksctl`](install-kubectl.md)。
+  **所需的 IAM 許可**：您使用的 IAM 安全主體必須具有使用 Amazon EKS IAM 角色、服務連結角色、 AWS CloudFormation、VPC 和相關資源的許可。如需詳細資訊，請參閱《IAM 使用者指南》中的[動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html)和[使用服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。您必須以同一位使用者的身分完成本指南中的所有步驟。若要檢查目前使用者，請執行以下命令：

  ```
  aws sts get-caller-identity
  ```

建議您在 Bash shell 中完成本主題中的步驟。如果您不使用 Bash shell，則某些指令碼命令 (如行接續字元以及設定和使用變數的方式) 需要針對 shell 進行調整。此外，您的 Shell 的引用及轉義規則可能會有所不同。如需詳細資訊，請參閱《 AWS 命令列界面使用者指南[》中的使用引號搭配 AWS CLI 中的字串](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html)。

## 步驟 1：建立您的 Amazon EKS 叢集
<a name="eks-create-cluster"></a>

**重要**  
為了盡可能簡單快速地開始使用，本主題包含使用預設設定建立叢集的步驟。建立叢集供生產使用之前，建議您先熟悉所有設定，再使用符合需求的設定來部署叢集。如需詳細資訊，請參閱[建立 Amazon EKS 叢集](create-cluster.md)。只有在建立叢集時，才能夠啟用某些設定。

1. 使用符合 Amazon EKS 要求的公有和私有子網路建立 Amazon VPC。將 *region-code* 取代為 Amazon EKS 支援的任何 AWS 區域。如需 AWS 區域清單，請參閱《 AWS 一般參考指南》中的 [Amazon EKS 端點和配額](https://docs.aws.amazon.com/general/latest/gr/eks.html)。您可以使用選擇的任何名稱取代 *my-eks-vpc-stack*。

   ```
   aws cloudformation create-stack \
     --region region-code \
     --stack-name my-eks-vpc-stack \
     --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
   ```
**提示**  
如需上一個命令建立的所有資源清單，請開啟位於 https：//https://console.aws.amazon.com/cloudformation/ 的 AWS CloudFormation 主控台。選擇 *my-eks-vpc-stack* 堆疊，然後選擇 **Resources** (資源) 索引標籤。

1. 建立叢集 IAM 角色，並將所需的 Amazon EKS IAM 受管政策連接到該角色。Amazon EKS 管理的 Kubernetes 叢集會代表您呼叫其他 AWS 服務，以管理您與服務搭配使用的資源。

   1. 將下列內容複製到名為 *eks-cluster-role-trust-policy.json* 的檔案。

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

   1. 建立角色。

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

   1. 將必要的 Amazon EKS 受管 IAM 政策連接到角色。

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

1. 在以下網址開啟 Amazon EKS 主控台：[https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)。

   請確定主控台右上角顯示的 AWS 區域是您要建立叢集 AWS 的區域。如果不是，請選擇 AWS 區域名稱旁的下拉式清單，然後選擇您要使用的 AWS 區域。

1. 選擇 **Create Cluster** (建立叢集)。如果沒有看到這個選項，請先在左側導覽窗格中選擇**叢集**。

1. 在 **Configure cluster** (設定叢集) 頁面上，執行下列操作：

   1. 選取**自訂組態**，並停用**使用 EKS 自動模式**。(如果您偏好 EKS 自動模式叢集，則請改為參閱 [使用 AWS 管理主控台 建立 EKS 自動模式叢集](automode-get-started-console.md)。)

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

   1. 對於 **Cluster Service Role** (叢集服務角色)，選擇 *myAmazonEKSClusterRole*。

   1. 將其餘設定維持在其預設值，然後選取 **Next** (下一步)。

1. 在 **Specify networking** (指定聯網) 頁面中，執行下列操作：

   1. 從 **VPC** 下拉式清單中選擇在先前步驟中建立的 VPC ID。其類似於 *\$1 \$1 my-eks-vpc-stack-VPC*。

   1. 從**子網路**下拉式清單中，選擇上一個步驟中建立的子網路。子網路將類似於 *\$1 \$1 my-eks-vpc-stack-\$1*。

   1. 從**額外的安全群組**下拉式清單中，選擇在上一個步驟中建立的安全群組。其類似於 *\$1 \$1 my-eks-vpc-stack-ControlPlaneSecurityGroup-\$1*。

   1. 將其餘設定維持在其預設值，然後選取 **Next** (下一步)。

1. 在**設定可觀測性**頁面上，選擇**下一步**。

1. 在**選取附加元件**頁面上，選擇**下一步**。

   如需附加元件的詳細資訊，請參閱 [Amazon EKS 附加元件](eks-add-ons.md)。

1. 在**設定選取的附加元件設定**頁面中，選取**下一步**：

1. 在 **Review and create** (檢閱和建立) 頁面上，選取 **Create** (建立)。

   叢集名稱右側的叢集狀態會顯示**建立中**幾分鐘，直到叢集佈建程序完成為止。在狀態為**作用中**之前不要進行下一個步驟。
**注意**  
您可能會收到錯誤，表示在請求中的其中一個可用區域沒有足夠的容量可建立 Amazon EKS 叢集。如果發生這種情況，錯誤輸出包含的可用區域可支援新的叢集。使用至少兩個位於帳戶的支援可用區域子網路來建立您的叢集。如需詳細資訊，請參閱[容量不足](troubleshooting.md#ice)。

## 步驟 2：將您的電腦設為與叢集進行通訊
<a name="eks-configure-kubectl"></a>

在此區段中，您會為叢集建立 `kubeconfig` 檔案。此檔案中的設定會啟用 `kubectl` CLI 與您的叢集進行通訊。

在繼續之前，請確保在步驟 1 中，您的叢集建立已成功完成。

1. 為您的叢集建立或更新 `kubeconfig` 檔案。將 *region-code* 取代 AWS 為您建立叢集的區域。使用您叢集的名稱取代 *my-cluster*。

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

   根據預設，已在 `~/.kube` 建立了 `config` 檔案，或者已將新叢集的組態新增至 `~/.kube` 中的現有 `config` 檔案。

1. 測試組態。

   ```
   kubectl get svc
   ```
**注意**  
如果您收到任何授權或資源類型錯誤，請參閱故障診斷主題中的[未經授權或存取遭拒 (`kubectl`)](troubleshooting.md#unauthorized)。

   範例輸出如下。

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

## 步驟 3：建立節點
<a name="eks-launch-workers"></a>

**重要**  
為了盡可能簡單快速地開始使用，本主題包含使用大多數預設設定建立節點的步驟。建立節點供生產使用之前，建議您先熟悉所有設定，再使用符合需求的設定來部署節點。如需詳細資訊，請參閱[使用節點管理運算資源](eks-compute.md)。只有在建立節點時，才能夠啟用某些設定。

此程序會將您的叢集設定為使用受管節點群組來建立節點，並指定您在先前步驟中建立的子網路和節點 IAM 角色。它可讓您在 Amazon EC2 執行個體上執行 Amazon Linux 應用程式。

若要進一步了解在 EKS 中設定節點的不同方式，請參閱 [使用節點管理運算資源](eks-compute.md)。叢集部署完成後，您可以新增其他節點類型。雖然未涵蓋在本指南中，但您也可以將 [Windows 自我管理](launch-windows-workers.md)和 [Bottlerocket](launch-node-bottlerocket.md) 節點新增至您的叢集。

 **若要建立 EC2 Linux 受管節點群組** 

1. 建立節點 IAM 角色，並將所需的 Amazon EKS IAM 受管政策連接到該角色。Amazon EKS `kubelet` 節點協助程式會代表您呼叫 AWS APIs。節點透過 IAM 執行個體描述檔和關聯的政策，取得這些 API 呼叫的許可。

   1. 將下列內容複製到名為 `node-role-trust-policy.json` 的檔案。

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

   1. 建立節點 IAM 角色。

      ```
      aws iam create-role \
        --role-name myAmazonEKSNodeRole \
        --assume-role-policy-document file://"node-role-trust-policy.json"
      ```

   1. 將所需的受管 IAM 政策連接到角色。

      ```
      aws iam attach-role-policy \
        --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \
        --role-name myAmazonEKSNodeRole
      aws iam attach-role-policy \
        --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \
        --role-name myAmazonEKSNodeRole
      aws iam attach-role-policy \
        --policy-arn arn:aws: iam::aws:policy/AmazonEKS_CNI_Policy \
        --role-name myAmazonEKSNodeRole
      ```

   1. 在以下網址開啟 Amazon EKS 主控台：[https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)。

   1. 選擇您在[步驟 1：建立 Amazon EKS 叢集](#eks-create-cluster)中建立的叢集的名稱，例如 *my-cluster*。

   1. 在 ** *my-cluster* ** 頁面上，執行下列操作：

   1. 選擇 **Compute** (運算) 索引標籤。

   1. 選擇 **Add Node Group** (新增節點群組)。

1. 在 **Configure Node Group** (設定節點群組) 頁面上，執行以下操作：

   1. 對於**名稱**，輸入受管節點群組的唯一名稱，例如 *my-nodegroup*。節點群組名稱不可超過 63 個字元。它必須以字母或數字開頭，但剩餘字元也可以包含連字符和底線。

   1. 對於 **Node IAM role name** (節點 IAM 角色名稱)，選擇您在前一個步驟建立的 *myAmazonEKSNodeRole* 角色。建議每個節點群組使用其唯一的 IAM 角色。

   1. 選擇**下一步**。

1. 在 **Set compute and scaling configuration** (設定運算和擴展組態) 頁面上，接受預設值，然後選取 **Next** (下一步)。

1. 在 **Specify networking** (指定聯網) 頁面上，接受預設值，然後選取 **Next** (下一步)。

1. 在 **Review and create (檢閱並建立)** 頁面上，檢閱您的受管節點群組組態，然後選擇 **Create (建立)**。

1. 數分鐘後，**Node Group configuration** (節點群組組態) 區段中的 **Status** (狀態) 將從 **Creating** (建立中) 變更為 **Active** (作用中)。在狀態為**作用中**之前不要進行下一個步驟。

## 步驟 4：檢視資源
<a name="gs-view-resources"></a>

您可以檢視節點和 Kubernetes 工作負載。

1. 在左側導覽窗格中選擇**叢集**。在 **Clusters** (叢集) 清單中，選擇您建立之叢集的名稱，例如 *my-cluster*。

1. 在 ** *my-cluster* ** 頁面上，選擇以下事項：

   1.  **Compute** (運算) 標籤 – 您可以看到為叢集部署的 **Nodes** (節點) 清單。您可以選取節點的名稱，以查看有關節點的詳細資訊。

   1.  **資源**標籤：您會看到預設部署到 Amazon EKS 叢集的所有 Kubernetes 資源。在主控台中選取任何資源類型，以進一步了解其詳細資訊。

## 步驟 5：刪除資源
<a name="gs-console-clean-up"></a>

在完成為本教學建立的叢集和節點後，您應該刪除所建立的資源。如果想在刪除資源前使用此叢集執行更多作業，請參閱 [後續步驟](#gs-console-next-steps)。

1. 刪除您建立的任何節點群組設定檔。

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

   1. 在左側導覽窗格中選擇**叢集**。在叢集清單中，選取 *my-cluster*。

   1. 選擇 **Compute** (運算) 索引標籤。

   1. 如果建立了節點群組，請選擇 *my-nodegroup* 節點群組，然後選擇 **Delete** (刪除)。輸入 *my-nodegroup*，然後選擇**刪除**。

   1. 請刪除節點群組設定檔後再繼續。

1. 刪除叢集。

   1. 在左側導覽窗格中選擇**叢集**。在叢集清單中，選取 *my-cluster*。

   1. 選擇 **Delete cluster (刪除叢集)**。

   1. 輸入 *my-cluster*，然後選擇**刪除**。刪除叢集後再繼續。

1. 刪除您建立的 VPC AWS CloudFormation 堆疊。

   1. 開啟位在 https://console.aws.amazon.com/cloudformation/ 的 CloudFormation​ 主控台。

   1. 選取 *my-eks-vpc-stack* 堆疊，然後選擇 **Delete** (刪除)。

   1. 在 **刪除 *my-eks-vpc-stack*** 確認對話方塊中，選擇**刪除堆疊**。

1. 刪除您建立的 IAM 角色。

   1. 前往 https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

   1. 在左側導覽窗格中，選擇 **Roles** (角色)。

   1. 從清單中選取您建立的每個角色 (** *myAmazonEKSClusterRole* **，以及 *myAmazonEKSNodeRole*)。選擇 **Delete** (刪除)，輸入請求的確認文字，然後選擇 **Delete** (刪除)。

## 後續步驟
<a name="gs-console-next-steps"></a>

以下文件主題可協助您擴展叢集的功能。
+ 建立叢集的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)是唯一可以使用 `kubectl` 或 AWS 管理主控台對 Kubernetes API 伺服器進行呼叫的主體。如果要其他 IAM 主體能夠存取叢集，則需新增這些主體。如需詳細資訊，請參閱[授予 IAM 使用者和角色對 Kubernetes APIs存取權](grant-k8s-access.md)及[所需的許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)。
+ 將[範例應用程式](sample-deployment.md)部署至叢集。
+ 部署叢集以供生產使用之前，建議您先熟悉[叢集](create-cluster.md)和[節點](eks-compute.md)的所有設定。建立叢集時，必須進行某些設定 (例如啟用對 Amazon EC2 節點的 SSH 存取)。
+ 若要提高叢集的安全性，可[將 Amazon VPC 容器聯網介面外掛程式設定為使用服務帳戶的 IAM 角色](cni-iam-role.md)。