

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
<a name="custom-ami-support"></a>

## Configurando o ID da AMI do nó
<a name="_setting_the_node_ami_id"></a>

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 para imagens sem GPU e 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 | Description | 
| --- | --- | 
|  auto  |  Indica que a AMI a ser usada para os nós deve ser encontrada consultando o 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**  
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`,`Bottlerocket`,`Ubuntu2004`, e `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

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ó](https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md)). `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 com`eksctl create nodegroup`.

## Configurando a família AMI do nó
<a name="_setting_the_node_ami_family"></a>

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


| Palavra-chave | Description | 
| --- | --- | 
|  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 do 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 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).  | 
|  Foguete de garrafas  |  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 com`eksctl create nodegroup`. `eksctl`exige 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`,`Bottlerocket`,`Ubuntu2004`, e `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

## Suporte à AMI personalizada do Windows
<a name="_windows_custom_ami_support"></a>

Somente grupos de nós autogerenciados do Windows podem especificar uma AMI personalizada. `amiFamily`deve 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
<a name="_bottlerocket_custom_ami_support"></a>

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>
```