

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
<a name="sagemaker-hyperpod-eks-autoscaling-nodepool"></a>

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.

1. 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
   ```

1. Aplique el `NodePool` a su clúster:

   ```
   kubectl apply -f nodepool.yaml
   ```

1. 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  | 