Escolha de um tipo de instância do Amazon EC2 - Amazon EKS

Ajudar a melhorar esta página

Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.

Escolha de um tipo de instância do Amazon EC2

O Amazon EC2 fornece uma extensa seleção de tipos de instância para nós de processamento. Cada tipo de instância oferece diferentes capacidades de computação, memória, armazenamento e rede. Cada instância também é agrupada em famílias de acordo com esses recursos. Para obter uma lista, consulte Tipos de instâncias disponíveis, no Guia do usuário do Amazon EC2, e Tipos de instâncias disponíveis, no Guia do usuário do Amazon EC2. O Amazon EKS lança diversas variações de AMIs do Amazon EC2 para permitir suporte. Para garantir que o tipo de instância selecionado seja compatível com o Amazon EKS, considere estes critérios.

  • Todas as AMIs do Amazon EKS no momento não têm suporte para as famílias g5g e mac.

  • Arm e AMIs do Amazon EKS não aceleradas não têm suporte para as famílias g3, g4, inf e p.

  • AMIs aceleradas do Amazon EKS não têm suporte para as famílias a, c, hpc, m e t.

  • Para instâncias baseadas em ARM, o Amazon Linux 2023 (AL2023) é somente compatível com tipos de instância que usam processadores Graviton2 ou em versões posteriores. O AL2023 não é compatível com instâncias A1.

Ao escolher entre tipos de instância que têm suporte pelo Amazon EKS, considere os recursos a seguir de cada tipo.

Número de instâncias em um grupo de nós

Em geral, um número menor de instâncias maiores é melhor, especialmente se você tiver muitos Daemonsets. Cada instância requer chamadas de API para o servidor de API, portanto, quanto mais instâncias você tiver, maior a carga no servidor de APIs.

Sistema operacional

Revise os tipos de instância compatíveis com o Linux, o Windows e o Bottlerocket. Antes de criar instâncias do Windows, revise Habilitar o suporte ao Windows para o cluster do Amazon EKS.

Arquitetura de hardware

Você precisa de x86 ou de Arm? Você só pode implantar Linux em Arm. Antes de implantar instâncias do Arm, revise AMIs Amazon Linux Arm otimizadas para Amazon EKS. Você precisa de instâncias criadas no Nitro System (Linux ou Windows) ou que tenham recursos acelerados? Se você precisar de recursos acelerados, só poderá usar o Linux com o Amazon EKS.

Número máximo de Pods

Como a cada Pod é atribuído seu próprio endereço IP, o número de endereços IP compatíveis com um tipo de instância é um fator na determinação do número de Pods que podem ser executados em uma instância. Para determinar manualmente com quantos Pods um tipo de instância é compatível, consulte Máximo recomendado de Pods do Amazon EKS para cada tipo de instância do Amazon EC2.

nota

Se estiver utilizando uma AMI do Amazon Linux 2 otimizada para Amazon EKS da versão v20220406 ou mais recente, você poderá utilizar um novo tipo de instância sem fazer upgrade para a AMI mais recente. Para essas AMIs, a AMI calcula automaticamente o valor necessário de max-pods caso ele não esteja listado no arquivo eni-max-pods.txt. Tipos de instância atualmente em versão de demonstração podem não ter suporte pelo Amazon EKS por padrão. Valores para max-pods para esses tipos ainda precisam ser adicionados a eni-max-pods.txt na nossa AMI.

Os tipos de instância do AWS Nitro System opcionalmente oferecem suporte a bem mais endereços IP do que os tipos de instância que não são do Nitro System. Porém, nem todos os endereços IP atribuídos a uma instância estão disponíveis para Pods. Para atribuir um número significativamente maior de endereços IP às suas instâncias, você deve ter a versão 1.9.0 ou superior do complemento CNI da Amazon VPC instalado em seu cluster e configurado adequadamente. Para ter mais informações, consulte Aumente a quantidade de endereços IP disponíveis para seus nós do Amazon EC2. Para atribuir o maior número de endereços IP às suas instâncias, a versão 1.10.1 ou superior do complemento CNI da Amazon VPC deverá estar instalada em seu cluster e o cluster deverá ser implantado com a família IPv6.

Família IP

