View a markdown version of this page

建置自訂 EKS 最佳化 Amazon Linux AMI - Amazon EKS

協助改進此頁面

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

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

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

建置自訂 EKS 最佳化 Amazon Linux AMI

警告

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 儲存庫中提供開放原始碼建置指令碼,可用來檢視 的組態kubelet、執行時間、適用於 Kubernetes 的 AWS IAM Authenticator,以及從頭開始建置您自己的 AL 型 AMI。

此儲存庫包含適用於 AL2 的專用引導指令碼,以及適用於 AL2023 的 nodeadm 工具,其會在開機時間執行。這些指令碼會設定您的執行個體的憑證資料、控制平面端點、叢集名稱等。指令碼被視為 Amazon EKS 最佳化 AMI 建置的事實來源,因此您可以遵循 GitHub 儲存庫來監控 AMIs的變更。

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

為 GPU 執行個體建置自訂 AMIs 時,建議您為要執行的每個執行個體類型產生和系列分別建置自訂 AMIs。EKS 最佳化加速 AMIs 會根據基礎執行個體類型產生和系列,在執行時間選擇性地安裝驅動程式和套件。如需詳細資訊,請參閱安裝執行時間的 EKS AMI 指令碼。

先決條件

安裝所需 Amazon 外掛程式

packer plugins install github.com/hashicorp/amazon

確認 Packer 已安裝。

packer --version

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

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

若要檢視預設值和其他選項,請執行下列命令。要進一步了解可用於自訂 AMI 的組態,請參閱 Amazon Linux 2023 頁面上的範本變數。

make help

建立自訂 AMI

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

EKS NVIDIA AL2 AMI

make k8s=1.32 os_distro=al2 \ enable_accelerator=nvidia \ nvidia_driver_major_version=580 \ enable_efa=true

EKS NVIDIA AL2023 AMI

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_major_version=580 \ enable_efa=true

EKS NVIDIA AL2023 AMI 搭配 NVIDIA 驅動程式 595 版

重要

G7 EC2 執行個體類型需要 NVIDIA 驅動程式 595 版或更新版本。EKS 最佳化加速 AMIs 目前包含不支援 G7 執行個體的 NVIDIA 驅動程式 580 版。您必須使用 NVIDIA 驅動程式 595 版建置自訂 AMI,才能將 G7 執行個體與 Amazon EKS 搭配使用。

如果您使用 Karpenter 進行節點佈建和自動擴展,建議您從使用自動 AMI 選擇的 NodePools 中排除g7執行個體系列。如需如何設定 Karpenter NodeClass 以使用g7執行個體的自訂 AMI,請參閱 Karpenter 文件amiSelectorTerms中的 。

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_major_version=595 \ 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 會執行下列動作:

  • 啟動暫時 Amazon EC2 執行個體。

  • 安裝 Kubernetes 元件、驅動程式和組態。

  • 在 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