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 Specificationkubelet, 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
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
Pré-requisitos
Instale o plug-in da Amazon
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 v20260917nvidia_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