View a markdown version of this page

Creación de una AMI de Amazon Linux optimizada para EKS personalizada - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Creación de una AMI de Amazon Linux optimizada para EKS personalizada

aviso

Amazon EKS dejó de publicar las AMI optimizadas para EKS de Amazon Linux 2 (AL2) el 26 de noviembre de 2025. Las AMI basadas en AL2023 y Bottlerocket para Amazon EKS están disponibles para todas las versiones de Kubernetes compatibles, lo que incluye la versión 1.33 y posteriores.

Amazon EKS proporciona scripts de creación de código abierto en el repositorio de especificaciones de creación de la AMI de Amazon EKS que podrá utilizar para ver las configuraciones de kubelet, el tiempo de ejecución y el autenticador de AWS IAM para Kubernetes, así como crear su propia AMI basada en AL desde cero.

Este repositorio contiene el script de arranque para AL2 especializado y la herramienta nodeadm para AL2023 que se ejecuta en el momento del arranque. Estos scripts configuran los datos de certificado de la instancia, el punto de conexión del plano de control, el nombre del clúster, etcétera. Estos scripts se consideran el origen de información verdadera para las creaciones de la AMI optimizada para Amazon EKS, de modo que puede seguir el repositorio de GitHub para supervisar los cambios en nuestras AMI.

Al crear AMI personalizadas con las AMI optimizadas para EKS como base, no se recomienda ni se admite ejecutar una actualización del sistema operativo (por ejemplo, dnf upgrade) ni actualizar cualquiera de los paquetes de Kubernetes o GPU que se incluyen en las AMI optimizadas para EKS, ya que se corre el riesgo de interrumpir la compatibilidad de los componentes. Si actualiza el sistema operativo o los paquetes que se incluyen en las AMI optimizadas para EKS, se recomienda llevar a cabo pruebas exhaustivas en un entorno de desarrollo o ensayo antes de implementarlas en producción.

Al crear AMI personalizadas para instancias de GPU, se recomienda crear AMI personalizadas independientes para cada familia y generación del tipo de instancia que vaya a ejecutar. Las AMI aceleradas optimizadas para EKS instalan de forma selectiva los controladores y paquetes en tiempo de ejecución en función de la familia y generación del tipo de instancia subyacentes. Para obtener más información, consulte los scripts de AMI de EKS para la instalación y el tiempo de ejecución.

Requisitos previos

Instale el complemento de Amazon necesario.

packer plugins install github.com/hashicorp/amazon

Verifique que Packer esté instalado.

packer --version

Clone o bifurque el repositorio de AMI oficial de Amazon EKS.

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

Para ver los valores predeterminados y las opciones adicionales, ejecute el siguiente comando. Para obtener más información sobre las configuraciones disponibles para personalizar la AMI, consulte las variables de plantilla en la página Amazon Linux 2023.

make help

Para crear una AMI de personalizada

A continuación, se muestran ejemplos de comandos para varias AMI personalizadas.

AMI de AL2 de NVIDIA de EKS

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

AMI de AL2023 de NVIDIA de EKS

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

AMI de NVIDIA AL2023 para EKS con versiones personalizadas del controlador

La AMI de NVIDIA AL2023 optimizada para EKS incluye dos versiones de controladores de NVIDIA en una sola imagen. Cada nodo selecciona de forma automática el controlador adecuado para su GPU al arrancar. A partir de la versión v20260917 de la AMI de EKS AL2023, la versión LTS (soporte a largo plazo) es la 580 y la versión de la rama de producción es la 595. En conjunto, ambas son compatibles con todos los tipos de instancias de GPU de EC2. Para anular las versiones predeterminadas, configure nvidia_driver_lts_version y nvidia_driver_pb_version de forma conjunta.

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_lts_version=580 \ nvidia_driver_pb_version=610 \ enable_efa=true
nota

La lógica de selección del controlador NVIDIA de la AMI de EKS AL2023 se ejecuta en tiempo de ejecución, pero se activa de forma anticipada si la AMI se crea en una instancia acelerada de EC2. Como resultado, si crea una AMI personalizada en una instancia EC2 acelerada que, de forma predeterminada, usa el controlador 580 de NVIDIA (como g6 o g7e), no podrá implementar esa AMI personalizada en una instancia EC2 acelerada que requiera una versión posterior del controlador NVIDIA (por ejemplo, g7, que requiere el controlador 595). Para evitar este problema, cree las AMI personalizadas en instancias de EC2 sin aceleración (como m6) y, a continuación, úselas en cualquier instancia de EC2 acelerada. Este enfoque conserva la lógica de selección de controladores NVIDIA de la AMI EKS AL2023.

AMI de Neuron AL2023 compatible con STIG:

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

Después de ejecutar estos comandos, Packer hará lo siguiente:

  • Lanzará una instancia de Amazon EC2 temporal.

  • Instalará los componentes, los controladores y las configuraciones de Kubernetes.

  • Creará la AMI en su cuenta de AWS.

El resultado esperado debe tener el siguiente aspecto:

==> 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