构建自定义 EKS 优化版 Linux AMI - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

构建自定义 EKS 优化版 Linux AMI

警告

Amazon EKS 已于 2025 年 11 月 26 日停止发布 EKS 优化型 Amazon Linux 2(AL2)AMI。基于 AL2023 和 Bottlerocket 的 Amazon EKS AMI 适用于所有支持的 Kubernetes 版本(包括 1.33 和更高版本)。

Amazon EKS 在 Amazon EKS AMI Build Specification 存储库中提供开源构建脚本,您可通过这些脚本查看 kubelet、运行时环境及适用于 Kubernetes 的 Amazon IAM 身份验证器的相关配置,同时也能从头构建基于 AL 的自有 AMI。

此存储库包含适用于 AL2 的专用引导脚本,以及在开机阶段运行的适用于 AL2023 的 nodeadm 工具。这些脚本可配置实例的证书数据、控制面板端点、集群名称等内容。这些脚本是 Amazon EKS 优化版 AMI 生成的可信来源,因此您可关注 GitHub 存储库以监控对 AMI 所做的更改。

以 EKS 优化版 AMI 为基础构建自定义 AMI 时,不建议且不提供技术支持运行操作系统升级(即 dnf upgrade),亦不建议升级 EKS 优化版 AMI 中预装的任何 Kubernetes 或 GPU 相关软件包,因为此类操作可能破坏组件间的兼容性。若仍选择对 EKS 优化版 AMI 中的操作系统或软件包执行升级操作,建议先在开发或预发布环境中开展全面测试,再部署至生产环境。

针对 GPU 实例构建自定义 AMI 时,建议为计划运行的各代实例类型及实例系列分别构建独立的自定义 AMI。EKS 优化版加速型 AMI 会在运行时阶段,根据底层实例的代次与系列选择性安装驱动程序及软件包。有关安装运行时的详细信息,请参阅 EKS AMI 脚本。

先决条件

快速入门

本快速入门指南将演示在 Amazon 账户中创建自定义 AMI 所需执行的命令。要了解有关可用于自定义 AMI 的配置的更多信息,请参阅 Amazon Linux 2023 页面上的模板变量。

先决条件

安装所需的 Amazon Q 插件。例如:

packer plugins install github.com/hashicorp/amazon

步骤 1:设置您的环境

克隆或复刻 Amazon EKS AMI 官方存储库。例如:

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

确认已安装 Packer:

packer --version

步骤 2:创建自定义 AMI

以下是用于各种自定义 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 将执行以下操作:* 启动临时 Amazon EC2 实例。* 安装 Kubernetes 组件、驱动程序和配置。在 Amazon 账户中创建 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:查看默认值

要查看默认值和其他选项,请运行以下命令:

make help