

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

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

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

1. Applica `NodePool` al cluster:

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

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