

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
<a name="custom-ami-support"></a>

## Configuración del ID de AMI del nodo
<a name="_setting_the_node_ami_id"></a>

El `--node-ami` indicador permite varios casos de uso avanzados, como el uso de una AMI personalizada o la consulta de 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 | Description (Descripción) | 
| --- | --- | 
|  auto  |  Indica que la AMI que se va a utilizar para los nodos debe encontrarse consultando 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**  
Por el momento, los grupos de nodos gestionados por EKS solo admiten las siguientes familias de AMI cuando se trabaja con elementos personalizados AMIs:`AmazonLinux2023`,`AmazonLinux2`,, `Bottlerocket``Ubuntu2004`, y `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

Al `--node-ami` configurar una cadena de ID, `eksctl` asumirá que se ha solicitado una AMI personalizada. Para los nodos AmazonLinux 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](https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md)), 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 con`eksctl create nodegroup`.

## Configuración de la familia AMI del nodo
<a name="_setting_the_node_ami_family"></a>

`--node-ami-family`Puede incluir las siguientes palabras clave:


| Palabra clave | Description (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 con`eksctl create nodegroup`. `eksctl`requiere 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 elementos personalizados AMIs:`AmazonLinux2023`,`AmazonLinux2`,, `Bottlerocket``Ubuntu2004`, y `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

## Compatibilidad con AMI personalizadas de Windows
<a name="_windows_custom_ami_support"></a>

Solo los grupos de nodos de Windows autoadministrados pueden especificar una AMI personalizada. `amiFamily`debe 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
<a name="_bottlerocket_custom_ami_support"></a>

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