

 **協助改進此頁面** 

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

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

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

# 建置自訂 EKS 最佳化的 Amazon Linux AMI
<a name="eks-ami-build-scripts"></a>

**警告**  
Amazon EKS 已於 2025 年 11 月 26 日停止發佈 EKS 最佳化的 Amazon Linux 2 (AL2) AMIs。適用於 Amazon EKS 的 AL2023 和 Bottlerocket 型 AMIs 適用於所有支援的 Kubernetes 版本，包括 1.33 和更新版本。

Amazon EKS 在 [Amazon EKS AMI Build Specification](https://github.com/awslabs/amazon-eks-ami) 儲存庫中提供開放原始碼建置指令碼，可用來檢視 的組態`kubelet`、執行時間、適用於 Kubernetes 的 AWS IAM Authenticator，以及從頭開始建置您自己的 AL 型 AMI。

此儲存庫包含[適用於 AL2 的專用引導指令碼](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh)，以及[適用於 AL2023 的 nodeadm 工具](https://awslabs.github.io/amazon-eks-ami/nodeadm/)，其會在開機時間執行。這些指令碼會設定您的執行個體的憑證資料、控制平面端點、叢集名稱等。指令碼被視為 Amazon EKS 最佳化 AMI 建置的事實來源，因此您可以遵循 GitHub 儲存庫來監控 AMIs的變更。

使用 EKS 最佳化 AMIs 作為基礎建置自訂 AMIs 時，不建議或支援執行作業系統升級 （即 `dnf upgrade`) 或升級 EKS 最佳化 AMIs 中包含的任何 Kubernetes 或 GPU 套件，因為這會破壞元件相容性。如果您確實升級 EKS 最佳化 AMIs 中包含的作業系統或套件，建議您在部署到生產環境之前，先在開發或預備環境中徹底測試。

為 GPU 執行個體建置自訂 AMIs 時，建議您為要執行的每個執行個體類型產生和系列分別建置自訂 AMIs。EKS 最佳化加速 AMIs 會根據基礎執行個體類型產生和系列，在執行時間選擇性地安裝驅動程式和套件。如需詳細資訊，請參閱[安裝](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/provisioners/install-nvidia-driver.sh)和[執行時間](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2023/runtime/gpu/nvidia-kmod-load.sh)的 EKS AMI 指令碼。

## 先決條件
<a name="_prerequisites"></a>
+  [安裝 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) 
+  [安裝 HashiCorp Packer 1.9.4 版及以上](https://developer.hashicorp.com/packer/downloads) 
+  [安裝 GNU Make](https://www.gnu.org/software/make/) 

## 快速指南
<a name="_quickstart"></a>

此快速入門會向您顯示在您的 AWS 帳戶中建立自訂 AMI 的命令。要進一步了解可用於自訂 AMI 的組態，請參閱 [Amazon Linux 2023 ](https://awslabs.github.io/amazon-eks-ami/usage/al2023/)頁面上的範本變數。

### 先決條件
<a name="_prerequisites_2"></a>

安裝所需 [Amazon 外掛程式](https://developer.hashicorp.com/packer/integrations/hashicorp/amazon)。例如：

```
packer plugins install github.com/hashicorp/amazon
```

### 步驟 1. 設定您的環境
<a name="_step_1_setup_your_environment"></a>

複製或分支官方 Amazon EKS AMI 儲存庫。例如：

```
git clone https://github.com/awslabs/amazon-eks-ami.git
cd amazon-eks-ami
```

確認 Packer 已安裝：

```
packer --version
```

### 步驟 2. 建立自訂 AMI
<a name="_step_2_create_a_custom_ami"></a>

以下是各種自訂 AMI 的範例命令。

 **基本 NVIDIA AL2 AMI：**

```
make k8s=1.31 os_distro=al2 \
  enable_accelerator=nvidia \
  nvidia_driver_major_version=560 \
  enable_efa=true
```

 **基本 NVIDIA AL2023 AMI：**

```
make k8s=1.31 os_distro=al2023 \
  enable_accelerator=nvidia \
  nvidia_driver_major_version=560 \
  enable_efa=true
```

 **STIG 合規 Neuron AL2023 AMI：**

```
make k8s=1.31 os_distro=al2023 \
  enable_accelerator=neuron \
  enable_fips=true \
  source_ami_id=ami-0abcd1234efgh5678 \
  kms_key_id=alias/aws-stig
```

執行這些命令後，Packer 將執行以下操作：\$1 啟動一個臨時 Amazon EC2 執行個體。\$1 安裝 Kubernetes 元件、驅動程式和組態。\$1 在 AWS 帳戶中建立 AMI。

預期的輸出應類似以下：

```
==> Wait completed after 8 minutes 42 seconds

==> Builds finished. The artifacts of successful builds are:
--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9

--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9

--> amazon-ebs: AMIs were created:
us-west-2: ami-0e139a4b1a7a9a3e9
```

### 步驟 3。檢視預設值
<a name="_step_3_view_default_values"></a>

要檢視預設值和其他選項，請執行以下命令：

```
make help
```