Suporte personalizado para AMI - Guia do usuário do Eksctl

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Suporte personalizado para AMI

Configurando o ID da AMI do nó

A --node-ami bandeira permite vários casos de uso avançados, como usar uma AMI personalizada ou consultar a AWS em tempo real para determinar qual AMI usar. O sinalizador pode ser usado tanto para imagens sem GPU quanto para imagens com GPU.

O sinalizador pode usar o ID da imagem da AMI para uso explícito de uma imagem. Ele também pode usar as seguintes palavras-chave “especiais”:

Palavra-chave Descrição

auto

Indica que a AMI a ser usada para os nós deve ser encontrada consultando a AWS EC2. Isso está relacionado ao resolvedor automático.

ssm automático

Indica que a AMI a ser usada para os nós deve ser encontrada consultando o AWS SSM Parameter Store.

nota

Ao --node-ami definir uma string de ID, eksctl assumirá que uma AMI personalizada foi solicitada. Para nós AmazonLinux 2 e Ubuntu, gerenciados e autogerenciados pelo EKS, isso significa que isso overrideBootstrapCommand é necessário. Para AmazonLinux 2023, uma vez que ele para de usar o /etc/eks/bootstrap.sh script para inicialização de nós, não há suporte para um processo de inicialização do nodeadm (para obter mais informações, consulte a documentação de inicialização do nó). overrideBootstrapCommand

Exemplos de sinalizadores CLI:

eksctl create cluster --node-ami=auto # with a custom ami id eksctl create cluster --node-ami=ami-custom1234

Exemplo de arquivo de configuração:

nodeGroups: - name: ng1 instanceType: p2.xlarge amiFamily: AmazonLinux2 ami: auto - name: ng2 instanceType: m5.large amiFamily: AmazonLinux2 ami: ami-custom1234 managedNodeGroups: - name: m-ng-2 amiFamily: AmazonLinux2 ami: ami-custom1234 instanceType: m5.large overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.sh <cluster-name>

A --node-ami bandeira também pode ser usada comeksctl create nodegroup.

Configurando a família AMI do nó

Eles --node-ami-family podem usar as seguintes palavras-chave:

Palavra-chave Descrição

AmazonLinux2

Indica que a imagem EKS AMI baseada no Amazon Linux 2 deve ser usada (padrão).

AmazonLinux2023

Indica que a imagem EKS AMI baseada no Amazon Linux 2023 deve ser usada.

Ubuntu 2004

Indica que a imagem do EKS AMI baseada no Ubuntu 20.04 LTS (Focal) deve ser usada (compatível com EKS ․ 1.29).

UbuntuPro2004

Indica que a imagem EKS AMI baseada no Ubuntu Pro 20.04 LTS (Focal) deve ser usada (disponível para EKS >= 1.27, 1.29).

Ubuntu 2204

Indica que a imagem do EKS AMI baseada no Ubuntu 22.04 LTS (Jammy) deve ser usada (disponível para EKS >= 1.29).

UbuntuPro2204

Indica que a imagem do EKS AMI baseada no Ubuntu Pro 22.04 LTS (Jammy) deve ser usada (disponível para EKS >= 1.29).

Ubuntu 2404

Indica que a imagem EKS AMI baseada no Ubuntu 24.04 LTS (Noble) deve ser usada (disponível para EKS >= 1.31).

UbuntuPro2404

Indica que a imagem EKS AMI baseada no Ubuntu Pro 24.04 LTS (Noble) deve ser usada (disponível para EKS >= 1.31).

Bottlerocket

Indica que a imagem EKS AMI baseada em Bottlerocket deve ser usada.

WindowsServer2019 FullContainer

Indica que a imagem da AMI do EKS baseada no contêiner completo do Windows Server 2019 deve ser usada.

WindowsServer2019 CoreContainer

Indica que a imagem da AMI do EKS baseada no contêiner principal do Windows Server 2019 deve ser usada.

WindowsServer2022 FullContainer

Indica que a imagem EKS AMI baseada no Windows Server 2022 Full Container deve ser usada.

WindowsServer2022 CoreContainer

Indica que a imagem EKS AMI baseada no Windows Server 2022 Core Container deve ser usada.

Exemplo de bandeira CLI:

eksctl create cluster --node-ami-family=AmazonLinux2

Exemplo de arquivo de configuração:

nodeGroups: - name: ng1 instanceType: m5.large amiFamily: AmazonLinux2 managedNodeGroups: - name: m-ng-2 instanceType: m5.large amiFamily: Ubuntu2204

A --node-ami-family bandeira também pode ser usada comeksctl create nodegroup. eksctlexige que a família AMI seja definida explicitamente por meio do arquivo de configuração ou via sinalização da --node-ami-family CLI, sempre que estiver trabalhando com uma AMI personalizada.

nota

No momento, os grupos de nós gerenciados pelo EKS oferecem suporte apenas às seguintes famílias de AMI ao trabalhar com versões personalizadas AMIs:AmazonLinux2023,,AmazonLinux2, e Ubuntu1804 Ubuntu2004 Ubuntu2204

Suporte à AMI personalizada do Windows

Somente grupos de nós autogerenciados do Windows podem especificar uma AMI personalizada. amiFamilydeve ser definido como uma família de AMI do Windows válida.

As seguintes PowerShell variáveis estarão disponíveis para o script de bootstrap:

$EKSBootstrapScriptFile
$EKSClusterName
$APIServerEndpoint
$Base64ClusterCA
$ServiceCIDR
$KubeletExtraArgs
$KubeletExtraArgsMap: A hashtable containing arguments for the kubelet, e.g., @{ 'node-labels' = ''; 'register-with-taints' = ''; 'max-pods' = '10'}
$DNSClusterIP
$ContainerRuntime

Exemplo de arquivo de configuração:

nodeGroups: - name: custom-windows amiFamily: WindowsServer2022FullContainer ami: ami-01579b74557facaf7 overrideBootstrapCommand: | & $EKSBootstrapScriptFile -EKSClusterName "$EKSClusterName" -APIServerEndpoint "$APIServerEndpoint" -Base64ClusterCA "$Base64ClusterCA" -ContainerRuntime "containerd" -KubeletExtraArgs "$KubeletExtraArgs" 3>&1 4>&1 5>&1 6>&1

Suporte personalizado para AMI da Bottlerocket

Para nós Bottlerocket, o não overrideBootstrapCommand é suportado. Em vez disso, para designar seu próprio contêiner de bootstrap, deve-se usar o bottlerocket campo como parte do arquivo de configuração. Por exemplo:

nodeGroups: - name: bottlerocket-ng ami: ami-custom1234 amiFamily: Bottlerocket bottlerocket: enableAdminContainer: true settings: bootstrap-containers: bootstrap: source: <MY-CONTAINER-URI>