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 versões de driver personalizadas

A AMI NVIDIA AL2023 otimizada para EKS inclui duas versões do driver NVIDIA em uma única imagem. Cada nó seleciona automaticamente o driver apropriado para sua GPU na inicialização. A partir da versão v20260917 da AMI do AL2023 para EKS, a versão LTS (suporte de longo prazo) é 580 e a versão da ramificação de produção é 595, que juntas oferecem suporte a todos os tipos de instância de GPU EC2. Para substituir as versões padrão, defina nvidia_driver_lts_version e nvidia_driver_pb_version em conjunto.

make k8s=1.36 os_distro=al2023 \ enable_accelerator=nvidia \ nvidia_driver_lts_version=580 \ nvidia_driver_pb_version=610 \ enable_efa=true
nota

A lógica de seleção de drivers NVIDIA da AMI do AL2023 para EKS é executada em tempo de execução, mas é ativada antecipadamente se a AMI for criada em uma instância EC2 acelerada. Como resultado, se você criar uma AMI personalizada em uma instância do EC2 acelerada que usa como padrão o driver NVIDIA 580 (como g6 ou g7e), não poderá implantar essa AMI personalizada em uma instância do EC2 acelerada que exija uma versão posterior do driver NVIDIA (como g7, que exige o driver 595). Para evitar isso, crie AMIs personalizadas em instâncias do EC2 não aceleradas (como m6) e, em seguida, implante-as em qualquer instância acelerada do EC2. Essa abordagem preserva a lógica de seleção de drivers NVIDIA da AMI do AL2023 para EKS.

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