Substitua a densidade de pods de um node pool

Este documento descreve como especificar a densidade de pods para pools de nós individuais no seu cluster, substituindo a definição ao nível do cluster. Embora as configurações ao nível do nó se apliquem normalmente a todo o cluster, pode configurar a densidade de pods num pool de nós específico. A substituição da densidade de pods para pools de nós específicos pode melhorar a eficiência dos recursos. Esta capacidade é útil para pools de nós especializados, como nós com GPUs, em que requisitos específicos da carga de trabalho ou uma atribuição eficiente de endereços IP exigem um valor diferente para o número máximo de pods por nó.

A capacidade de substituir a definição de densidade de pods ao nível do cluster está disponível para clusters na versão 1.33 e superior.

Antes de começar

A capacidade de especificar a densidade de pods para pools de nós só está disponível para clusters com uma das seguintes configurações de rede:

Configure a densidade de pods para um node pool

Configure a densidade de pods na especificação NodePool para substituir as definições ao nível do cluster. Esta configuração é opcional. O sistema deriva o tamanho do intervalo CIDR atribuído ao nó do parâmetro Máximo de pods por nó.

A configuração maxPodsPerNode é imutável após a criação do conjunto de nós. O sistema valida a definição maxPodsPerNode para garantir que existem endereços IP suficientes para os nós no conjunto de nós. Esta validação usa a associação estrita de etiquetas, em que uma ClusterCIDRConfig é associada a um conjunto de nós através de um seletor de nós. Pode ignorar esta validação definindo a anotação baremetal.cluster.gke.io/skip-pod-cidr-size-check no CR do cluster ou ao nível do NodePool.

  1. Crie um recurso ClusterCIDRConfig.

    Este recurso é associado a um NodePool específico através de um seletor de nós.

    apiVersion: networking.gke.io/v1alpha1
    kind: ClusterCIDRConfig
    metadata:
      name: my-nodepool-cidr-config
    spec:
      nodeSelector:
        matchLabels:
          baremetal.cluster.gke.io/node-pool: NODE_POOL_NAME
      # ... other CIDR config fields (e.g., podCIDR, perNodeMaskSize)
    

    Substitua NODE_POOL_NAME pelo nome do seu NodePool.

  2. Crie o node pool com a densidade de pods substituída.

    Especifique o campo nodeConfigOverride na definição NodePool. Este campo contém a configuração podDensity.

    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: NODEPOOL_NAME
      namespace: CLUSTER_NAMESPACE
    spec:
      cluster: CLUSTER_NAME
      nodeConfigOverride:
        podDensity:
          maxPodsPerNode: MAX_PODS_PER_NODE
      # ... other NodePoolSpec fields like nodeCount, taints, labels etc. ...
    

    Substitua o seguinte:

    • NODEPOOL_NAME: o nome do recurso do conjunto de nós cujo valor máximo de pods por nó está a substituir.

    • CLUSTER_NAMESPACE: o espaço de nomes do cluster onde reside o node pool.

    • CLUSTER_NAME: o nome do cluster onde substitui as definições do node pool.

    • MAX_PODS_PER_NODE: o número máximo de pods que pode executar num único nó no conjunto de nós especificado.

O que se segue?