Aidez à améliorer cette page
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.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
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.
Création d'un pool de nœuds pour le mode automatique EKS
Les pools de nœuds Amazon EKS constituent un moyen flexible de gérer les ressources de calcul de votre cluster Kubernetes. Cette rubrique explique comment créer et configurer des pools de nœuds à l'aide de Karpenter, un outil de provisionnement de nœuds qui permet d'optimiser le dimensionnement des clusters et l'utilisation des ressources. Avec les NodePool ressources de Karpenter, vous pouvez définir des exigences spécifiques pour vos ressources de calcul, notamment les types d'instances, les zones de disponibilité, les architectures et les types de capacité.
Vous ne pouvez pas modifier les pools intégrés system
et les pools de general-purpose
nœuds. Vous pouvez uniquement les activer ou les désactiver. Pour de plus amples informations, veuillez consulter Activer ou désactiver la fonction intégrée NodePools.
La NodePool spécification permet un contrôle précis des ressources de calcul de votre cluster EKS grâce à diverses étiquettes et exigences prises en charge. Il s'agit notamment des options permettant de spécifier les catégories d' EC2 instances, les configurations du processeur, les zones de disponibilité, les architectures (ARM64/AMD64) et les types de capacité (ponctuel/à la demande). Vous pouvez également définir des limites de ressources pour l'utilisation du processeur et de la mémoire, afin de garantir que votre cluster respecte les limites opérationnelles souhaitées.
Le mode automatique d'EKS utilise des étiquettes Kubernetes bien connues pour fournir des méthodes cohérentes et standardisées d'identification des caractéristiques des nœuds. Ces labels, tels que ceux topology.kubernetes.io/zone
pour les zones de disponibilité et kubernetes.io/arch
pour l'architecture du processeur, suivent les conventions Kubernetes établies. En outre, les étiquettes spécifiques à EKS (préfixées pareks.amazonaws.com/
) étendent cette fonctionnalité avec des attributs AWS spécifiques tels que les types d'instances, les fabricants de processeurs, les capacités du GPU et les spécifications réseau. Ce système d'étiquetage standardisé permet une intégration parfaite avec les outils Kubernetes existants tout en fournissant une intégration approfondie de l'infrastructure. AWS
Créez un NodePool
Suivez ces étapes pour créer un cluster Amazon EKS NodePool pour votre cluster Amazon EKS :
-
Créez un fichier YAML portant le nom
nodepool.yaml
de la NodePool configuration souhaitée. Vous pouvez utiliser l'exemple de configuration ci-dessous. -
Appliquez le NodePool à votre cluster :
kubectl apply -f nodepool.yaml
-
Vérifiez que le NodePool a été créé avec succès :
kubectl get nodepools
-
(Facultatif) Surveillez l' NodePool état :
kubectl describe nodepool default
Assurez-vous que votre NodePool référence est valide NodeClass et existe dans votre cluster. NodeClass définit des AWS configurations spécifiques pour vos ressources de calcul. Pour de plus amples informations, veuillez consulter Création d'une classe de nœuds pour Amazon EKS.
Exemple NodePool
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: my-node-pool spec: template: metadata: labels: billing-team: my-team spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] - key: "eks.amazonaws.com/instance-cpu" operator: In values: ["4", "8", "16", "32"] - key: "topology.kubernetes.io/zone" operator: In values: ["us-west-2a", "us-west-2b"] - key: "kubernetes.io/arch" operator: In values: ["arm64", "amd64"] limits: cpu: "1000" memory: 1000Gi
Étiquettes compatibles avec le mode automatique EKS
Le mode automatique EKS prend en charge les labels bien connus suivants.
Étiquette | exemple | Description |
---|---|---|
topology.kubernetes.io/zone |
us-east-2a |
AWS région |
node.kubernetes.io/instance-type |
g4dn.8xlarge |
AWS type d'instance |
kubernetes.io/arch |
amd64 |
Les architectures sont définies par les valeurs GOARCH |
karpenter.sh/capacity type |
place |
Les types de capacité incluent : |
eks.amazonaws.com/instance-hypervisor |
nitro |
Types d'instances utilisant un hyperviseur spécifique |
eks.amazonaws.com/compute-type |
auto |
Identifie les nœuds gérés en mode automatique EKS |
eks.amazonaws.com/ - pris instance-encryption-in-transit en charge |
true |
Types d'instances prenant en charge (ou non) le chiffrement en transit |
eks.amazonaws.com/instance-category |
g |
Types d'instances de la même catégorie, généralement la chaîne précédant le numéro de génération |
eks.amazonaws.com/instance-generation |
4 |
Numéro de génération du type d'instance dans une catégorie d'instance |
eks.amazonaws.com/instance-family |
g4dn |
Types d'instances présentant des propriétés similaires mais des quantités de ressources différentes |
eks.amazonaws.com/instance-size |
8xlarge |
Types d'instances présentant des quantités de ressources similaires mais des propriétés différentes |
eks.amazonaws.com/instance-cpu |
32 |
Numéro de CPUs sur l'instance |
eks.amazonaws.com/ instance-cpu-manufacturer |
aws |
Nom du fabricant du processeur |
eks.amazonaws.com/instance-memory |
131072 |
Nombre de mégaoctets de mémoire sur l'instance |
eks.amazonaws.com/ instance-ebs-bandwidth |
9500 |
Nombre maximal de mégabits d'EBS disponibles sur l'instance |
eks.amazonaws.com/ instance-network-bandwidth |
131072 |
Nombre de mégabits de référence disponibles sur l'instance |
eks.amazonaws.com/ instance-gpu-name |
t4 |
Nom du GPU de l'instance, s'il est disponible |
eks.amazonaws.com/ instance-gpu-manufacturer |
nvidia |
Nom du fabricant du GPU |
eks.amazonaws.com/ instance-gpu-count |
1 |
Numéro de GPUs sur l'instance |
eks.amazonaws.com/ instance-gpu-memory |
16384 |
Nombre de mégaoctets de mémoire sur le GPU |
eks.amazonaws.com/ instance-local-nvme |
900 |
Nombre de gibioctets de stockage NVME local sur l'instance |
Note
Le mode automatique d'EKS ne prend en charge que certaines instances et impose des exigences de taille minimale. Pour de plus amples informations, veuillez consulter Référence d'instance prise en charge par EKS Auto Mode.
Étiquettes EKS Auto non prises en charge
Le mode automatique EKS ne prend pas en charge les libellés suivants.
-
Le mode automatique d'EKS ne fonctionne que sous Linux
-
node.kubernetes.io/windows-build
-
kubernetes.io/os
-
Désactiver les pools de nœuds intégrés
Si vous créez des pools de nœuds personnalisés, vous pouvez désactiver les pools de nœuds intégrés. Pour de plus amples informations, veuillez consulter Activer ou désactiver la fonction intégrée NodePools.
Cluster sans pools de nœuds intégrés
Vous pouvez créer un cluster sans les pools de nœuds intégrés. Cela est utile lorsque votre organisation a créé des pools de nœuds personnalisés.
Vue d'ensemble :
-
Créez un cluster EKS avec les deux
nodePools
etnodeRoleArn
les valeurs vides.-
Exemple eksctl
autoModeConfig
:autoModeConfig: enabled: true nodePools: [] # Do not set a nodeRoleARN
Pour plus d’informations, consultez Créez un cluster en mode automatique EKS avec la CLI eksctl.
-
-
Création d'une classe de nœud personnalisée avec un rôle de nœud ARN
-
Pour plus d’informations, consultez Création d'une classe de nœuds pour Amazon EKS.
-
-
Créez une entrée d'accès pour la classe de nœud personnalisée
-
Pour plus d’informations, consultez Créer une entrée d'accès à une classe de nœud.
-
-
Créez un pool de nœuds personnalisé, comme décrit ci-dessus.
Perturbation
Vous pouvez configurer le mode automatique d'EKS pour perturber les nœuds NodePool de différentes manières. Vous pouvez utiliser spec.disruption.consolidationPolicy
spec.disruption.consolidateAfter
, ouspec.template.spec.expireAfter
. Vous pouvez également limiter le taux d'interruption du mode automatique EKS par le biais NodePool spec.disruption.budgets
de Vous pouvez également contrôler les fenêtres temporelles et le nombre de nœuds interrompus simultanément. Pour obtenir des instructions sur la configuration de ce comportement, consultez la section Interruption
Vous pouvez configurer les interruptions pour les pools de nœuds afin de :
-
Identifiez les cas de sous-utilisation des instances et consolidez les charges de travail.
-
Créez un budget d'interruption du pool de nœuds afin de limiter le taux de terminaison des nœuds en raison de la dérive, du vide et de la consolidation.
Par défaut, mode automatique EKS :
-
Consolide les instances sous-utilisées.
-
Met fin aux instances au bout de 720 heures.
-
Définit un budget d'interruption unique de 10 % des nœuds.