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éez un NodePool
L’élément NodePool définit des contraintes sur les nœuds qui peuvent être créés par Karpenter et les pods qui peuvent s’exécuter sur ces nœuds. L’élément NodePool peut être configuré pour faire des choses comme :
-
Limiter la création de nœuds à certaines zones, à certains types d’instances et à certaines architectures informatiques.
-
Définir des étiquettes ou des rejets pour limiter le nombre de pods pouvant fonctionner sur les nœuds créés par Karpenter.
Note
HyperPod le fournisseur prend en charge un ensemble limité d'exigences bien connues de Kubernetes et Karpenter expliquées ci-dessous.
Les étapes suivantes décrivent comment créer un élément NodePool.
-
Créez un fichier YAML nommé nodepool.yaml contenant la configuration
NodePoolque vous souhaitez. -
Vous pouvez utiliser l’exemple de configuration ci-dessous.
Recherchez
ReadysousConditionspour indiquer que toutes les ressources dépendantes fonctionnent correctement.apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: sample-np spec: template: spec: nodeClassRef: group: karpenter.sagemaker.amazonaws.com kind: HyperpodNodeClass name: multiazc5 expireAfter: Never requirements: - key: node.kubernetes.io/instance-type operator: Exists -
Appliquez l’élément
NodePoolà votre cluster :kubectl apply -f nodepool.yaml -
Surveillez le statut de
NodePoolpour vous assurer que la conditionReadyde statut est définie surTrue:kubectl get nodepool sample-np -oyamlapiVersion: karpenter.sh/v1 kind: NodePool metadata: name: <nodepool-name> uid: <resource-uid> ... spec: disruption: budgets: - nodes: 90% consolidateAfter: 0s consolidationPolicy: WhenEmptyOrUnderutilized template: spec: expireAfter: 720h nodeClassRef: group: karpenter.sagemaker.amazonaws.com kind: HyperpodNodeClass name: <nodeclass-name> requirements: - key: node.kubernetes.io/instance-type operator: Exists status: conditions: - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: ValidationSucceeded status: "True" type: ValidationSucceeded - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: NodeClassReady status: "True" type: NodeClassReady - lastTransitionTime: "<timestamp>" message: "" observedGeneration: 2 reason: Ready status: "True" type: Ready
Étiquettes compatibles pour Karpenter Provider HyperPod
Il s’agit des contraintes et exigences facultatives que vous pouvez spécifier dans votre configuration de NodePool.
|
Type d’exigence |
Objectif |
Case/Supported Valeurs d'utilisation |
Recommendation |
|---|---|---|---|
|
Types d’instances ( |
Contrôle les types d' SageMaker instances parmi lesquels Karpenter peut choisir |
Au lieu de vous limiter à ml.c5.xlarge, laissez Karpenter choisir parmi tous les types disponibles dans vos groupes d’instances. |
Laissez ce paramètre non défini ou utilisez l’opérateur Exists pour donner à Karpenter une flexibilité maximale dans le choix de types d’instances économiques. |
|
Zones de disponibilité ( |
Contrôle les zones de AWS disponibilité dans lesquelles les nœuds peuvent être créés |
Noms de zone spécifiques comme us-east-1c. À utiliser lorsque vous avez besoin que les pods s’exécutent dans des zones spécifiques pour des raisons de latence ou de conformité. |
N/A |
|
Architecture ( |
Spécifie l’architecture des CPU |
Uniquement amd64 (aucune prise en charge ARM actuellement) |
N/A |