

 **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 nodos de Amazon Linux en AWS Outposts
<a name="eks-outposts-self-managed-nodes"></a>

**importante**  
Los clústeres locales de Amazon EKS en Outposts solo admiten nodos creados desde las siguientes AMI de Amazon Linux 2023 optimizadas para Amazon EKS:  
Amazon Linux 2023 estándar (`amazon-linux-2023/x86_64/standard`)
Amazon Linux 2023 acelerado por NVIDIA (`amazon-linux-2023/x86_64/nvidia`)
Amazon Linux 2023 acelerado por Neuron (`amazon-linux-2023/x86_64/neuron`)
 AWS finalizó el soporte para las AMI optimizadas para AL2 y aceleradas para AL2 de AKS el 26 de noviembre de 2025. Aunque aún podrá utilizar las AMI EKS AL2 después de la fecha de fin de soporte (EOS) (26 de noviembre de 2025), EKS dejará de publicar nuevas versiones de Kubernetes o actualizaciones de las AMI AL2, incluso versiones secundarias, revisiones y correcciones de errores después de esta fecha. Consulte [esta página](https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-deprecation-faqs.html) para obtener más información sobre la obsolescencia de AL2.

En este tema, se describe cómo puede lanzar grupos de escalado automático de nodos de Amazon Linux en un Outpost que se registrarán con el clúster de Amazon EKS. El clúster puede estar en la nube de AWS o en un Outpost.
+ Un Outpost existente. Para obtener más información, consulte [¿Qué es AWS Outposts](https://docs.aws.amazon.com/outposts/latest/userguide/what-is-outposts.html)?
+ Un clúster existente de Amazon EKS. Para implementar un clúster en la nube de AWS, consulte [Creación de un clúster de Amazon EKS](create-cluster.md). Para implementar un clúster en un Outpost, consulte [Creación de los clústeres locales de Amazon EKS en AWS Outposts para obtener alta disponibilidad](eks-outposts-local-cluster-overview.md).
+ Supongamos que está creando sus nodos en un clúster en la nube de AWS y tiene subredes en la región de AWS donde tiene habilitados AWS Outposts, AWS Wavelength y las zonas locales de AWS. Esas subredes no deberían haberse transferido al crear el clúster. Si está creando los nodos en un clúster en un Outpost, debe haber proporcionado una subred de Outpost al crear el clúster.
+ (Recomendado para clústeres en la nube de AWS) El complemento CNI de Amazon VPC para Kubernetes configurado con su propio rol de IAM que tiene asociada la política de IAM necesaria. Para obtener más información, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md). Los clústeres locales no admiten roles de IAM para cuentas de servicio.

Puede crear un grupo de nodos autoadministrados de Amazon Linux con `eksctl` o la Consola de administración de AWS (con una plantilla de AWS CloudFormation). También puede usar Terraform.

