Crea un NodePool - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un NodePool

NodePool imposta i vincoli sui nodi che possono essere creati da Karpenter e sui pod che possono essere eseguiti su tali nodi. NodePool può essere configurato per:

  • Limitare la creazione di nodi a determinate zone, tipi di istanze e architetture informatiche.

  • Definire le etichette o i taint per limitare i pod che possono essere eseguiti sui nodi creati da Karpenter.

Nota

HyperPod il provider supporta una serie limitata di requisiti noti di Kubernetes e Karpenter spiegati di seguito.

La procedura che segue illustra come creare NodePool.

  1. Crea un file YAML denominato nodepool.yaml con la configurazione NodePool desiderata.

  2. Puoi utilizzare la configurazione di esempio seguente.

    Cerca Ready in Conditions per verificare che tutte le risorse dipendenti funzionino correttamente.

    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. Applica NodePool al cluster:

    kubectl apply -f nodepool.yaml
  4. Monitora lo stato di NodePool per assicurarti che la condizione Ready nello stato sia impostata su 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

Etichette supportate per Karpenter Provider HyperPod

Questi sono i vincoli e i requisiti facoltativi che puoi specificare nella tua configurazione NodePool.

Tipo di requisito

Scopo

Usa valori Case/Supported

Raccomandazione

Tipi di istanza (node.kubernetes.io/instance-type)

Controlla i tipi di SageMaker istanza tra cui Karpenter può scegliere

Invece di limitarti a ml.c5.xlarge, lascia che Karpenter scelga tra tutti i tipi disponibili nei tuoi gruppi di istanze.

Lascia questo campo indefinito o utilizza l’operatore Exists per dare a Karpenter la massima flessibilità nella scelta di tipi di istanze più convenienti.

Zone di disponibilità (topology.kubernetes.io/zone)

Controlla in quali zone di AWS disponibilità possono essere creati i nodi

Nomi di zone specifici come us-east-1c. Da utilizzare se i pod devono funzionare in zone specifiche per motivi di latenza o conformità.

N/A

Architettura (kubernetes.io/arch)

Specifica l’architettura della CPU.

Solo amd64 (attualmente ARM non è supportato).

N/A