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 AL2023 de NVIDIA de EKS con la versión 595 del controlador de NVIDIA

importante

El tipo de instancia de EC2 G7 requiere la versión 595 o posterior del controlador de NVIDIA. Las AMI aceleradas optimizadas para EKS incluyen actualmente la versión 580 del controlador de NVIDIA, que no es compatible con las instancias G7. Debe crear una AMI personalizada con la versión 595 del controlador de NVIDIA para usar las instancias G7 con Amazon EKS.

Si utiliza Karpenter para el aprovisionamiento de nodos y el escalado automático, se recomienda excluir la familia de instancias g7 de los NodePools que utilizan la selección automática de AMI. Consulte amiSelectorTerms en la documentación de Karpenter para obtener información sobre cómo configurar su NodeClass de Karpenter para usar su AMI personalizada en las instancias g7.

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

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