

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Migrar do Karpenter para o Modo Automático do EKS usando o kubectl
<a name="auto-migrate-karpenter"></a>

Este tópico orienta você pelo processo de migração de workloads do Karpenter para o Modo Automático do Amazon EKS usando o kubectl. A migração pode ser realizada gradualmente, permitindo que você mova as workloads no seu próprio ritmo, mantendo a estabilidade do cluster e a disponibilidade das aplicações durante a transição.

A abordagem passo a passo descrita abaixo permite que você execute o Karpenter e o Modo Automático do EKS lado a lado durante o período de migração. Essa estratégia de operação dupla ajuda a garantir uma transição suave, permitindo que você valide o comportamento da workload no Modo Automático do EKS antes de desativar completamente o Karpenter. Você pode migrar aplicações individualmente ou em grupos, oferecendo flexibilidade para acomodar seus requisitos operacionais específicos e a tolerância a riscos.

## Pré-requisitos
<a name="_prerequisites"></a>

Antes de iniciar a migração, verifique se você tem:
+ Karpenter v1.1 ou posterior instalado no cluster. Para obter mais informações, consulte [Upgrading to 1.1.0\$1](https://karpenter.sh/docs/upgrading/upgrade-guide/#upgrading-to-110) na documentação do Karpenter.
+  `kubectl` instalado e conectado ao cluster. Para obter mais informações, consulte [Configurar para usar o Amazon EKS](setting-up.md).

Este tópico pressupõe que você esteja familiarizado com o Karpenter e NodePools. Para obter mais informações, consulte a [documentação do Karpenter.](https://karpenter.sh/) 

## Etapa 1: habilitar o modo automático do EKS no cluster
<a name="_step_1_enable_eks_auto_mode_on_the_cluster"></a>

Habilite o Modo Automático do EKS no cluster existente usando a CLI ou o Console de Gerenciamento da AWS. Para obter mais informações, consulte [Habilitar o Modo Automático do EKS em um cluster existente](auto-enable-existing.md).

**nota**  
Ao ativar o Modo Automático do EKS, não habilite o nodepool `general purpose` neste estágio durante a transição. Esse grupo de nós não é seletivo.  
Para obter mais informações, consulte [Habilitar ou desabilitar NodePools integrados](set-builtin-node-pools.md).

## Etapa 2: criar um NodePool com taint do Modo Automático do EKS
<a name="_step_2_create_a_tainted_eks_auto_mode_nodepool"></a>

Crie um NodePool para o Modo Automático do EKS com um taint. Isso garante que os pods existentes não sejam programados automaticamente nos novos nós do Modo Automático do EKS. Esse grupo de nós usa o `NodeClass` `default` criado no Modo Automático do EKS. Para obter mais informações, consulte [Criar uma classe de nó para o Amazon EKS](create-node-class.md).

Exemplo de grupo de nós com taint:

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

Atualize os requisitos do grupo de nós para que correspondam à configuração do Karpenter da qual você está migrando. Você precisa de pelo menos um requisito.

## Etapa 3: atualizar workloads para migração
<a name="_step_3_update_workloads_for_migration"></a>

Identifique e atualize as workloads que você deseja migrar para o Modo Automático do EKS. Adicione tolerâncias e seletores de nós às workloads:

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

Essa alteração permite que a workload seja programada nos novos nós do Modo Automático do EKS.

O Modo Automático do EKS usa rótulos diferentes do Karpenter. Os rótulos relacionados às instâncias gerenciadas pelo EC2 começam com `eks.amazonaws.com`. Para obter mais informações, consulte [Criar um grupo de nós para o Modo Automático do EKS](create-node-pool.md).

## Etapa 4: migrar gradualmente as workloads
<a name="_step_4_gradually_migrate_workloads"></a>

Repita a Etapa 3 para cada workload que você deseja migrar. Isso permite que você mova workloads individualmente ou em grupos, com base nos requisitos e tolerância a riscos.

## Etapa 5: remover o NodePool original do Karpenter
<a name="_step_5_remove_the_original_karpenter_nodepool"></a>

Depois que todas as workloads tiverem sido migradas, você poderá remover o NodePool original do Karpenter:

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

## Etapa 6: remover o taint do NodePool do Modo Automático do EKS (opcional)
<a name="_step_6_remove_taint_from_eks_auto_mode_nodepool_optional"></a>

Se você quiser que o Modo Automático do EKS se torne o padrão para novas workloads, você pode remover o taint do NodePool do Modo Automático do 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
```

## Etapa 7: remover os seletores de nós das workloads (opcional)
<a name="_step_7_remove_node_selectors_from_workloads_optional"></a>

Se você removeu o taint do NodePool do Modo Automático do EKS, você pode, opcionalmente, remover os seletores de nós das workloads, já que o Modo Automático do EKS agora é o padrão:

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

## Etapa 8: desinstalar o Karpenter do cluster
<a name="_step_8_uninstall_karpenter_from_your_cluster"></a>

As etapas para remover o Karpenter dependem de como você o instalou. Para obter mais informações, consulte as [instruções de instalação do Karpenter](https://karpenter.sh/docs/getting-started/getting-started-with-karpenter/#create-a-cluster-and-add-karpenter).