

 **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.

# Migración desde Karpenter al modo automático de EKS mediante kubectl
<a name="auto-migrate-karpenter"></a>

En este tema se explica el proceso para migrar cargas de trabajo de Karpenter al modo automático de Amazon EKS mediante kubectl. La migración se puede realizar de forma gradual, lo que le permite trasladar las cargas de trabajo a su propio ritmo y, al mismo tiempo, mantener la estabilidad del clúster y la disponibilidad de las aplicaciones durante la transición.

El enfoque paso a paso que se describe a continuación permite ejecutar Karpenter y el modo automático de EKS paralelamente durante el periodo de migración. Esta estrategia de doble operación ayuda a garantizar una transición fluida, ya que permite validar el comportamiento de la carga de trabajo en el modo automático de EKS antes de desmantelar completamente Karpenter. Puede migrar aplicaciones individualmente o en grupos, lo que proporciona flexibilidad para acomodar los requisitos operativos específicos y el nivel de tolerancia al riesgo.

## Requisitos previos
<a name="_prerequisites"></a>

Antes de iniciar la migración, asegúrese de que dispone de:
+ Karpenter v1.1 o posterior instalado en el clúster. Para obtener más información, consulte [Upgrading to 1.1.0\$1](https://karpenter.sh/docs/upgrading/upgrade-guide/#upgrading-to-110) en la documentación de Karpenter.
+  `kubectl` instalado y conectado al clúster. Para obtener más información, consulte [Configuración para usar Amazon EKS](setting-up.md).

En este tema se presupone que ya está familiarizado con Karpenter y NodePools. Para obtener más información, consulte la [documentación de Karpenter](https://karpenter.sh/). 

## Paso 1: Habilitación del modo automático de EKS en el clúster
<a name="_step_1_enable_eks_auto_mode_on_the_cluster"></a>

Habilite el modo automático de EKS en el clúster existente mediante AWS CLI o la Consola de administración. Para obtener más información, consulte [Cómo habilitar el modo automático de EKS en un clúster existente](auto-enable-existing.md).

**nota**  
Al habilitar el modo automático de EKS, no habilite el nodepool de `general purpose` en esta etapa de la transición. Este grupo de nodos no es selectivo.  
Para obtener más información, consulte [Cómo habilitar o desactivar los NodePools integrados](set-builtin-node-pools.md).

## Paso 2: Creación de un NodePool del modo automático de EKS con taints aplicadas
<a name="_step_2_create_a_tainted_eks_auto_mode_nodepool"></a>

Cree un nuevo NodePool para el modo automático de EKS con una taint. Con esto se garantiza que los pods existentes no se programarán automáticamente en los nuevos nodos del modo automático de EKS. Este grupo de nodos utiliza la `NodeClass` `default` integrada en el modo automático de EKS. Para obtener más información, consulte [Cómo crear una clase de nodos para Amazon EKS](create-node-class.md).

Ejemplo de grupo de nodos con taint aplicada:

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: eks-auto-mode
spec:
  template:
    spec:
      requirements:
        - key: "eks.amazonaws.com/instance-category"
          operator: In
          values: ["c", "m", "r"]
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default
      taints:
        - key: "eks-auto-mode"
          effect: "NoSchedule"
```

Actualice los requisitos del grupo de nodos de modo que coincidan con la configuración de Karpenter a partir de la cual se va a migrar. Necesita al menos un requisito.

## Paso 3: Actualización de las cargas de trabajo para la migración
<a name="_step_3_update_workloads_for_migration"></a>

Identifique y actualice las cargas de trabajo que desea migrar al modo automático de EKS. Agregue tanto las tolerancias como los selectores de nodos a estas cargas de trabajo:

```
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      tolerations:
      - key: "eks-auto-mode"
        effect: "NoSchedule"
      nodeSelector:
        eks.amazonaws.com/compute-type: auto
```

Este cambio permite programar la carga de trabajo en los nuevos nodos del modo automático de EKS.

El modo automático de EKS utiliza etiquetas diferentes a las de Karpenter. Las etiquetas relacionadas con las instancias administradas por EC2 comienzan con `eks.amazonaws.com`. Para obtener más información, consulte [Creación de un grupo de nodos para el modo automático de EKS](create-node-pool.md).

## Paso 4: Migración de las cargas de trabajo de forma gradual
<a name="_step_4_gradually_migrate_workloads"></a>

Repita el paso 3 para cada carga de trabajo que desee migrar. Esto permite trasladar las cargas de trabajo de forma individual o en grupos, según los requisitos y la tolerancia al riesgo.

## Paso 5: Eliminación del NodePool de Karpenter original
<a name="_step_5_remove_the_original_karpenter_nodepool"></a>

Una vez que se hayan migrado todas las cargas de trabajo, podrá eliminar el NodePool de Karpenter original:

```
kubectl delete nodepool <original-nodepool-name>
```

## Paso 6: Eliminación de la taint del NodePool del modo automático de EKS (opcional)
<a name="_step_6_remove_taint_from_eks_auto_mode_nodepool_optional"></a>

Si desea que el modo automático de EKS se convierta en el modo predeterminado para las nuevas cargas de trabajo, puede eliminar la taint del NodePool del modo automático de EKS:

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
  name: eks-auto-mode
spec:
  template:
    spec:
      nodeClassRef:
        group: eks.amazonaws.com
        kind: NodeClass
        name: default
      # Remove the taints section
```

## Paso 7: Eliminación de los selectores de nodos de las cargas de trabajo (opcional)
<a name="_step_7_remove_node_selectors_from_workloads_optional"></a>

Si ha eliminado la taint del NodePool del modo automático de EKS, puede optar por eliminar los selectores de nodos de las cargas de trabajo, ya que el modo automático de EKS es ahora la opción predeterminada:

```
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      # Remove the nodeSelector section
      tolerations:
      - key: "eks-auto-mode"
        effect: "NoSchedule"
```

## Paso 8: Desinstalación de Karpenter del clúster
<a name="_step_8_uninstall_karpenter_from_your_cluster"></a>

Los pasos que se deben seguir para eliminar Karpenter dependen de cómo se haya instalado. Para obtener más información, consulte las [Instrucciones de instalación de Karpenter](https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/#create-a-cluster-and-add-karpenter).