

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie um NodePool
<a name="sagemaker-hyperpod-eks-autoscaling-nodepool"></a>

O `NodePool` define restrições nos nós que podem ser criados pelo Karpenter e nos pods que podem ser executados nesses nós. O `NodePool` pode ser configurado para fazer coisas como:
+ Limitar a criação de nós a determinadas zonas, tipos de instância e arquiteturas de computador.
+ Definir rótulos ou taints para limitar os pods que podem ser executados nos nós que o Karpenter cria.

**nota**  
HyperPod O provedor oferece suporte a um conjunto limitado de requisitos conhecidos do Kubernetes e do Karpenter, explicados abaixo. 

As etapas a seguir mostram como criar uma `NodePool`.

1. Crie um arquivo YAML denominado nodepool.yaml com a configuração de `NodePool` desejada.

1. Você pode usar o exemplo de configuração abaixo.

   Procure `Ready` abaixo de `Conditions` para indicar que todos os recursos dependentes estão funcionando corretamente.

   ```
   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 o `NodePool` ao seu cluster:

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

1. Monitore o status de `NodePool` para garantir que a condição `Ready` no status esteja definida como `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 compatíveis com o HyperPod Karpenter Provider**

Essas são as restrições e os requisitos opcionais que você pode especificar em sua configuração de `NodePool`.


|  Tipo de requisito  |  Finalidade  |   Case/Supported Valores de uso  |  Recomendação  | 
| --- | --- | --- | --- | 
|  Tipos de instância (`node.kubernetes.io/instance-type`)  |  Controla quais tipos de SageMaker instância o Karpenter pode escolher  |  Em vez de se restringir apenas a ml.c5.xlarge, deixe o Karpenter escolher entre todos os tipos disponíveis em seus grupos de instâncias.  |  Deixe isso indefinido ou use o operador Exists para dar ao Karpenter a máxima flexibilidade na escolha de tipos de instância econômicos.  | 
|  Zonas de disponibilidade (`topology.kubernetes.io/zone`)  |  Controla AWS em quais zonas de disponibilidade os nós podem ser criados  |  Nomes de zonas específicos, como us-east-1c. Use quando precisar que os pods sejam executados em zonas específicas por motivos de latência ou conformidade.  | n/a | 
|  Arquitetura (`kubernetes.io/arch`)  |  Especifica a arquitetura da CPU.  |  Somente amd64 (no momento, não é possível usar ARM).  |  n/a  | 