

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Support personnalisé pour les AMI
<a name="custom-ami-support"></a>

## Configuration de l'ID AMI du nœud
<a name="_setting_the_node_ami_id"></a>

L'`--node-ami`indicateur permet un certain nombre de cas d'utilisation avancés, tels que l'utilisation d'une AMI personnalisée ou l'interrogation d'AWS en temps réel pour déterminer l'AMI à utiliser. Le drapeau peut être utilisé à la fois pour les images sans GPU et pour les images avec GPU.

L'indicateur peut prendre l'identifiant de l'image AMI d'une image à utiliser explicitement. Il peut également utiliser les mots clés « spéciaux » suivants :


| Mot clé | Description | 
| --- | --- | 
|  auto  |  Indique que l'AMI à utiliser pour les nœuds doit être trouvée en interrogeant AWS EC2. Cela concerne le résolveur automatique.  | 
|  auto-ssm  |  Indique que l'AMI à utiliser pour les nœuds doit être trouvée en interrogeant le magasin de paramètres AWS SSM.  | 

**Note**  
Pour le moment, les groupes de nœuds gérés par EKS ne prennent en charge que les familles d'AMI suivantes lorsque vous travaillez avec des fonctionnalités personnalisées AMIs :`AmazonLinux2023`,`AmazonLinux2`,`Bottlerocket`,`Ubuntu2004`, et `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

Lorsque vous définissez une chaîne `--node-ami` d'identification, cela `eksctl` supposera qu'une AMI personnalisée a été demandée. Pour les nœuds AmazonLinux 2 et Ubuntu, gérés ou autogérés par EKS, cela signifie que cela `overrideBootstrapCommand` est nécessaire. Pour AmazonLinux 2023, puisqu'il cesse d'utiliser le `/etc/eks/bootstrap.sh` script pour le démarrage des nœuds, au profit d'un processus d'initialisation de nodeadm (pour plus d'informations, reportez-vous à la documentation sur le [démarrage des nœuds), n'est pas pris en charge.](https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md) `overrideBootstrapCommand`

Exemples d'indicateurs CLI :

```
eksctl create cluster --node-ami=auto

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

Exemple de fichier de configuration :

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

Le `--node-ami` drapeau peut également être utilisé avec`eksctl create nodegroup`.

## Configuration de la famille AMI du nœud
<a name="_setting_the_node_ami_family"></a>

Ils `--node-ami-family` peuvent utiliser les mots clés suivants :


| Mot clé | Description | 
| --- | --- | 
|  AmazonLinux2  |  Indique que l'image AMI EKS basée sur Amazon Linux 2 doit être utilisée (par défaut).  | 
|  AmazonLinux2023  |  Indique que l'image AMI EKS basée sur Amazon Linux 2023 doit être utilisée.  | 
|  Ubuntu 2004  |  Indique que l'image AMI EKS basée sur Ubuntu 20.04 LTS (Focal) doit être utilisée (prise en charge pour EKS 1.29).  | 
|  UbuntuPro2004  |  Indique que l'image de l'AMI EKS basée sur Ubuntu Pro 20.04 LTS (Focal) doit être utilisée (disponible pour EKS >= 1.27 et 1.29).  | 
|  Ubuntu 2204  |  Indique que l'image AMI EKS basée sur Ubuntu 22.04 LTS (Jammy) doit être utilisée (disponible pour EKS >= 1.29).  | 
|  UbuntuPro2204  |  Indique que l'image AMI EKS basée sur Ubuntu Pro 22.04 LTS (Jammy) doit être utilisée (disponible pour EKS >= 1.29).  | 
|  Ubuntu 2404  |  Indique que l'image AMI EKS basée sur Ubuntu 24.04 LTS (Noble) doit être utilisée (disponible pour EKS >= 1.31).  | 
|  UbuntuPro2404  |  Indique que l'image AMI EKS basée sur Ubuntu Pro 24.04 LTS (Noble) doit être utilisée (disponible pour EKS >= 1.31).  | 
|  Flacon Rocket  |  Indique que l'image AMI EKS basée sur Bottlerocket doit être utilisée.  | 
|  WindowsServer2019 FullContainer  |  Indique que l'image AMI EKS basée sur le conteneur complet de Windows Server 2019 doit être utilisée.  | 
|  WindowsServer2019 CoreContainer  |  Indique que l'image AMI EKS basée sur Windows Server 2019 Core Container doit être utilisée.  | 
|  WindowsServer2022 FullContainer  |  Indique que l'image AMI EKS basée sur le conteneur complet Windows Server 2022 doit être utilisée.  | 
|  WindowsServer2022 CoreContainer  |  Indique que l'image AMI EKS basée sur Windows Server 2022 Core Container doit être utilisée.  | 

Exemple d'indicateur CLI :

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

Exemple de fichier de configuration :

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

Le `--node-ami-family` drapeau peut également être utilisé avec`eksctl create nodegroup`. `eksctl`nécessite que la famille d'AMI soit explicitement définie via un fichier de configuration ou via un indicateur `--node-ami-family` CLI, chaque fois que vous travaillez avec une AMI personnalisée.

**Note**  
Pour le moment, les groupes de nœuds gérés par EKS ne prennent en charge que les familles d'AMI suivantes lorsque vous travaillez avec des fonctionnalités personnalisées AMIs :`AmazonLinux2023`,`AmazonLinux2`,`Bottlerocket`,`Ubuntu2004`, et `UbuntuPro2004` `Ubuntu2204` `Ubuntu2404` 

## Prise en charge des AMI personnalisées pour Windows
<a name="_windows_custom_ami_support"></a>

Seuls les groupes de nœuds Windows autogérés peuvent spécifier une AMI personnalisée. `amiFamily`doit être défini sur une famille d'AMI Windows valide.

Les PowerShell variables suivantes seront disponibles pour le script 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
```

Exemple de fichier de configuration :

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

## Support d'AMI personnalisé Bottlerocket
<a name="_bottlerocket_custom_ami_support"></a>

Pour les nœuds Bottlerocket, le `overrideBootstrapCommand` n'est pas pris en charge. Au lieu de cela, pour désigner leur propre conteneur bootstrap, il faut utiliser le `bottlerocket` champ dans le cadre du fichier de configuration. P. ex.

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