Puede crear un grupo de nodos autoadministrado para el clúster local con las siguientes herramientas que se describen en esta página:
+  [`eksctl`](#eksctl_create_nodes_outpost) 
+  [Consola de administración de AWS](#console_create_nodes_outpost) 

**importante**  
Un grupo de nodos autoadministrados incluye instancias de Amazon EC2 en su cuenta. Estas instancias no se actualizan de forma automática cuando usted o Amazon EKS actualizan la versión del plano de control en su nombre. Un grupo de nodos autoadministrados no tiene indicaciones en la consola de que necesita actualizarse. Puede ver la versión de `kubelet` instalada en un nodo al seleccionar el nodo en la lista de **Nodos** en la pestaña **Overview (Información general)** del clúster para determinar qué nodos deben actualizarse. Debe actualizar los nodos de forma manual. Para obtener más información, consulte [Actualización de los nodos autoadministrados para un clúster](update-workers.md).
Los certificados que utiliza kubelet en sus nodos autoadministrados se emiten con un año de validez. De forma predeterminada, la rotación de certificados **no** está habilitada (consulte: https://kubernetes.io/docs/reference/config-api/kubelet-config.v1beta1/\$1kubelet-config-k8s-io-v1beta1-KubeletConfiguration); esto significa que, si tiene un nodo autoadministrado en ejecución durante más de un año, ya no podrá autenticarse ante la API de Kubernetes.
Como práctica recomendada, recomendamos a los clientes que actualicen periódicamente sus grupos de nodos autoadministrados para recibir los CVE y los parches de seguridad de la última AMI optimizada para Amazon EKS. La actualización de la AMI utilizada en los grupos de nodos autoadministrados también desencadena la recreación de los nodos y garantiza que no se produzcan problemas debido a la caducidad de los certificados de kubelet.
Como alternativa, también puede habilitar la rotación de certificados de cliente (consulte: https://kubernetes.io/docs/tasks/tls/certificate-rotation/) al crear los grupos de nodos autoadministrados para asegurarse de que los certificados de kubelet se renueven a medida que el certificado actual se acerca a su fecha de caducidad.

## `eksctl`
<a name="eksctl_create_nodes_outpost"></a>

 **Para inicializar nodos de Linux autoadministrados mediante `eksctl` ** 

1. Instale la versión `0.215.0` o posterior de la herramienta de línea de comandos de `eksctl` instalada en su dispositivo o AWS CloudShell. Para instalar o actualizar `eksctl`, consulte la sección de [Instalación](https://eksctl.io/installation) en la documentación de `eksctl`.

1. Si su clúster está en la nube de AWS y la política de IAM administrada **AmazonEKS\$1CNI\$1Policy** se adjunta a su [Rol de IAM de nodo de Amazon EKS](create-node-role.md), recomendamos asignarlo a un rol de IAM asociado a la cuenta de servicios de `aws-node` de Kubernetes en su lugar. Para obtener más información, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md). Si el clúster está en su Outpost, la política debe estar asociada a su rol de nodo.

1. El siguiente comando crea un grupo de nodos en un clúster existente. El clúster debe haberse creado con `eksctl`. Sustituya *al-nodes* por un nombre para su grupo de nodos. El nombre del grupo de nodos no puede tener más de 63 caracteres. Debe empezar por una letra o un dígito, pero también puede incluir guiones y guiones bajos como caracteres no iniciales. Reemplace *my-cluster* por el nombre de su clúster. El nombre solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones. Debe comenzar con un carácter alfanumérico y no puede tener más de 100 caracteres. El nombre debe ser único dentro de la región de AWS y la cuenta de AWS en las que va a crear el clúster. Si el clúster existe en un Outpost, reemplace *id* con el ID de una subred de Outpost. Si su clúster existe en la nube de AWS, reemplace *id* con el ID de una subred que no especificó cuando creó el clúster. Reemplace los valores de ejemplo restantes por sus propios valores. Los nodos se crean de forma predeterminada con la misma versión de Kubernetes que el plano de control.

   Reemplace *instance-type* con un tipo de instancia disponible en su Outpost.

   Reemplace *my-key* con el nombre de su par de claves de Amazon EC2 o la clave pública. Esta clave se utiliza para SSH en sus nodos después de que se lancen. Si aún no tiene un par de claves de Amazon EC2, puede crear uno en la Consola de administración de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) en la *Guía del usuario de Amazon EC2*.

   Cree el grupo de nodos con el siguiente comando.

   ```
   eksctl create nodegroup --cluster my-cluster --name al-nodes --node-type instance-type \
       --nodes 3 --nodes-min 1 --nodes-max 4 --managed=false \
       --node-volume-type gp2 --subnet-ids subnet-id \
       --node-ami-family AmazonLinux2023
   ```

   Si su clúster está implementado en la nube de AWS:
   + El grupo de nodos que implemente puede asignar direcciones `IPv4` a pods de un bloque de CIDR diferente que el de la instancia. Para obtener más información, consulte [Implementación de pods en subredes alternativas con redes personalizadas](cni-custom-network.md).
   + El grupo de nodos que implemente no requiere acceso a Internet saliente. Para obtener más información, consulte [Implementación de clústeres privados con acceso limitado a Internet](private-clusters.md).

   Para obtener una lista completa de todas las opciones y valores predeterminados disponibles, consulte [Soporte de AWS Outposts](https://eksctl.io/usage/outposts/) en la documentación de `eksctl`.
   + Si los nodos no se unen al clúster, consulte [Los nodos no pueden unirse al clúster](troubleshooting.md#worker-node-fail) en [Solución de problemas con los clústeres y nodos de Amazon EKS](troubleshooting.md) y [No puede asociar nodos a un clúster](eks-outposts-troubleshooting.md#outposts-troubleshooting-unable-to-join-nodes-to-a-cluster) en [Solución de problemas de los clústeres locales de Amazon EKS en AWS Outposts](eks-outposts-troubleshooting.md).
   + Un ejemplo de salida sería el siguiente. Se generan varias líneas mientras se crean los nodos. Una de las últimas líneas de salida es la siguiente línea de ejemplo.

     ```
     [✔]  created 1 nodegroup(s) in cluster "my-cluster"
     ```

1. (Opcional) Implemente una [aplicación de muestra](sample-deployment.md) para probar el clúster y los nodos de Linux.

## Consola de administración de AWS
<a name="console_create_nodes_outpost"></a>

 **Paso 1: lanzamiento de nodos de Linux autoadministrados mediante la Consola de administración de AWS ** 

1. Descargue la versión más reciente de la plantilla de AWS CloudFormation.

   ```
   curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2025-11-24/amazon-eks-outpost-nodegroup.yaml
   ```

1. Abra la [Consola de AWS CloudFormation](https://console.aws.amazon.com/cloudformation/).

1. Seleccione **Create stack (Crear pila)** y, a continuación, seleccione **With new resources (standard) (Con nuevos recursos [estándar])**.

1. Para **Especificar plantilla**, seleccione **Cargar un archivo de plantilla** y, a continuación, elija **Elegir archivo**. Seleccione el archivo `amazon-eks-nodegroup.yaml` que ha descargado en el paso anterior y, a continuación, seleccione **Siguiente**.

1. En la página **Especificar detalles de la pila**, ingrese los siguientes parámetros según corresponda y luego seleccione **Siguiente**:
   +  **Nombre de pila**: elija un nombre para su pila de AWS CloudFormation. Por ejemplo, puede llamarla *al-nodes*. El nombre solo puede contener caracteres alfanuméricos (con distinción de mayúsculas y minúsculas) y guiones. Debe comenzar con un carácter alfanumérico y no puede tener más de 100 caracteres. El nombre debe ser único dentro de la región de AWS y la cuenta de AWS en las que va a crear el clúster.
   +  **ApiServerEndpoint**: ingrese el punto de conexión del servidor de la API de Kubernetes, visible en la consola de EKS o con la API DescribeCluster.
   +  **ClusterName**: ingrese el nombre del clúster. Si este nombre no coincide con el nombre del clúster, los nodos no pueden unirse al clúster.
   +  **ClusterId**: ingrese el ID que el servicio de EKS asignó al clúster. Visible con la API DescribeCluster. Si este ID no coincide con el ID del clúster, los nodos no pueden unirse al clúster.
   +  **CertificateAuthority**: ingrese la cadena codificada en base64 de la autoridad de certificación de Kubernetes. Visible en la consola de EKS o con la API DescribeCluster.
   +  **ServiceCidr**: ingrese el CIDR de los servicios de Kubernetes. Visible en la consola de EKS o con la API DescribeCluster.
   +  **ClusterControlPlaneSecurityGroup**: elija el valor de **SecurityGroups** en la salida de AWS CloudFormation que generó cuando creó la [VPC](creating-a-vpc.md).

     En los siguientes pasos, se muestra una operación para recuperar el grupo aplicable.

     1. Abra la [consola de Amazon EKS](https://console.aws.amazon.com/eks/home#/clusters).

     1. Elija el nombre del clúster.

     1. Elija la pestaña **Redes**.

     1. Use el valor de **Grupo de seguridad adicional** como referencia al realizar una selección en la lista desplegable **ClusterControlPlaneSecurityGroup**.
   +  **NodeGroupName**: escriba un nombre para el grupo de nodos. Este nombre se puede utilizar más adelante para identificar el grupo de nodos de escalado automático que se crea para los nodos.
   +  **NodeAutoScalingGroupMinSize**: ingrese el número mínimo de nodos al que se puede reducir horizontalmente el grupo de escalado automático de nodos.
   +  **NodeAutoScalingGroupDesiredCapacity**: escriba el número deseado de nodos que desea escalar cuando se crea la pila.
   +  **NodeAutoScalingGroupMaxSize**: ingrese el número máximo de nodos que pueda alcanzar el grupo de Auto Scaling de nodos.
   +  **NodeInstanceType**: elija un tipo de instancia para los nodos. Si su clúster se ejecuta en la nube de AWS y desea obtener más información, consulte [Elección de un tipo de instancia de nodo de Amazon EC2 óptimo](choosing-instance-type.md). Si su clúster se ejecuta en un Outpost, solo puede seleccionar un tipo de instancia disponible en su Outpost.
   +  **NodeImageIdSSMParam**: rellenado previamente con el parámetro de Amazon EC2 Systems Manager de una AMI optimizada recientemente para Amazon EKS para una versión de Kubernetes variable. Para utilizar otra versión secundaria de Kubernetes compatible con Amazon EKS, reemplace *1.XX* por una [versión admitida](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html) diferente. Recomendamos especificar la misma versión de Kubernetes que el clúster.

     Para usar una AMI acelerada optimizada para Amazon EKS, actualice el valor de *NodeImageIdSSMParam* al parámetro de SSM deseado. Consulte cómo recuperar los ID de AMI de EKS desde SSM [aquí](https://docs.aws.amazon.com/eks/latest/userguide/retrieve-ami-id.html).
**nota**  
Las AMI de los nodos de Amazon EKS se basan en Amazon Linux. Puede realizar un seguimiento de los eventos de seguridad o privacidad de Amazon Linux en el [Centro de seguridad de Amazon Linux](https://alas.aws.amazon.com/) seleccionando la pestaña de la versión que desee. También puede suscribirse a la fuente RSS correspondiente. Los eventos de seguridad y privacidad incluyen información general del problema, qué paquetes están afectados y cómo actualizar las instancias para corregir el problema.
   +  **NodeImageId**: (opcional) si utiliza una AMI personalizada propia (en lugar de una AMI optimizada para Amazon EKS), escriba un ID de AMI de nodo para la región de AWS. Si especifica un valor aquí, anula cualquier valor del campo **NodeImageIdSSMParam**.
   +  **NodeVolumeSize**: especifique un tamaño de volumen raíz para los nodos en GiB.
   +  **NodeVolumeType**: especifique un tipo de volumen raíz para sus nodos.
   +  **KeyName**: ingrese el nombre de un par de claves SSH de Amazon EC2 que pueda utilizar para conectar mediante SSH con los nodos después de haberlos lanzado. Si aún no tiene un par de claves de Amazon EC2, puede crear uno en la Consola de administración de AWS. Para obtener más información, consulte [Pares de claves de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html) en la *Guía del usuario de Amazon EC2*.
**nota**  
Si no proporciona un par de claves aquí, se produce un error al crear la pila de AWS CloudFormation.
   +  **DisableIMDSv1**: cada nodo admite de forma predeterminada la versión 1 (IMDSv1) e IMDSv2 del servicio de metadatos de la instancia. Puede desactivar IMDSv1. Para evitar que los nodos y pods futuros del grupo de nodos usen IMDSv1, establezca **DisableIMDSv1** en **Verdadero**. Para obtener más información, consulte [Configuración del servicio de metadatos de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html). Para obtener más información sobre cómo restringir el acceso en sus nodos, consulte [Restringir el acceso al perfil de instancias asignado al nodo de trabajo](https://aws.github.io/aws-eks-best-practices/security/docs/iam/#restrict-access-to-the-instance-profile-assigned-to-the-worker-node).
   +  **VpcId**: ingrese el ID de la [VPC](creating-a-vpc.md) que ha creado. Antes de elegir una VPC, revise los [Requisitos y consideraciones de la VPC](eks-outposts-vpc-subnet-requirements.md#outposts-vpc-requirements).
   +  **Subredes**: si su clúster está en un Outpost, elija al menos una subred privada en la VPC. Antes de elegir las subredes, revise [Requisitos y consideraciones de las subredes](eks-outposts-vpc-subnet-requirements.md#outposts-subnet-requirements). Puede ver qué subredes son privadas abriendo cada enlace de subred desde la pestaña **Redes** de su clúster.

1. Seleccione las opciones que desee en la página **Configurar las opciones de pila** y, a continuación, elija **Siguiente**.

1. Seleccione la casilla de verificación a la izquierda de **Reconozco que AWS podría crear recursos de IAM** y, luego, seleccione **Crear pila**.

1. Una vez completada la creación de la pila, selecciónela en la consola y elija **Salidas**.

1. Anote el valor de **NodeInstanceRoles** correspondiente al grupo de nodos creado. Lo necesitará al configurar los nodos de Amazon EKS.

 **Paso 2: habilitación para que los nodos se unan al clúster** 

1. Verifique si ya tiene el `ConfigMap` de `aws-auth`.

   ```
   kubectl describe configmap -n kube-system aws-auth
   ```

1. Si se le muestra un `ConfigMap` de `aws-auth`, actualícelo según sea necesario.

   1. Abra el icono `ConfigMap` para editar.

      ```
      kubectl edit -n kube-system configmap/aws-auth
      ```

   1. Añada una nueva entrada de `mapRoles` según sea necesario. Establezca el valor de `rolearn` en el valor de **NodeInstanceRole** que registró en el procedimiento anterior.

      ```
      [...]
      data:
        mapRoles: |
          - rolearn: <ARN of instance role (not instance profile)>
            username: system:node:{{EC2PrivateDNSName}}
            groups:
              - system:bootstrappers
              - system:nodes
      [...]
      ```

   1. Guarde el archivo y salga del editor de texto.

1. Si recibe un error que indica “`Error from server (NotFound): configmaps "aws-auth" not found`, aplique el `ConfigMap` bursátil.

   1. Descargue el mapa de configuración.

      ```
      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml
      ```

   1. En el archivo `aws-auth-cm.yaml`, establezca el `rolearn` al valor de **NodeInstanceRole** que ha registrado en el procedimiento anterior. Puede hacerlo con un editor de texto o puede reemplazar *my-node-instance-role* y ejecutar el siguiente comando:

      ```
      sed -i.bak -e 's|<ARN of instance role (not instance profile)>|my-node-instance-role|' aws-auth-cm.yaml
      ```

   1. Aplique la configuración. Este comando puede tardar varios minutos en finalizar.

      ```
      kubectl apply -f aws-auth-cm.yaml
      ```

1. Observe el estado de los nodos y espere a que aparezca el estado `Ready`.

   ```
   kubectl get nodes --watch
   ```

   Ingrese `Ctrl`\$1`C` para obtener un símbolo del intérprete de comandos.
**nota**  
Si recibe cualquier error de tipo de recurso o autorización, consulte [Acceso denegado o no autorizado (`kubectl`)](troubleshooting.md#unauthorized) en el tema de solución de problemas.

   Si los nodos no se unen al clúster, consulte [Los nodos no pueden unirse al clúster](troubleshooting.md#worker-node-fail) en [Solución de problemas con los clústeres y nodos de Amazon EKS](troubleshooting.md) y [No puede asociar nodos a un clúster](eks-outposts-troubleshooting.md#outposts-troubleshooting-unable-to-join-nodes-to-a-cluster) en [Solución de problemas de los clústeres locales de Amazon EKS en AWS Outposts](eks-outposts-troubleshooting.md).

1. Instale el controlador de CSI de Amazon EBS. Para obtener más información, consulte [Installation](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/install.md) (Instalación) en GitHub. En la sección **Set up driver permission** (Configurar permiso de controlador), asegúrese de seguir las instrucciones de la opción **Using IAM instance profile** (Uso del perfil de instancia de IAM). Debe usar la clase de almacenamiento `gp2`. No se admite la clase de almacenamiento `gp3`.

   Para crear una clase de almacenamiento `gp2` en el clúster, realice los siguientes pasos.

   1. Ejecute el siguiente comando para crear un archivo `gp2-storage-class.yaml`.

      ```
      cat >gp2-storage-class.yaml <<EOF
      apiVersion: storage.k8s.io/v1
      kind: StorageClass
      metadata:
        annotations:
          storageclass.kubernetes.io/is-default-class: "true"
        name: ebs-sc
      provisioner: ebs.csi.aws.com
      volumeBindingMode: WaitForFirstConsumer
      parameters:
        type: gp2
        encrypted: "true"
      allowVolumeExpansion: true
      EOF
      ```

   1. Aplique el manifiesto al clúster.

      ```
      kubectl apply -f gp2-storage-class.yaml
      ```

1. (Solo para nodos de GPU) Si ha elegido un tipo de instancia de GPU y una AMI acelerada optimizada para Amazon EKS, debe aplicar el [complemento de dispositivo NVIDIA para Kubernetes](https://github.com/NVIDIA/k8s-device-plugin) como un DaemonSet en el clúster. Reemplace *vX.X.X* con la versión [NVIDIA/k8s-device-plugin](https://github.com/NVIDIA/k8s-device-plugin/releases) deseada antes de ejecutar el siguiente comando.

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml
   ```

 **Paso 3: acciones adicionales** 

1. (Opcional) Implemente una [aplicación de muestra](sample-deployment.md) para probar el clúster y los nodos de Linux.

1. Si el clúster se implementa en un Outpost, omita este paso. Si el clúster se implementa en la nube de AWS, la siguiente información es opcional. Si la política de IAM administrada **AmazonEKS\$1CNI\$1Policy** se adjunta a su [rol de IAM de nodos de Amazon EKS](create-node-role.md), recomendamos asignarla a un rol de IAM asociado a la cuenta de servicio de `aws-node` de Kubernetes en su lugar. Para obtener más información, consulte [Configuración del complemento de CNI de Amazon VPC para utilizar IRSA](cni-iam-role.md).