Você pode usar qualquer tipo de instância compatível quando usa a família IPv4 para um cluster, o que permite ao cluster atribuir endereços IPv4privados aos Pods e aos serviços. Porém, se você deseja utilizar a família IPv6 para o seu cluster, deve usar tipos de instância do AWS Nitro System ou tipos de instância de bare metal. Apenas IPv4 é compatível com instâncias do Windows. O cluster deve executar a versão 1.10.1 ou posterior do complemento CNI da Amazon VPC. Para obter mais informações sobre o uso de IPv6, consulte Endereços IPv6 para clusters, Pods e services.

Versão do complemento Amazon VPC CNI que você está executando

A versão mais recente do plug-in Amazon VPC CNI para Kubernetes é compatível com estes tipos de instância. Talvez seja necessário atualizar a versão do complemento Amazon VPC CNI para poder aproveitar os tipos de instância mais recentes com suporte. Para ter mais informações, consulte Trabalhando com o complemento Amazon VPC CNI plugin for Kubernetes do Amazon EKS. A versão mais recente suporta os recursos mais recentes para serem usados com o Amazon EKS. As versões anteriores não suportam todos os recursos. Você pode visualizar os recursos compatíveis com as diferentes versões no Changelog no GitHub.

A Região da AWS em que você está criando os nós

Nem todos os tipos de instâncias estão disponíveis em todas as Regiões da AWS.

Se você estiver usando grupos de segurança para Pods

Se você estiver usando grupos de segurança para Pods: apenas determinados tipos de instância serão compatíveis. Para ter mais informações, consulte Grupos de segurança do Pods.

Máximo recomendado de Pods do Amazon EKS para cada tipo de instância do Amazon EC2

Como a cada Pod é atribuído seu próprio endereço IP, o número de endereços IP compatíveis com um tipo de instância é um fator na determinação do número de Pods que podem ser executados em uma instância. O Amazon EKS fornece um script que você pode baixar e executar para determinar o número máximo recomendado de Pods do Amazon EKS a serem executados em cada tipo de instância. O script usa os atributos de hardware de cada instância e opções de configuração para determinar o número máximo de Pods. Você pode usar o número retornado nessas etapas para habilitar recursos como atribuição de endereços IP a Pods de uma sub-rede diferente da sub-rede da instância e aumento significativo do número de endereços IP da instância. Se você estiver usando um grupo de nós gerenciados com vários tipos de instâncias, use um valor que funcione para todos os tipos de instâncias.

  1. Baixe um script que você pode usar para calcular o número máximo de Pods para cada tipo de instância.

    curl -O https://raw.githubusercontent.com/awslabs/amazon-eks-ami/master/templates/al2/runtime/max-pods-calculator.sh
  2. Marque o script como executável no computador.

    chmod +x max-pods-calculator.sh
  3. Execute o script, substituindo m5.large pelo tipo de instância que você planeja implantar e 1.9.0-eksbuild.1 pela versão do complemento Amazon VPC CNI. Para determinar a versão do complemento, consulte os procedimentos de atualização em Trabalhando com o complemento Amazon VPC CNI plugin for Kubernetes do Amazon EKS.

    ./max-pods-calculator.sh --instance-type m5.large --cni-version 1.9.0-eksbuild.1

    Veja um exemplo de saída abaixo.

    29

    Você pode adicionar as opções a seguir ao script para ver o máximo de Pods compatíveis ao usar recursos opcionais.

    • --cni-custom-networking-enabled: use essa opção quando quiser atribuir endereços IP de uma sub-rede diferente da sub-rede da sua instância. Para ter mais informações, consulte Rede personalizada para pods. Adicionar essa opção ao script anterior com os mesmos valores do exemplo gera 20.

    • --cni-prefix-delegation-enabled: use esta opção quando quiser atribuir significativamente mais endereços IP a cada interface de rede elástica. Esse recurso requer uma instância do Amazon Linux executada no Sistema Nitro e na versão 1.9.0 ou superior do complemento CNI da Amazon VPC. Para ter mais informações, consulte Aumente a quantidade de endereços IP disponíveis para seus nós do Amazon EC2. Adicionar essa opção ao script anterior com os mesmos valores do exemplo gera 110.

Você também pode executar o script com a opção --help para ver todas as opções disponíveis.

nota

O script da calculadora de Pods máximos limita o valor de retorno para 110 com base nos limites de escalabilidade do Kubernetes e nas configurações recomendadas. Se o seu tipo de instância tiver mais de 30 vCPUs, esse limite aumentará para 250, um número baseado em testes internos da equipe de escalabilidade do Amazon EKS. Para obter mais informações, consulte a publicação no blog Plug-in do Amazon VPC CNI aumenta os limites de pods por nó.