AMI Amazon Linux optimisées pour Amazon EKS
L'AMI Amazon Linux optimisée pour Amazon EKS est conçue sur la base d'Amazon Linux 2, et est configurée pour servir d'image de base pour les nœuds Amazon EKS. L'AMI est configurée pour fonctionner avec Amazon EKS et elle comprend les composants suivants :
-
kubelet
-
Authentification IAM AWS
-
Docker (Version Amazon EKS
1.23
et version antérieure) -
containerd
Note
-
Vous pouvez suivre les évènements de sécurité et de confidentialité pour Amazon Linux 2 via le centre de sécurité Amazon Linux
ou souscrire au flux RSS associé. Les événements de sécurité et de confidentialité incluent une présentation du problème, les packages concernés et la manière de mettre à jour vos instances pour résoudre le problème. -
Avant de déployer une AMI accélérée ou Arm, consultez les informations se trouvant dans AMI Amazon Linux accélérée optimisée pour Amazon EKS et AMI Amazon Linux Arm optimisées pour Amazon EKS.
-
Vous pouvez utiliser un indicateur d'amorçage facultatif pour activer l'environnement d'exécution
containerd
pour les AMI Amazon Linux 2 optimisées par Amazon EKS. Cette fonctionnalité offre une voie claire pour migrer verscontainerd
lors de la mise à jour vers la version1.24
ou ultérieure. Amazon EKS a mis fin à la prise en charge de Docker à partir du lancement de la version1.24
de Kubernetes. L'environnement d'exécutioncontainerd
est largement adopté par la communauté Kubernetes et est un projet gradué de la CNCF. Vous pouvez le tester en ajoutant un groupe de nœuds à un cluster nouveau ou existant. Pour de plus amples informations, consultez Activez l'indicateur d'amorçage d'exécution containerd. -
À partir de la version Kubernetes
1.28
, vous ne pourrez plus utiliser les instances P2 Amazon EC2 avec les instances AMI Amazon Linux accélérées et optimisées pour Amazon EKS prêtes à l'emploi. Ces AMI pour les versions Kubernetes1.28
ou ultérieures prendront en charge les pilotes NVIDIA de la série 525 ou ultérieurs, qui sont incompatibles avec les instances P2. Toutefois, les pilotes NVIDIA de la série 525 ou ultérieurs sont compatibles avec les instances P3, P4 et P5, ce qui vous permet d'utiliser ces instances avec les instances AMI pour la version Kubernetes1.28
ou ultérieure. Avant la mise à niveau de vos clusters Amazon EKS vers la version1.28
, migrez toutes les instances P2 vers les instances P3, P4 et P5. Vous devez également mettre à jour vos applications de manière proactive pour qu'elles fonctionnent avec les pilotes NVIDIA de la série 525 ou ultérieure.
Activez l'indicateur d'amorçage d'exécution containerd
L'AMI Amazon Linux 2 optimisée pour Amazon EKS contient un indicateur d'amorçage en option pour activer l'exécution containerd
. Cette fonctionnalité fournit une voie claire pour migrer vers containerd
. Amazon EKS a mis fin à la prise en charge de Docker à partir du lancement de la version 1.24
de Kubernetes. Pour de plus amples informations, consultez Amazon EKS a mis fin à la prise en charge de Dockershim.
Vous pouvez activer l'indicateur d'amorçage en créant l'un des types de groupes de nœuds suivants.
- Autogéré
-
Créez le groupe de nœuds à l'aide des instructions contenues dans Lancement de nœuds Amazon Linux autogérés. Spécifiez une AMI optimisée pour Amazon EKS et le texte suivant pour le paramètre
BootstrapArguments
.--container-runtime containerd
- Gérées
-
Si vous utilisez
eksctl
, créez un fichier nommé
avec le contenu suivant. Remplacez chaquemy-nodegroup
.yaml
par vos propres valeurs. Le nom du groupe de nœuds ne peut pas dépasser 63 caractères. Il doit commencer par une lettre ou un chiffre, mais peut également inclure des tirets et des traits de soulignement pour les autres caractères. Pour récupérer un ID d'AMI optimisée pourexample value
ami-
, veuillez consulter la rubrique Récupération des ID d'AMI Amazon Linux optimisées pour Amazon EKS.1234567890abcdef0
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:
my-cluster
region:region-code
version:1.23
managedNodeGroups: - name:my-nodegroup
ami: ami-1234567890abcdef0
overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.shmy-cluster
--container-runtime containerdNote
Si vous lancez de nombreux nœuds simultanément, vous pouvez également spécifier des valeurs pour le
--apiserver-endpoint
,--b64-cluster-ca
, et les arguments bootstrap d'amorçage--dns-cluster-ip
pour éviter les erreurs. Pour de plus amples informations, consultez Spécification d'une AMI.Exécutez les commandes suivantes pour créer le groupe de nœuds.
eksctl create nodegroup -f
my-nodegroup
.yamlSi vous préférez utiliser un autre outil pour créer votre groupe de nœuds gérés, vous devez déployer le groupe de nœuds à l'aide d'un modèle de lancement. Dans votre modèle de lancement, spécifiez un ID d'AMI optimisée pour Amazon EKS, puis déployez le groupe de nœuds avec un modèle de lancement et fournissez les données utilisateur suivantes. Ces données utilisateur transmettent des arguments dans le fichier
bootstrap.sh
. Pour plus d'informations sur le fichier d'amorçage, consultez bootstrap.shsur GitHub. /etc/eks/bootstrap.sh
my-cluster
--container-runtime containerd
AMI Amazon Linux accélérée optimisée pour Amazon EKS
L'AMI Amazon Linux accéléré optimisé pour Amazon EKS est construit sur l'AMI Amazon Linux standard optimisé pour Amazon EKS. Elle est configurée pour servir d'image optionnelle pour les nœuds Amazon EKS afin de prendre en charge les charges de travail basées sur le GPU et l'Inferentia
Outre la configuration de l'AMI standard optimisée pour Amazon EKS, l'AMI accélérée inclut les éléments suivants :
-
Pilotes NVIDIA
-
L'environnement d'exécution
nvidia-container-runtime
(par défaut) -
Conteneur d'environnement d'exécution AWS Neuron
Note
-
L'AMI accélérée optimisée pour Amazon EKS ne prend en charge que les types d'instance basés sur GPU et Inferentia. Veillez à spécifier ces types d'instance dans votre modèle AWS CloudFormation de nœud. En utilisant l'AMI accélérée optimisée pour Amazon EKS vous acceptez le Contrat de licence de l'utilisateur final NVIDIA (CLUF)
. -
L'AMI accélérée optimisée pour Amazon EKS était auparavant appelée AMI optimisée pour Amazon EKS avec prise en charge du GPU.
-
Les versions précédentes de l'AMI accélérée optimisée pour Amazon EKS ont installé le référentiel
nvidia-docker
. Le référentiel n'est plus inclus dans l'AMI Amazon EKS versionv20200529
et ultérieure.
Pour activer des applications basées sur GPU
La procédure suivante décrit comment exécuter une application sur une instance GPU avec l'AMI accélérée optimisée pour Amazon EKS. Pour les autres options, consultez les références suivantes :
-
Pour de plus amples informations sur l'utilisation des charges de travail basées sur Inferentia, consultez Inférence de machine learning à l'aide de AWS Inferentia.
-
Pour plus d'informations sur l'utilisation de Neuron, consultez Conteneurs - Kubernetes - Mise en route
dans la documentation AWS Neuron.
-
Une fois vos nœuds GPU ajoutés à votre cluster, vous devez mettre en œuvre le plugin de périphérique NVIDIA pour Kubernetes
en tant que DaemonSet sur votre cluster. Remplacez
par la version NVIDIA/k8s-device-pluginvX.X.X
souhaitée avant d'exécuter la commande suivante. kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/
vX.X.X
/nvidia-device-plugin.yml -
Vous pouvez vérifier que vos nœuds ont des GPU répartis avec la commande suivante.
kubectl get nodes "-o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\.com/gpu"
Pour déployer un Pod pour tester que vos nœuds GPU sont configurés correctement
-
Créez un fichier nommé
nvidia-smi.yaml
avec les contenus suivants. Remplacez
par la balise souhaitée pourtag
nvidia/cuda
. Ce manifeste lance un conteneur NVIDIA CUDA qui exécute nvidia-smi
sur un nœud.apiVersion: v1 kind: Pod metadata: name: nvidia-smi spec: restartPolicy: OnFailure containers: - name: nvidia-smi image: nvidia/cuda:
tag
args: - "nvidia-smi" resources: limits: nvidia.com/gpu: 1 -
Appliquez le manifeste ci-dessus avec la commande suivante.
kubectl apply -f nvidia-smi.yaml
-
Une fois que le Pod n'est plus en cours d'exécution, affichez ses journaux à l'aide de la commande suivante.
kubectl logs nvidia-smi
L'exemple qui suit illustre un résultat.
Mon Aug 6 20:23:31 20XX
+-----------------------------------------------------------------------------+ | NVIDIA-SMIXXX.XX
Driver Version:XXX.XX
| |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla V100-SXM2... On | 00000000:00:1C.0 Off | 0 | | N/A 46C P0 47W / 300W | 0MiB / 16160MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
AMI Amazon Linux Arm optimisées pour Amazon EKS
Les instances Arm apportent des économies significatives en termes de coût et sont bien adaptées aux applications dimensionnables et basées sur Arm, telles que serveurs web, microservices conteneurisés, flottes de cache et magasins de données distribuées. Lorsque vous ajoutez des nœuds Arm à votre cluster, passez en revue les considérations suivantes.
Considérations
-
Si votre cluster a été déployé avant le 17 août 2020, vous devez effectuer une mise à niveau unique des manifestes des modules complémentaires critiques du cluster. Ceci afin que Kubernetes puisse extraire l'image correcte pour chaque architecture matérielle utilisée dans votre cluster. Pour plus d'informations sur la mise à jour des modules complémentaires de clusters, consultez Mise à jour de la version Kubernetes de votre cluster Amazon EKS . Si vous avez déployé votre cluster le 17 août 2020 ou après cette date, vos modules complémentaires CoreDNS,
kube-proxy
, et Amazon VPC CNI plugin for Kubernetes sont déjà compatibles avec plusieurs architectures. -
Les applications déployées sur les nœuds Arm doivent être compilées pour Arm.
-
Vous ne pouvez pas utiliser le Pilote CSI Amazon FSx pour Lustre avec Arm.
-
Si vous avez déployé des DaemonSets dans un cluster existant, ou si vous souhaitez les déployer dans un nouveau cluster dans lequel vous souhaitez également déployer des nœuds Arm, vérifiez que votre DaemonSet peut s'exécuter sur toutes les architectures matérielles de votre cluster.
-
Vous pouvez exécuter des groupes de nœuds Arm et des groupes de nœuds x86 dans le même cluster. Si vous procédez de la sorte, envisagez de déployer des images de conteneur multi-architecture dans un référentiel de conteneurs tel qu'Amazon Elastic Container Registry, puis d'ajouter des sélecteurs de nœuds à vos manifestes afin que Kubernetes connaisse l'architecture matérielle dans laquelle un Pod peut être déployé. Pour de plus amples informations, consultez Transmission d'une image multi-architecture dans le Guide de l'utilisateur Amazon ECR et l'article de blog Présentation d'images de conteneurs multi-architectures pour Amazon ECR
.
En savoir plus
Pour plus d'informations sur l'utilisation d'AMI Amazon Linux optimisées pour Amazon EKS, veuillez consulter les sections suivantes :
-
Pour utiliser Amazon Linux avec des groupes de nœuds gérés, veuillez consulter la rubrique Groupes de nœuds gérés.
-
Pour lancer des nœuds Amazon Linux autogérés, veuillez consulter la rubrique Récupération des ID d'AMI Amazon Linux optimisées pour Amazon EKS.
-
Pour plus d'informations sur la version, consultez Versions d'AMI Amazon Linux optimisées pour Amazon EKS.
-
Pour récupérer les derniers ID des AMI Amazon Linux optimisées pour Amazon EKS, veuillez consulter la rubrique Récupération des ID d'AMI Amazon Linux optimisées pour Amazon EKS.
-
Pour consulter les scripts open source qui sont utilisés pour générer l'AMI optimisée pour Amazon EKS, veuillez consulter la rubrique Script de création d'AMI Amazon Linux optimisées pour Amazon EKS.