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 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 amiSelectorTermsg7.
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