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 AMI personnalisé
Configuration de l'ID AMI du nœud
L'--node-amiindicateur 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 non GPU et GPU.
Le drapeau peut prendre l'identifiant d'image AMI pour une image à utiliser explicitement. Il peut également prendre 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. |
|
SMS automatique |
Indique que l'AMI à utiliser pour les nœuds doit être trouvée en interrogeant AWS SSM Parameter Store. |
Note
Pour le moment, les groupes de nœuds gérés par EKS ne prennent en charge que les familles d'AMI suivantes lorsqu'ils travaillent avec des AMI personnalisées : AmazonLinux2023AmazonLinux2,Bottlerocket,Ubuntu2004, et UbuntuPro2004 Ubuntu2204 Ubuntu2404
Lors --node-ami de la définition d'une chaîne d'ID, eksctl supposera qu'une AMI personnalisée a été demandée. Pour les nœuds AmazonLinux 2 et Ubuntu, gérés par EKS et autogérés, cela signifie que cela overrideBootstrapCommand est obligatoire. Pour AmazonLinux 2023, vous pouvez omettre cette option overrideBootstrapCommand lorsque vous utilisez une AMI personnalisée, car eksctl génère automatiquement le minimum requis. NodeConfig Pour plus d'informations sur l'amorçage des nœuds, consultez la section Démarrage des nœuds activé.
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é aveceksctl create nodegroup.
Configuration de la famille AMI du nœud
Ils --node-ami-family peuvent prendre les mots clés suivants :
| Mot clé | Description |
|---|---|
|
AmazonLinux2 |
Indique que l'image EKS AMI basée sur Amazon Linux 2 doit être utilisée (par défaut). |
|
AmazonLinux2023 |
Indique que l'image EKS AMI basée sur Amazon Linux 2023 doit être utilisée. |
|
Ubuntu 2004 |
Indique que l'image EKS AMI basée sur Ubuntu 20.04 LTS (Focal) doit être utilisée (prise en charge pour EKS et 1.29). |
|
UbuntuPro2004 |
Indique que l'image EKS AMI 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 EKS AMI basée sur Ubuntu 22.04 LTS (Jammy) doit être utilisée (disponible pour EKS >= 1.29). |
|
UbuntuPro2204 |
Indique que l'image EKS AMI basée sur Ubuntu Pro 22.04 LTS (Jammy) doit être utilisée (disponible pour EKS >= 1.29). |
|
Ubuntu 2404 |
Indique que l'image EKS AMI basée sur Ubuntu 24.04 LTS (Noble) doit être utilisée (disponible pour EKS >= 1.31). |
|
UbuntuPro2404 |
Indique que l'image EKS AMI basée sur Ubuntu Pro 24.04 LTS (Noble) doit être utilisée (disponible pour EKS >= 1.31). |
|
Fusée à bouteilles |
Indique que l'image EKS AMI basée sur Bottlerocket doit être utilisée. |
|
WindowsServer2019FullContainer |
Indique que l'image EKS AMI basée sur Windows Server 2019 Full Container doit être utilisée. |
|
WindowsServer2019CoreContainer |
Indique que l'image EKS AMI basée sur Windows Server 2019 Core Container doit être utilisée. |
|
WindowsServer2022FullContainer |
Indique que l'image EKS AMI basée sur Windows Server 2022 Full Container doit être utilisée. |
|
WindowsServer2022CoreContainer |
Indique que l'image EKS AMI 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é aveceksctl create nodegroup. eksctlexige que la famille AMI soit définie explicitement 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 lorsqu'ils travaillent avec des AMI personnalisées : AmazonLinux2023AmazonLinux2,Bottlerocket,Ubuntu2004, et UbuntuPro2004 Ubuntu2204 Ubuntu2404
Prise en charge des AMI personnalisées pour Windows
Seuls les groupes de nœuds Windows autogérés peuvent spécifier une AMI personnalisée. amiFamilydoit être définie 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 AMI personnalisé pour Bottlerocket
Pour les nœuds Bottlerocket, ce overrideBootstrapCommand n'est pas pris en charge. Au lieu de cela, pour désigner leur propre conteneur d'amorçage, il convient d'utiliser le bottlerocket champ dans le fichier de configuration. E.g.
nodeGroups: - name: bottlerocket-ng ami: ami-custom1234 amiFamily: Bottlerocket bottlerocket: enableAdminContainer: true settings: bootstrap-containers: bootstrap: source: <MY-CONTAINER-URI>