Quais são algumas das práticas recomendadas para usar instâncias spot do EC2 com o Amazon EKS?

Data da última atualização: 22/12/2021

Quero usar instâncias spot do Amazon Elastic Compute Cloud (Amazon EC2) com meu Amazon Elastic Kubernetes Service (Amazon EKS). Quais são algumas práticas recomendadas?

Breve descrição

Veja a seguir algumas práticas recomendadas para usar instâncias spot do Amazon EC2 com o Amazon EKS:

  • Não use instâncias spot para trabalhos de longa duração ou aplicações com estado.
  • Use grupos de nós gerenciados com instâncias spot.
  • Adicione vários tipos de instância aos grupos de nós.
  • Use o AWS Node Termination Handler para grupos de nós autogerenciados.

Resolução

Não usar instâncias spot para trabalhos de longa duração ou aplicações com estado

A vida útil curta de uma instância spot pode causar términos indesejados em trabalhos de longa duração. Também pode afetar aplicações com estado porque as aplicações com estado não toleram desligamentos. Em vez disso, use instâncias sob demanda para trabalhos de longa duração.

Usar grupos de nós gerenciados com instâncias spot

É possível definir o tipo de capacidade de um grupo de nós gerenciados como spot. Então, o grupo de nós gerenciados configura um grupo do Auto Scaling para usar o rebalanceamento de capacidade do EC2 Auto Scaling. Quando o recurso de rebalanceamento de capacidade do EC2 Auto Scaling é ativado e um nó spot recebe uma recomendação de rebalanceamento, o Amazon EKS tenta substituir o nó spot.

Depois que o novo nó spot está pronto, o Amazon EKS separa e drena o nó spot anterior. Isso pode ajudar a reduzir o risco de corromper volumes do Amazon Elastic Block Store (Amazon EBS) ou de interromper conexões de banco de dados.

Adicionar vários tipos de instância aos grupos de nós

Cada grupo de instâncias spot consiste em uma capacidade de instância do EC2 não utilizada para um tipo de instância específico em uma zona de disponibilidade específica. Quando um grupo de nós tenta provisionar um novo nó, ele usa um dos tipos de instância definidos na configuração. Se os tipos de instância não tiverem capacidade spot em nenhuma das zonas de disponibilidade, o grupo de nós não será escalado e será degradado.

Para evitar esse problema, aumente o número de tipos de instância semelhantes no grupo de nós. Por exemplo, para um tipo de instância m5.large (2 vCPU/8 GiB de RAM), adicione instâncias com os mesmos valores de vCPU e RAM, como m5a.large, m5n.large e m4.large.

Usar o AWS Node Termination Handler para grupos de nós autogerenciados

O AWS Node Termination Handler (do site do GitHub) é implantado em um cluster do Amazon EKS como uma implantação ou DaemonSet. O AWS Node Termination Handler adiciona os recursos necessários aos grupos de nós autogerenciados. Ele ajuda grupos de nós autogerenciados a detectar e responder adequadamente a eventos de manutenção do EC2, avisos de interrupção de spot, eventos de redução de escala na horizontal de grupos do Auto Scaling e rebalanceamentos de zona de disponibilidade. Use a opção Queue Processor (Processador de fila) para adicionar todos os recursos do AWS Node Termination Handler ao grupo de nós autogerenciados.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?