Créez un NodePool - Amazon SageMaker AI

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.

  1. Créez un fichier YAML nommé nodepool.yaml contenant la configuration NodePool que vous souhaitez.

  2. Vous pouvez utiliser l’exemple de configuration ci-dessous.

    Recherchez Ready sous Conditions pour 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
  3. Appliquez l’élément NodePool à votre cluster :

    kubectl apply -f nodepool.yaml
  4. Surveillez le statut de NodePool pour vous assurer que la condition Ready de statut est définie sur True :

    kubectl get nodepool sample-np -oyaml
    apiVersion: 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 (node.kubernetes.io/instance-type)

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é (topology.kubernetes.io/zone)

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 (kubernetes.io/arch)

Spécifie l’architecture des CPU

Uniquement amd64 (aucune prise en charge ARM actuellement)

N/A