View a markdown version of this page

Desenvolvimento de uma AMI do Amazon Linux personalizada e otimizada para o EKS - Amazon EKS

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.

Desenvolvimento de uma AMI do Amazon Linux personalizada e otimizada para o EKS

Atenção

A partir de 26 de novembro de 2025, a Amazon EKS não publica mais AMIs do Amazon Linux 2 (AL2) otimizadas para o EKS. As AMIs baseadas no AL2023 e no Bottlerocket para o Amazon EKS estão disponíveis para todas as versões compatíveis com Kubernetes, incluindo a versão 1.33 e as versões posteriores.

O Amazon EKS fornece scripts de desenvolvimento de código aberto no repositório Amazon EKS AMI Build Specification que você pode usar para visualizar as configurações do kubelet, do runtime e do AWS IAM Authenticator for Kubernetes, além de criar sua própria AMI baseada no AL do zero.

Este repositório contém o script de inicialização especializado para AL2 e a ferramenta nodeadm para AL2023, que são executados no momento da inicialização. Esses scripts configuram os dados de certificado da instância, o endpoint do ambiente de gerenciamento, o nome do cluster e muito mais. Os scripts são considerados a fonte de verdade para os desenvolvimentos de AMIs otimizadas para o Amazon EKS, portanto, você pode acompanhar o repositório do GitHub para monitorar as alterações em nossas AMIs.

Ao criar AMIs personalizadas usando AMIs otimizadas para o EKS como base, não é recomendado nem suportado executar uma atualização do sistema operacional (por exemplo, dnf upgrade) ou atualizar qualquer um dos pacotes do Kubernetes ou de GPU incluídos nas AMIs otimizadas para o EKS, pois isso pode comprometer a compatibilidade entre os componentes. Se você optar por atualizar o sistema operacional ou os pacotes incluídos nas AMIs otimizadas para o EKS, é recomendável realizar testes completos em um ambiente de desenvolvimento ou de preparação antes da implantação em um ambiente de produção.

Ao criar AMIs personalizadas para instâncias de GPU, recomenda-se desenvolver AMIs personalizadas distintas para cada geração e família de instâncias que você pretende executar. As AMIs aceleradas e otimizadas para o EKS realizam a instalação seletiva de drivers e pacotes durante o runtime, de acordo com a geração e a família do tipo de instância subjacente. Para obter mais informações, consulte os scripts de instalação e de runtime das AMIs do EKS.

Pré-requisitos

Instale o plug-in da Amazon necessário.

packer plugins install github.com/hashicorp/amazon

Verifique se o Packer está instalado.

packer --version

Clone ou bifurque o repositório oficial de AMIs do Amazon EKS.

git clone https://github.com/awslabs/amazon-eks-ami.git cd amazon-eks-ami

Para visualizar os valores padrão e as opções adicionais, execute o comando a seguir. Para saber mais sobre as configurações disponíveis para personalizar sua AMI, consulte as variáveis de modelo na página Amazon Linux 2023.

make help

Criar uma AMI do personalizada

Veja a seguir exemplos de comando de várias AMIs personalizadas.

AMI NVIDIA AL2 para EKS

make k8s=1.32 os_distro=al2 \ enable_accelerator=nvidia \ nvidia_driver_major_version=580 \ enable_efa=true

AMI NVIDIA AL2023 para EKS

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_major_version=580 \ enable_efa=true

AMI NVIDIA AL2023 para EKS com o driver NVIDIA, versão 595

Importante

O tipo de instância G7 do EC2 requer a versão 595 ou posterior do driver NVIDIA. Atualmente, as AMIs aceleradas otimizadas para EKS incluem a versão 580 do driver NVIDIA, que não é compatível com instâncias G7. Você deve criar uma AMI personalizada com o driver NVIDIA, versão 595, para usar instâncias G7 com o Amazon EKS.

Se você estiver usando o Karpenter para provisionamento de nós e ajuste de escala automático, é recomendável excluir a família de instâncias g7 dos NodePools que usam a seleção automática de AMI. Veja amiSelectorTerms na documentação do Karpenter e saiba como configurar seu NodeClass do Karpenter para usar sua AMI personalizada para instâncias g7.

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_major_version=595 \ enable_efa=true

AMI do Neuron AL2023 compatível com STIG:

make k8s=1.31 os_distro=al2023 \ enable_accelerator=neuron \ enable_fips=true \ source_ami_id=ami-0abcd1234efgh5678 \ kms_key_id=alias/aws-stig

Depois de executar esses comandos, o Packer vai fazer o seguinte:

  • Inicializar uma instância temporária do Amazon EC2.

  • Instalar componentes, drivers e configurações do Kubernetes.

  • Criar a AMI em sua conta da AWS.

A saída esperada deve ser semelhante a essa:

==> Wait completed after 8 minutes 42 seconds ==> Builds finished. The artifacts of successful builds are: --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9 --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9 --> amazon-ebs: AMIs were created: us-west-2: ami-0e139a4b1a7a9a3e9