gerencie os pools de nós

Um pool de nós é um grupo de nós em um cluster do Kubernetes que têm a mesma configuração. Os pools de nós usam uma especificação NodePool. Cada nó no pool tem um rótulo de nó do Kubernetes, que tem o nome do pool de nós como valor. Por padrão, todos os novos pools de nós executam a mesma versão do Kubernetes que o plano de controle.

Quando você cria um cluster de usuário, o número e o tipo de nós especificados criam o primeiro pool de nós do cluster. É possível adicionar mais pools de nós de diferentes tamanhos e tipos ao cluster. Todos os nós de um determinado pool são idênticos entre si.

Os pools de nós personalizados são úteis ao agendar pods que exigem mais recursos que outros, como mais memória ou espaço em disco local. Use taints de nós se precisar de mais controle sobre o agendamento dos pods.

É possível criar e excluir pools de nós individualmente sem afetar todo o cluster. Não é possível configurar um único nó em um pool de nós. Todas as mudanças de configuração afetam todos os nós no pool de nós.

É possível redimensionar pools de nós em um cluster aumentando ou diminuindo a escala do pool. A redução de um pool de nós é um processo automatizado em que você diminui o tamanho do pool, e o sistema do GDC drena e desaloca automaticamente um nó arbitrário. Não é possível selecionar um nó específico para remover ao reduzir um pool de nós.

Antes de começar

Para gerenciar pools de nós em um cluster de usuário, você precisa ter a função de administrador do cluster de usuário (função user-cluster-admin).

Adicione um pool de nós

Ao criar um cluster de usuário no console do GDC, é possível personalizar o pool de nós padrão e criar outros pools antes da inicialização da criação do cluster. Se você precisar adicionar um pool de nós a um cluster de usuário atual, siga estas etapas:

Console

  1. No menu de navegação, selecione Clusters.
  2. Clique no cluster na lista. A página Detalhes do cluster é mostrada.
  3. Selecione Pools de nós > Adicionar pool de nós.
  4. Atribua um nome ao pool de nós. Não é possível modificar o nome depois de criar o pool de nós.
  5. Especifique o número de nós de trabalho a serem criados no pool de nós.
  6. Selecione a classe de máquina mais adequada para os requisitos da sua carga de trabalho. As classes de máquina aparecem nas seguintes configurações:
    • Tipo de máquina
    • vCPU
    • Memória
  7. Opcional: adicione rótulos par de chave-valor do Kubernetes para organizar os recursos do pool de nós.
  8. Clique em Salvar.

API

  1. Abra a especificação do recurso personalizado Cluster com a CLI kubectl usando o editor interativo:

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Substitua:

    • USER_CLUSTER_NAME: o nome do cluster de usuário.
    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador.
  2. Adicione uma nova entrada na seção nodePools:

    nodePools:
    ...
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
    

    Substitua:

    • MACHINE_TYPE: o tipo de máquina para os nós de trabalho do pool de nós. Consulte os tipos de máquina disponíveis para saber o que pode ser configurado.
    • NODE_POOL_NAME: o nome do pool de nós.
    • NUMBER_OF_WORKER_NODES: o número de nós de trabalho a serem provisionados no pool de nós.
    • TAINTS: os taints a serem aplicados aos nós deste pool de nós. Esse campo é opcional.
    • LABELS: os rótulos a serem aplicados aos nós deste pool de nós. Ele contém uma lista de pares de chave-valor. Esse campo é opcional.
  3. Salve o arquivo e saia do editor.

Ver pools de nós

Para conferir os pools de nós em um cluster de usuário, siga estas etapas:

Console

  1. No menu de navegação, selecione Clusters.
  2. Clique no cluster na lista. A página Detalhes do cluster é mostrada.
  3. Selecione Pools de nós.

A lista de pools de nós em execução no cluster é exibida. Nela, você pode gerenciar os pools de nós do cluster.

API

  • Confira os pools de nós de um cluster de usuário específico:

    kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \
        jq .status.workerNodePoolStatuses
    

    O resultado será semelhante ao seguinte:

    [
      {
        "conditions": [
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "NodepoolReady",
            "status": "True",
            "type": "Ready"
          },
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "ReconciliationCompleted",
            "status": "False",
            "type": "Reconciling"
          }
        ],
        "name": "worker-node-pool",
        "readyNodes": 3,
        "readyTimestamp": "2023-08-31T18:59:46Z",
        "reconcilingNodes": 0,
        "stalledNodes": 0,
        "unknownNodes": 0
      }
    ]
    

Excluir um pool de nós

A exclusão de um pool de nós exclui os nós e as rotas dele. Esses nós removem e reprogramam todos os pods em execução neles. Se os pods tiverem seletores de nó específicos, eles poderão permanecer em uma condição não programável se nenhum outro nó no cluster cumprir os critérios.

Verifique se você tem pelo menos três nós de trabalho antes de excluir um pool de nós para garantir que o cluster tenha espaço de computação suficiente para ser executado de maneira eficaz.

Para excluir um pool de nós, siga estas etapas:

Console

  1. No menu de navegação, selecione Clusters.

  2. Clique no cluster que está hospedando o pool de nós que você quer excluir.

  3. Selecione Pools de nós.

  4. Clique em Excluir ao lado do pool de nós que você quer excluir.

API

  1. Abra a especificação do recurso personalizado Cluster com a CLI kubectl usando o editor interativo:

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
          --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Substitua:

    • USER_CLUSTER_NAME: o nome do cluster de usuário.
    • ADMIN_CLUSTER_KUBECONFIG: o caminho do arquivo kubeconfig do cluster de administrador.
  2. Remova a entrada do pool de nós da seção nodePools. Por exemplo, no snippet a seguir, remova os campos machineTypeName, name e nodeCount:

    nodePools:
    ...
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    Remova todos os campos do pool de nós que você está excluindo.

  3. Salve o arquivo e saia do editor.

Tipos de máquinas de nós de trabalho

Ao criar um cluster de usuário no appliance isolado do Google Distributed Cloud (GDC), você cria pools de nós responsáveis por executar as cargas de trabalho de contêiner no cluster. Você provisiona nós com base nos requisitos de carga de trabalho do contêiner e pode atualizá-los conforme as necessidades evoluem.

O GDC oferece tipos de máquinas predefinidos para os nós de trabalho que podem ser selecionados ao adicionar um pool de nós.

Tipos de máquina disponíveis

O GDC define tipos de máquinas com alguns parâmetros para um nó de cluster de usuário, incluindo CPU, memória e GPU. O GDC tem vários tipos de máquinas para diferentes finalidades. Por exemplo, os clusters de usuário usam n2-standard-2-gdc para cargas de trabalho de contêiner de uso geral. Você também pode encontrar tipos de máquinas para fins de otimização de memória, como n2-highcpu-8-gdc. Se você planeja executar contêineres de aprendizado profundo, provisione máquinas com GPU, como a2-highgpu-1g-gdc.

Confira a seguir uma lista de todos os tipos de máquina predefinidos do GDC disponíveis para nós de trabalho do cluster de usuário:

Nome vCPUs Memória Contagem de GPUs
n2-standard-2-gdc 2 8G N/A
n2-standard-4-gdc 4 16 G N/A
n2-highmem-4-gdc 4 32G N/A
n2-highcpu-8-gdc 8 8G N/A
n2-standard-8-gdc 8 32G N/A
n2-highmem-8-gdc 8 64G N/A
a2-highgpu-1g-gdc 12 85G 1
a2-ultragpu-1g-gdc 12 170G 1