

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

# Amazon EKS 運算環境
<a name="eks"></a>

[在 Amazon EKS AWS Batch 上開始使用](getting-started-eks.md) 提供建立 EKS 運算環境的簡短指南。本節提供 Amazon EKS 運算環境的詳細資訊。

![\[AWS Batch workflow diagram showing integration with Amazon EKS, ECS, Fargate, and EC2.\]](http://docs.aws.amazon.com/zh_tw/batch/latest/userguide/images/batch-on-eks.png)


AWS Batch 透過提供受管批次功能，簡化 Amazon EKS 叢集上的批次工作負載。這包括佇列、相依性追蹤、受管任務重試和優先順序、Pod 管理和節點擴展。 AWS Batch 可以處理多個可用區域和多個 Amazon EC2 執行個體類型和大小。 AWS Batch 整合數個 Amazon EC2 Spot 最佳實務，以容錯方式執行工作負載，減少中斷。您可以使用 AWS Batch 來執行少量的夜間任務或數百萬個任務關鍵任務。

![\[AWS Batch workflow on Amazon EKS, showing job queue, compute environment, and EC2 instances.\]](http://docs.aws.amazon.com/zh_tw/batch/latest/userguide/images/batch-on-eks-detail.png)


AWS Batch 是一種受管服務，可協調Kubernetes叢集中由 Amazon Elastic Kubernetes Service (Amazon EKS) 管理的批次工作負載。 會使用「浮水印」模型，在叢集外部 AWS Batch 執行此協同運作。由於 AWS Batch 是受管服務，因此沒有Kubernetes元件 （例如 Operators 或 Custom Resources) 可在您的叢集中安裝或管理。 AWS Batch 只需要使用角色型存取控制 (RBAC) 來設定您的叢集， AWS Batch 以允許 與 Kubernetes API 伺服器通訊。 AWS Batch 呼叫 Kubernetes APIs Kubernetes 來建立、監控和刪除 Pod 和節點。

AWS Batch 具有內建擴展邏輯，可根據任務佇列負載擴展Kubernetes節點，並在任務容量配置方面進行最佳化。當任務佇列為空時， 會將節點 AWS Batch 縮減到您設定的最小容量，預設為零。 會 AWS Batch 管理這些節點的完整生命週期，並使用標籤和污點裝飾節點。如此一來，其他Kubernetes工作負載就不會放置在 管理的節點上 AWS Batch。例外狀況是 `DaemonSets`，其可以鎖定 AWS Batch 節點，以提供正確執行任務所需的監控和其他功能。此外， AWS Batch 不會在叢集中未管理的節點上執行任務，特別是 Pod。如此一來，您就可以為叢集上的其他應用程式使用個別擴展邏輯和服務。

若要提交任務給 AWS Batch，您可以直接與 AWS Batch API 互動。 會將任務 AWS Batch 轉換為 ，`podspecs`然後建立請求，將 Pod 放置在 Amazon EKS 叢集 AWS Batch 中由 管理的節點上。您可以使用 等工具`kubectl`來檢視執行中的 Pod 和節點。當 Pod 完成其執行時， 會 AWS Batch 刪除其建立的 Pod，以維持Kubernetes系統較低的負載。

您可以透過連接有效的 Amazon EKS 叢集來開始使用 AWS Batch。然後將 AWS Batch 任務佇列連接到其中，並使用`podspec`同等屬性註冊 Amazon EKS 任務定義。最後，使用參考任務定義的 [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) API 操作提交任務。如需詳細資訊，請參閱[在 Amazon EKS AWS Batch 上開始使用](getting-started-eks.md)。

## Amazon EKS
<a name="compute-environments-eks"></a>

**Topics**
+ [Amazon EKS](#compute-environments-eks)
+ [Amazon EKS 預設 AMI](eks-ce-ami-selection.md)
+ [混合 AMI 環境](mixed-ami-environments.md)
+ [支援的 Kubernetes 版本](supported_kubernetes_version.md)
+ [更新運算環境的Kubernetes版本](updating-k8s-version-ce.md)
+ [Kubernetes 節點的共同責任](eks-ce-shared-responsibility.md)
+ [在 AWS Batch 受管節點DaemonSet上執行](daemonset-on-batch-eks-nodes.md)
+ [自訂 Amazon EKS 啟動範本](eks-launch-templates.md)
+ [如何從 EKS AL2 升級到 EKS AL2023](eks-migration-2023.md)

# Amazon EKS 預設 AMI
<a name="eks-ce-ami-selection"></a>

建立 Amazon EKS 運算環境時，您不需要指定 Amazon Machine Image (AMI)。 會根據 [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) 請求中指定的Kubernetes版本和執行個體類型 AWS Batch ，選取 Amazon EKS 最佳化 AMI。一般而言，我們建議您使用預設 AMI 選擇。如需 Amazon EKS 最佳化 AMIs 的詳細資訊，請參閱《[Amazon EKS 使用者指南》中的 Amazon EKS 最佳化 Amazon Linux AMIs](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html)。 **

**重要**  
Amazon Linux 2023 AMIs是 Amazon EKS AWS Batch 的預設值。  
AWS 將從 11/26/25 開始，結束對 Amazon EKS AL2-optimized和 AL2-accelerated AMIs支援。在 11/26/25end-of-support日期之後，您可以在 Amazon EKS 運算環境中繼續使用提供的 AWS Batch Amazon EKS 最佳化 Amazon Linux 2 AMIs，但這些運算環境將不再收到來自 的任何新軟體更新、安全修補程式或錯誤修正 AWS。如需從 AL2 升級到 AL2023 的詳細資訊，請參閱*AWS Batch 《 使用者指南*[如何從 EKS AL2 升級到 EKS AL2023](eks-migration-2023.md)》中的 。

執行下列命令，以查看為您的 Amazon EKS 運算環境 AWS Batch 選取的 AMI 類型。以下範例是非 GPU 執行個體類型。

```
# compute CE example: indicates Batch has chosen the AL2 x86 or ARM EKS 1.32 AMI, depending on instance types
    $ aws batch describe-compute-environments --compute-environments My-Eks-CE1 \
        | jq '.computeEnvironments[].computeResources.ec2Configuration'
    [
      {
        "imageType": "EKS_AL2",
        "imageKubernetesVersion": "1.32"
      }
    ]
```

下列範例為 GPU 執行個體類型。

```
# GPU CE example: indicates Batch has choosen the AL2 x86 EKS Accelerated 1.32 AMI
    $ aws batch describe-compute-environments --compute-environments My-Eks-GPU-CE \
        | jq '.computeEnvironments[].computeResources.ec2Configuration'
    [
      {
        "imageType": "EKS_AL2_NVIDIA",
        "imageKubernetesVersion": "1.32"
      }
    ]
```

# 混合 AMI 環境
<a name="mixed-ami-environments"></a>

您可以使用啟動範本覆寫來建立具有 Amazon Linux 2 (AL2) 和 Amazon Linux 2023 (AL2023) AMIs運算環境。這適用於在從 AL2 轉換到 AL2023 時，針對不同的架構或在遷移期間使用不同的 AMIs。

**注意**  
AWS 將從 11/26/25 開始，結束對 Amazon EKS AL2-optimized和 AL2-accelerated AMIs支援。雖然您可以在 11/26/25end-of-support日期之後，在 Amazon EKS 運算環境中繼續使用提供的 AWS Batch Amazon EKS 最佳化 Amazon Linux 2 AMIs，但這些運算環境將不再收到來自 的任何新軟體更新、安全修補程式或錯誤修正 AWS。混合 AMI 環境在轉換期間非常有用，可讓您逐步將工作負載遷移至 AL2023，同時保持與現有 AL2-based工作負載的相容性。

使用兩種 AMI 類型的範例組態：

```
{
  "computeResources": {
    "launchTemplate": {
      "launchTemplateId": "TemplateId",
      "version": "1",
      "userdataType": "EKS_BOOTSTRAP_SH",
      "overrides": [
        {
          "instanceType": "c5.large",
          "imageId": "ami-al2-custom",
          "userdataType": "EKS_BOOTSTRAP_SH"
        },
        {
          "instanceType": "c6a.large",
          "imageId": "ami-al2023-custom",
          "userdataType": "EKS_NODEADM"
        }
      ]
    },
    "instanceTypes": ["c5.large", "c6a.large"]
  }
}
```

# 支援的 Kubernetes 版本
<a name="supported_kubernetes_version"></a>

AWS Batch Amazon EKS 上的 目前支援下列Kubernetes版本：
+ `1.34`
+ `1.33`
+ `1.32`
+ `1.31`
+ `1.30`
+ `1.29`

當您使用 `CreateComputeEnvironment` API 操作或 `UpdateComputeEnvironment`API 操作來建立或更新運算環境時，您可能會看到類似以下內容的錯誤訊息。如果您在 中指定不支援的Kubernetes版本，就會發生此問題`EC2Configuration`。

```
At least one imageKubernetesVersion in EC2Configuration is not supported.
```

若要解決此問題，請刪除運算環境，然後使用支援的Kubernetes版本重新建立它。

您可以在 Amazon EKS 叢集上執行次要版本升級。例如，`1.yy`即使不支援次要版本，您也可以將叢集從 `1.xx` 升級至 。

不過，在主要版本更新`INVALID`之後，運算環境狀態可能會變更為 。例如，如果您執行從 `1.xx`升級至 的主要版本升級`2.yy`。如果 不支援主要版本 AWS Batch，您會看到類似以下的錯誤訊息。

```
reason=CLIENT_ERROR - ... EKS Cluster version [2.yy] is unsupported
```

# 更新運算環境的Kubernetes版本
<a name="updating-k8s-version-ce"></a>

您可以使用 AWS Batch更新運算環境的Kubernetes版本，以支援 Amazon EKS 叢集升級。運算環境的Kubernetes版本是 AWS Batch 啟動 以執行任務之Kubernetes節點的 Amazon EKS AMI 版本。您可以在更新 Amazon EKS 叢集控制平面Kubernetes版本之前或之後，在其 Amazon EKS 節點上執行版本升級。我們建議您在升級控制平面之後更新節點。如需詳細資訊，請參閱[《Amazon EKS 使用者指南》中的更新 Amazon EKS 叢集Kubernetes版本](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html)。 **

若要升級運算環境的Kubernetes版本，請使用 [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) API 操作。

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources \
      'ec2Configuration=[{imageType=EKS_AL2,imageKubernetesVersion=1.32}]'
```

# Kubernetes 節點的共同責任
<a name="eks-ce-shared-responsibility"></a>

維護運算環境是共同的責任。
+ 請勿變更或移除 AWS Batch 節點、標籤、污點、命名空間、啟動範本或自動擴展群組。請勿將污點新增至 AWS Batch 受管節點。如果您進行任何這些變更，則無法支援您的運算環境，並發生失敗，包括閒置執行個體。
+ 請勿將 Pod 設為 AWS Batch 受管節點的目標。如果您將 Pod 目標設為受管節點，則會發生擴展中斷和任務佇列卡住的情況。在自我管理節點或受管節點群組 AWS Batch 上執行不使用 的工作負載。如需詳細資訊，請參閱 *Amazon EKS 使用者指南*中的[受管節點群組](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html)。
+ 您可以DaemonSet鎖定要在 AWS Batch 受管節點上執行的 為目標。如需詳細資訊，請參閱[在 AWS Batch 受管節點DaemonSet上執行](daemonset-on-batch-eks-nodes.md)。

AWS Batch 不會自動更新運算環境 AMIs。更新它們是您的責任。執行下列命令，將您的 AMIs 更新為最新的 AMI 版本。

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources 'updateToLatestImageVersion=true'
```

AWS Batch 不會自動升級Kubernetes版本。執行下列命令，將電腦環境的Kubernetes版本更新為 *1.32*。

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources \
      'ec2Configuration=[{imageType=EKS_AL2,imageKubernetesVersion=1.32}]'
```

更新至較新的 AMI 或 Kubernetes版本時，您可以指定是否要在任務更新時終止任務 (`terminateJobsOnUpdate`)，以及如果執行中的任務未完成 (`jobExecutionTimeoutMinutes`.)，則在替換執行個體之前等待多久。如需詳細資訊，請參閱 [在 中更新運算環境 AWS Batch](updating-compute-environments.md)和 [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) API 操作中設定的基礎設施更新政策 ([https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdatePolicy.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdatePolicy.html))。

# 在 AWS Batch 受管節點DaemonSet上執行
<a name="daemonset-on-batch-eks-nodes"></a>

AWS Batch 會在 AWS Batch 受管Kubernetes節點上設定污點。您可以使用下列 DaemonSet，將要在 AWS Batch 受管節點上執行的 設為目標`tolerations`。

```
tolerations:
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
```

另一種做法是使用下列 `tolerations`。

```
tolerations:
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
    effect: "NoSchedule"
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
    effect: "NoExecute"
```

# 自訂 Amazon EKS 啟動範本
<a name="eks-launch-templates"></a>

AWS Batch Amazon EKS 上的 支援啟動範本。啟動範本可以執行的操作有其限制。

**重要**  
對於 EKS AL2 AMIs， AWS Batch 執行 `/etc/eks/bootstrap.sh`。請勿在啟動範本或cloud-inituser-data指令碼`/etc/eks/bootstrap.sh`中執行 。除了 參數之外，您還可以將其他`--kubelet-extra-args`參數新增至 https：//[bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh)。若要這樣做，請在 `/etc/aws-batch/batch.config` 檔案中設定 `AWS_BATCH_KUBELET_EXTRA_ARGS`變數。如需詳細資訊，請參閱下列範例。
對於 EKS AL2023， AWS Batch 利用來自 EKS 的 [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec) 讓執行個體加入 EKS 叢集。 AWS Batch 會在 [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec) 中為 EKS 叢集填入 [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails)，您不需要指定它們。

**注意**  
我們建議您不要在啟動範本中設定下列任何[https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)設定，因為 AWS Batch 會覆寫您的值。如需詳細資訊，請參閱[Kubernetes 節點的共同責任](eks-ce-shared-responsibility.md)。  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
請勿建立字首為 的標籤 `batch.amazonaws.com/`

**注意**  
如果在呼叫 [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) 之後變更啟動範本，[https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)則必須呼叫 來評估啟動範本的版本以進行取代。

**Topics**
+ [新增`kubelet`額外的引數](#kubelet-extra-args)
+ [設定容器執行時間](#change-container-runtime)
+ [掛載 Amazon EFS 磁碟區](#mounting-efs-volume)
+ [IPv6 支援](#eks-ipv6-support)

## 新增`kubelet`額外的引數
<a name="kubelet-extra-args"></a>

AWS Batch 支援將額外的引數新增至`kubelet`命令。如需支援的參數清單，請參閱 *Kubernetes 文件*[https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/)中的 。在下列 EKS AL2 AMIs範例中， `--node-labels mylabel=helloworld` 會新增至`kubelet`命令列。

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo AWS_BATCH_KUBELET_EXTRA_ARGS=\"--node-labels mylabel=helloworld\" >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

對於 EKS AL2023 AMIs檔案格式為 YAML。如需支援的參數清單，請參閱 *Kubernetes 文件*[https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)中的 。在下列 EKS AL2023 AMIs範例中， `--node-labels mylabel=helloworld` 會新增至`kubelet`命令列。

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
    - --node-labels=mylabel=helloworld

--==MYBOUNDARY==--
```

## 設定容器執行時間
<a name="change-container-runtime"></a>

您可以使用 AWS Batch `CONTAINER_RUNTIME`環境變數，在受管節點上設定容器執行時間。下列範例會在`bootstrap.sh`執行`containerd`時將容器執行時間設定為 。如需詳細資訊，請參閱 *Kubernetes 文件*[https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd)中的 。

如果您使用的是 最佳化`EKS_AL2023`或 `EKS_AL2023_NVIDIA` AMI，則不需要指定容器執行時間，因為僅支援**容器化**。

**注意**  
`CONTAINER_RUNTIME` 環境變數等同於 `--container-runtime`的選項`bootstrap.sh`。如需詳細資訊，請參閱 *Kubernetes 文件*[https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options)中的 。

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo CONTAINER_RUNTIME=containerd >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

## 掛載 Amazon EFS 磁碟區
<a name="mounting-efs-volume"></a>

您可以使用啟動範本將磁碟區掛載到節點。在下列範例中，會使用 `cloud-config``packages`和 `runcmd`設定。如需詳細資訊，請參閱 *cloud-init 文件*中的[雲端組態範例](https://cloudinit.readthedocs.io/en/latest/topics/examples.html)。

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
- mount -t efs -o tls ${file_system_id_01}:/ ${efs_directory}

--==MYBOUNDARY==--
```

若要在任務中使用此磁碟區，必須在 [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) 參數中新增至 [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html)。下列範例是任務定義的很大一部分。

```
{
    "jobDefinitionName": "MyJobOnEks_EFS",
    "type": "container",
    "eksProperties": {
        "podProperties": {
            "containers": [
                {
                    "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                    "command": ["ls", "-la", "/efs"],
                    "resources": {
                        "limits": {
                            "cpu": "1",
                            "memory": "1024Mi"
                        }
                    },
                    "volumeMounts": [
                        {
                            "name": "efs-volume",
                            "mountPath": "/efs"
                        }
                    ]
                }
            ],
            "volumes": [
                {
                    "name": "efs-volume",
                    "hostPath": {
                        "path": "/mnt/efs"
                    }
                }
            ]
        }
    }
}
```

在節點中，Amazon EFS 磁碟區會掛載在 `/mnt/efs`目錄中。在 Amazon EKS 任務的容器中，磁碟區會掛載在 `/efs`目錄中。

## IPv6 支援
<a name="eks-ipv6-support"></a>

AWS Batch 支援具有 IPv6 地址的 Amazon EKS 叢集。 AWS Batch 支援不需要自訂。不過，在開始之前，建議您檢閱《*Amazon EKS 使用者指南*》中[將 IPv6 地址指派給 Pod 和服務中概述的考量事項和](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html)條件。

# 如何從 EKS AL2 升級到 EKS AL2023
<a name="eks-migration-2023"></a>

Amazon EKS 最佳化 AMIs 提供兩個以 Amazon Linux 2 (AL2) 和 Amazon Linux 2023 (AL2023) 為基礎的系列。AL2023 是以 Linux 為基礎的作業系統，旨在為您的雲端應用程式提供安全、穩定且高效能的環境。如需 AL2 與 AL2023 之間差異的詳細資訊，請參閱《[Amazon EKS 使用者指南》中的從 Amazon Linux 2 升級到 Amazon Linux 2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html)。 **

**重要**  
AWS 將從 11/26/25 開始，結束對 Amazon EKS AL2-optimized和 AL2-accelerated AMIs支援。我們建議在 AWS Batch 11/26/25 之前將 Amazon EKS 運算環境遷移至 Amazon Linux 2023，以維持最佳效能和安全性。雖然您可以在 11/26/25end-of-support日期之後，在 Amazon EKS 運算環境中繼續使用 AWS Batch提供的 Amazon EKS 最佳化 Amazon Linux 2 AMIs，但這些運算環境將不再收到任何新的軟體更新、安全修補程式或錯誤修正 AWS。end-of-life[，您有責任在 Amazon EKS 最佳化 Amazon Linux 2 AMI 上維護](eks-ce-shared-responsibility.md#eks-ce-shared-responsibility.title)這些運算環境。

根據運算環境的設定方式，您可以使用下列其中一個從 AL2 到 AL2023 的升級路徑。

**使用 Ec2Configuration.ImageType 升級**
+ 如果您未使用啟動範本或啟動範本覆寫，請將 [Ec2Configuration.ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType) 變更為 `EKS_AL2023`或 ，`EKS_AL2023_NVIDIA`然後執行 [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)。
+ 如果您指定 [Ec2Configuration.ImageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride)，則 [Ec2Configuration.ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType) 必須符合 [Ec2Configuration.ImageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride) 中指定的 AMI 類型。

  如果您不相符`ImageIdOverride``ImageType`，則節點不會加入叢集。

**使用啟動範本進行升級**
+ 如果您在啟動範本或啟動範本覆寫中定義了任何`kubelet`額外的引數，則需要將其更新為新的[`kubelet`額外引數格式](eks-launch-templates.md#kubelet-extra-args.title)。

  如果您不符`kubelet`額外引數格式，則不會套用額外引數。
+ 對於 AL2023 AMIs，**容器化**是唯一支援的容器執行時間。您不需要在啟動範本`EKS_AL2023`中指定 的容器執行時間。

  您無法使用 指定自訂容器執行時間`EKS_AL2023`。
+ 如果您使用根據 指定 AMI 的啟動範本或啟動範本覆寫`EKS_AL2023`，則需要將 [userdataType](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html) 設定為 `EKS_NODEADM`。

  如果您不相符 `userdataType`和 AMI，則節點不會加入 EKS 叢集。