Soporte de AMI personalizado - Guía del usuario de Eksctl

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Soporte de AMI personalizado

Configuración del ID de AMI del nodo

El --node-ami indicador permite varios casos de uso avanzados, como usar una AMI personalizada o consultar a AWS en tiempo real para determinar qué AMI usar. El indicador se puede usar tanto para imágenes que no son de GPU como para imágenes de GPU.

El indicador puede tomar el identificador de imagen de la AMI de una imagen para su uso explícito. También puede incluir las siguientes palabras clave «especiales»:

Palabra clave Descripción

auto

Indica que la AMI que se va a utilizar para los nodos se debe encontrar consultando a AWS EC2. Esto se relaciona con la resolución automática.

SSM automático

Indica que la AMI que se va a utilizar para los nodos debe encontrarse consultando el almacén de parámetros SSM de AWS.

nota

Al --node-ami configurar una cadena de ID, eksctl asumirá que se ha solicitado una AMI personalizada. En el AmazonLinux caso de los nodos 2 y Ubuntu, tanto gestionados por EKS como autogestionados, esto significa que overrideBootstrapCommand es obligatorio. En AmazonLinux 2023, dado que deja de utilizar el /etc/eks/bootstrap.sh script para el arranque de nodos, se pasa a un proceso de inicialización de nodeadm (para obtener más información, consulta la documentación de arranque de nodos), no será compatible. overrideBootstrapCommand

Ejemplos de banderas CLI:

eksctl create cluster --node-ami=auto # with a custom ami id eksctl create cluster --node-ami=ami-custom1234

Ejemplo de archivo de configuración:

nodeGroups: - name: ng1 instanceType: p2.xlarge amiFamily: AmazonLinux2 ami: auto - name: ng2 instanceType: m5.large amiFamily: AmazonLinux2 ami: ami-custom1234 managedNodeGroups: - name: m-ng-2 amiFamily: AmazonLinux2 ami: ami-custom1234 instanceType: m5.large overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.sh <cluster-name>

La --node-ami bandera también se puede usar coneksctl create nodegroup.

Configuración de la familia AMI del nodo

--node-ami-familyPuede incluir las siguientes palabras clave:

Palabra clave Descripción

AmazonLinux2.

Indica que se debe utilizar la imagen AMI de EKS basada en Amazon Linux 2 (predeterminada).

AmazonLinux2023

Indica que se debe utilizar la imagen AMI de EKS basada en Amazon Linux 2023.

Ubuntu 2004

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu 20.04 LTS (Focal) (compatible con EKS 1.29).

UbuntuPro2004

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu Pro 20.04 LTS (Focal) (disponible para EKS >= 1,27 y 1,29).

Ubuntu 2204

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu 22.04 LTS (Jammy) (disponible para EKS >= 1.29).

UbuntuPro2204

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu Pro 22.04 LTS (Jammy) (disponible para EKS >= 1.29).

Ubuntu 2404

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu 24.04 LTS (Noble) (disponible para EKS >= 1.31).

UbuntuPro2404

Indica que se debe utilizar la imagen AMI de EKS basada en Ubuntu Pro 24.04 LTS (Noble) (disponible para EKS >= 1.31).

Bottlerocket

Indica que se debe utilizar la imagen AMI de EKS basada en Bottlerocket.

WindowsServer2019 FullContainer

Indica que se debe utilizar la imagen AMI de EKS basada en el contenedor completo de Windows Server 2019.

WindowsServer2019 CoreContainer

Indica que se debe utilizar la imagen AMI de EKS basada en Windows Server 2019 Core Container.

WindowsServer2022 FullContainer

Indica que se debe utilizar la imagen AMI de EKS basada en el contenedor completo de Windows Server 2022.

WindowsServer2022 CoreContainer

Indica que se debe utilizar la imagen AMI de EKS basada en Windows Server 2022 Core Container.

Ejemplo de indicador CLI:

eksctl create cluster --node-ami-family=AmazonLinux2

Ejemplo de archivo de configuración:

nodeGroups: - name: ng1 instanceType: m5.large amiFamily: AmazonLinux2 managedNodeGroups: - name: m-ng-2 instanceType: m5.large amiFamily: Ubuntu2204

La --node-ami-family bandera también se puede usar coneksctl create nodegroup. eksctlrequiere que la familia AMI se establezca explícitamente mediante un archivo de configuración o mediante un indicador --node-ami-family CLI, siempre que se trabaje con una AMI personalizada.

nota

Por el momento, los grupos de nodos gestionados por EKS solo admiten las siguientes familias de AMI cuando se trabaja con custom AMIs:AmazonLinux2023,AmazonLinux2, y Ubuntu1804 Ubuntu2004 Ubuntu2204

Compatibilidad con AMI personalizadas de Windows

Solo los grupos de nodos de Windows autoadministrados pueden especificar una AMI personalizada. amiFamilydebe configurarse en una familia AMI de Windows válida.

Las siguientes PowerShell variables estarán disponibles para el script de arranque:

$EKSBootstrapScriptFile
$EKSClusterName
$APIServerEndpoint
$Base64ClusterCA
$ServiceCIDR
$KubeletExtraArgs
$KubeletExtraArgsMap: A hashtable containing arguments for the kubelet, e.g., @{ 'node-labels' = ''; 'register-with-taints' = ''; 'max-pods' = '10'}
$DNSClusterIP
$ContainerRuntime

Ejemplo de archivo de configuración:

nodeGroups: - name: custom-windows amiFamily: WindowsServer2022FullContainer ami: ami-01579b74557facaf7 overrideBootstrapCommand: | & $EKSBootstrapScriptFile -EKSClusterName "$EKSClusterName" -APIServerEndpoint "$APIServerEndpoint" -Base64ClusterCA "$Base64ClusterCA" -ContainerRuntime "containerd" -KubeletExtraArgs "$KubeletExtraArgs" 3>&1 4>&1 5>&1 6>&1

Soporte AMI personalizado de Bottlerocket

Para los nodos de Bottlerocket, no se admite. overrideBootstrapCommand En su lugar, para designar su propio contenedor de arranque, se debe usar el bottlerocket campo como parte del archivo de configuración. Por ejemplo:

nodeGroups: - name: bottlerocket-ng ami: ami-custom1234 amiFamily: Bottlerocket bottlerocket: enableAdminContainer: true settings: bootstrap-containers: bootstrap: source: <MY-CONTAINER-URI>