Cree un NodePool - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un NodePool

El NodePool establece restricciones sobre los nodos que Karpenter puede crear y los pods que pueden ejecutarse en esos nodos. El NodePool se puede configurar para que haga cosas como:

  • Limitar la creación de nodos a determinadas zonas, tipos de instancias y arquitecturas de recursos de computación.

  • Definir etiquetas o taints para limitar los pod que pueden ejecutarse en los nodos que crea Karpenter.

nota

HyperPod El proveedor admite un conjunto limitado de requisitos conocidos de Kubernetes y Karpenter que se explican a continuación.

En los siguientes pasos se muestra cómo crear una NodePool.

  1. Cree un archivo YAML llamado nodepool.yaml con la configuración de NodePool que desee.

  2. Puede usar la siguiente configuración de muestra.

    Busque Ready en Conditions para indicar que todos los recursos dependientes funcionan correctamente.

    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. Aplique el NodePool a su clúster:

    kubectl apply -f nodepool.yaml
  4. Supervise el estado de NodePool para asegurarse de que el estado de la condición Ready se haya establecido en 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

Etiquetas compatibles con Karpenter Provider HyperPod

Estas son las restricciones y requisitos opcionales que puede especificar en su configuración de NodePool.

Tipo de requisito

Finalidad

Utilice valores Case/Supported

Recomendación

Tipos de instancias (node.kubernetes.io/instance-type)

Controla los tipos de SageMaker instancias entre los que Karpenter puede elegir

En lugar de restringirlo solo a ml.c5.xlarge, deja que Karpenter elija entre todos los tipos disponibles en sus grupos de instancias

No defina nada o utilice el operador Exists para ofrecer a Karpenter la máxima flexibilidad a la hora de elegir tipos de instancias rentables

Zonas de disponibilidad (topology.kubernetes.io/zone)

Controla las zonas de AWS disponibilidad en las que se pueden crear los nodos

Nombres de zonas específicas como us-east-1c. Úselo cuando necesite que los pods se ejecuten en zonas específicas por motivos de latencia o de conformidad

n/a

Arquitectura (kubernetes.io/arch)

Especifica la arquitectura de la CPU

Solo amd64 (actualmente no es compatible con ARM)

n/a