

 **協助改進此頁面** 

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

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

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

# 在 Amazon EKS 自動模式叢集中部署範例 inflate 工作負載
<a name="automode-workload"></a>

在本教學中，您將學習如何將範例工作負載部署至 EKS 自動模式叢集，並觀察其如何自動佈建所需的運算資源。您將使用 `kubectl` 命令來監看叢集的行為，並親自了解自動模式如何簡化 Kubernetes 操作 AWS。完成本教學後，您將了解 EKS 自動模式如何透過自動管理底層運算資源來回應工作負載部署，無需手動設定節點群組。

## 先決條件
<a name="_prerequisites"></a>
+ 一個 Amazon EKS 自動模式叢集。請記下叢集的名稱和 AWS 區域。
+ 具備足夠許可的 IAM 主體，如使用者或角色，需能管理聯網、運算與 EKS 資源。
  + 若需詳細資訊，請參閱《IAM 使用者指南》中的[建立角色和附加政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html)。
+  已安裝 `aws` CLI 並以 IAM 身分進行設定。
+  已安裝 `kubectl` CLI 並連接至叢集。
  + 如需詳細資訊，請參閱[設定以使用 Amazon EKS](setting-up.md)。

## 步驟 1：檢閱現有運算資源 (選用)
<a name="_step_1_review_existing_compute_resources_optional"></a>

第一，使用 `kubectl` 列出叢集上的節點集區。

```
kubectl get nodepools
```

輸出範例：

```
general-purpose
```

在本教學中，我們將部署設定為使用 `general-purpose` 節點集區的工作負載。此節點集區內建於 EKS Auto Mode，包含適用於一般工作負載，如微服務和 Web 應用程式的合理預設值。您也可建立自己的節點集區。如需詳細資訊，請參閱[為 EKS 自動模式建立節點集區](create-node-pool.md)。

第二，使用 `kubectl` 列出連接到叢集的節點。

```
kubectl get nodes
```

若您剛建立 EKS 自動模式叢集，一開始不會有任何節點。

在本教學中，您將部署一個範例工作負載。若沒有節點，或現有節點無法容納工作負載，EKS 自動模式將會佈建新節點。

## 步驟 2：將範例應用程式部署至叢集
<a name="_step_2_deploy_a_sample_application_to_the_cluster"></a>

請檢閱下列 Kubernetes 部署，將其儲存為 `inflate.yaml` 

```
apiVersion: apps/v1
kind: Deployment
metadata:
  name: inflate
spec:
  replicas: 1
  selector:
    matchLabels:
      app: inflate
  template:
    metadata:
      labels:
        app: inflate
    spec:
      terminationGracePeriodSeconds: 0
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
        fsGroup: 2000
      containers:
        - name: inflate
          image: public.ecr.aws/eks-distro/kubernetes/pause:3.7
          resources:
            requests:
              cpu: 1
          securityContext:
            allowPrivilegeEscalation: false
```

請注意，`eks.amazonaws.com/compute-type: auto` 選擇器要求工作負載必須部署在 Amazon EKS 自動模式節點上。

將部署套用至叢集。

```
kubectl apply -f inflate.yaml
```

## 步驟 3：監看 Kubernetes 事件
<a name="_step_3_watch_kubernetes_events"></a>

使用下列命令以監看 Kubernetes 事件，包括建立新節點。使用 `ctrl+c` 以停止監看事件。

```
kubectl get events -w --sort-by '.lastTimestamp'
```

再次使用 `kubectl` 以列出連接到叢集的節點。請記下新建立的節點。

```
kubectl get nodes
```

## 步驟 4：在 AWS 主控台中檢視節點和執行個體
<a name="step_4_view_nodes_and_instances_in_the_shared_aws_console"></a>

您可在 EKS 主控台中檢視 EKS 自動模式節點，並且在 EC2 主控台中檢視相關聯的 EC2 執行個體。

由 EKS 自動模式部署的 EC2 執行個體有存取限制。您將無法在 EKS 自動模式節點上執行任意命令。

## 步驟 5：刪除部署
<a name="_step_5_delete_the_deployment"></a>

使用 `kubectl` 刪除範例部署

```
kubectl delete -f inflate.yaml
```

若您沒有部署至叢集的其他工作負載，由 EKS 自動模式建立的節點將處於空閒狀態。

在預設組態中，EKS 自動模式會偵測到已空閒達 30 秒的節點，並終止這些節點。

使用 `kubectl` 或 EC2 主控台確認相關聯的執行個體已被刪除。