

 **協助改進此頁面** 

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

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

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

# Amazon EKS 入門 – `eksctl`
<a name="getting-started-eksctl"></a>

**注意**  
本主題涵蓋**不使用** EKS 自動模式時的入門。  
EKS 自動模式會自動執行用於叢集運算、儲存和聯網的例行任務。[了解如何開始使用 Amazon EKS 自動模式。](getting-started-automode.md)

本指南可協助您安裝在將 Amazon Elastic Kubernetes Service (Amazon EKS) 和 `eksctl` 搭配使用所需的所有資源，後者是簡單的命令列公用程式，可用於在 Amazon EKS 上建立和管理 Kubernetes 叢集。此教學結束時，您將擁有一個執行中的 Amazon EKS 叢集，而您可以在其中部署應用程式。

本指南中的程序會為您自動建立數個資源，而您必須在使用 AWS 管理主控台 建立叢集時手動建立這些資源。如果您想要手動建立大部分的資源，並進一步了解它們彼此互動的方式，請使用 AWS 管理主控台 來建立叢集和運算。如需詳細資訊，請參閱 [開始使用 Amazon EKS – AWS 管理主控台 和 AWS CLI](getting-started-console.md)。

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

開始本教學之前，您必須按照[設定以使用 Amazon EKS](setting-up.md) 中所述，安裝和設定 AWS CLI、kubectl 和 eksctl 工具。

## 步驟 1：建立 Amazon EKS 叢集和節點
<a name="create-cluster-gs-eksctl"></a>

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

您可以使用下列其中一種節點類型來建立叢集。若要進一步了解每種類型，請參閱 [使用節點管理運算資源](eks-compute.md)。叢集部署完成後，您可以新增其他節點類型。
+  **Fargate – Linux**：如果您想要在 [使用 AWS Fargate 簡化運算管理](fargate.md) 上執行 Linux 應用程式，請選取此節點類型。Fargate 是無伺服器運算引擎，可讓您部署 Kubernetes Pod，而無需管理 Amazon EC2 執行個體。
+  **受管節點 – Linux**：如果您想要在 Amazon EC2 執行個體上執行 Amazon Linux 應用程式，請選取此節點類型。雖然未涵蓋在本指南中，但您也可以將 [Windows 自我管理](launch-windows-workers.md)和 [Bottlerocket](launch-node-bottlerocket.md) 節點新增至您的叢集。

透過以下命令建立 Amazon EKS 叢集。您可以用您自己的值取代 *my-cluster*。此名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以英數字元開頭，且長度不可超過 100 個字元。在您要建立叢集的 AWS 區域和 AWS 帳戶中，該名稱必須是唯一的。使用 Amazon EKS 支援的任何 AWS 區域取代 *region-code*。如需 AWS 區域的清單，請參閱《AWS 一般參考》指南中的 [Amazon EKS 端點和配額](https://docs.aws.amazon.com/general/latest/gr/eks.html)。

**Example**  

```
eksctl create cluster --name my-cluster --region region-code --fargate
```

```
eksctl create cluster --name my-cluster --region region-code
```

叢集建立需要幾分鐘的時間。在建立期間，您會看到數行輸出。輸出的最後一行類似於下面的範例行。

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

 `eksctl` 已在 `~/.kube/config` 中建立了 `kubectl` 組態檔案，或將新叢集的組態新增至您電腦上 `~/.kube/config` 中的現有組態檔案。

在叢集建立完成後，若要查看建立的所有資源，請檢視 AWS CloudFormation [主控台](https://console.aws.amazon.com/cloudformation/)中名為 `eksctl-my-cluster-cluster` 的 AWS CloudFormation 堆疊。

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

1. 檢視叢集節點。

   ```
   kubectl get nodes -o wide
   ```

   範例輸出如下。  
**Example**  

------
#### [ Fargate - Linux ]

   ```
   NAME                                                STATUS   ROLES    AGE     VERSION              INTERNAL-IP   EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME
   fargate-ip-192-0-2-0.region-code.compute.internal   Ready    <none>   8m3s    v1.2.3-eks-1234567   192.0.2.0     <none>        Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   fargate-ip-192-0-2-1.region-code.compute.internal   Ready    <none>   7m30s   v1.2.3-eks-1234567   192-0-2-1     <none>        Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ```

------
#### [ Managed nodes - Linux ]

   ```
   NAME                                        STATUS   ROLES    AGE    VERSION              INTERNAL-IP   EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME
   ip-192-0-2-0.region-code.compute.internal   Ready    <none>   6m7s   v1.2.3-eks-1234567   192.0.2.0     192.0.2.2     Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ip-192-0-2-1.region-code.compute.internal   Ready    <none>   6m4s   v1.2.3-eks-1234567   192.0.2.1     192.0.2.3     Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ```

------

   如需您在輸出中看到之內容的詳細資訊，請參閱 [在 中檢視 Kubernetes 資源 AWS 管理主控台](view-kubernetes-resources.md)。

1. 檢視叢集上執行的工作負載。

   ```
   kubectl get pods -A -o wide
   ```

   範例輸出如下。  
**Example**  

------
#### [ Fargate - Linux ]

   ```
   NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE   IP          NODE                                                NOMINATED NODE   READINESS GATES
   kube-system   coredns-1234567890-abcde   1/1     Running   0          18m   192.0.2.0   fargate-ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-12345   1/1     Running   0          18m   192.0.2.1   fargate-ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   ```

------
#### [ Managed nodes - Linux ]

   ```
   NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE     IP          NODE                                        NOMINATED NODE   READINESS GATES
   kube-system   aws-node-12345             1/1     Running   0          7m43s   192.0.2.1   ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   kube-system   aws-node-67890             1/1     Running   0          7m46s   192.0.2.0   ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-abcde   1/1     Running   0          14m     192.0.2.3   ip-192-0-2-3.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-12345   1/1     Running   0          14m     192.0.2.4   ip-192-0-2-4.region-code.compute.internal   <none>           <none>
   kube-system   kube-proxy-12345           1/1     Running   0          7m46s   192.0.2.0   ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   kube-proxy-67890           1/1     Running   0          7m43s   192.0.2.1   ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   ```

------

   如需您在輸出中看到之內容的詳細資訊，請參閱 [在 中檢視 Kubernetes 資源 AWS 管理主控台](view-kubernetes-resources.md)。

## 步驟 3：刪除您的叢集和節點
<a name="gs-eksctl-clean-up"></a>

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

```
eksctl delete cluster --name my-cluster --region region-code
```

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

以下文件主題可協助您擴展叢集的功能。
+ 將[範例應用程式](sample-deployment.md)部署至叢集。
+ 建立叢集的 [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)。
+ 部署叢集以供生產使用之前，建議您先熟悉[叢集](create-cluster.md)和[節點](eks-compute.md)的所有設定。建立叢集時，必須進行某些設定 (例如啟用對 Amazon EC2 節點的 SSH 存取)。
+ 若要提高叢集的安全性，可[將 Amazon VPC 容器聯網介面外掛程式設定為使用服務帳戶的 IAM 角色](cni-iam-role.md)。