Substituir a densidade de pods em um pool de nós

Neste documento, descrevemos como especificar a densidade de pods para pools de nós individuais no cluster, substituindo a configuração em todo o cluster. Embora as configurações no nível do nó geralmente se apliquem a todo o cluster, é possível configurar a densidade de pods em um pool de nós específico. Substituir a densidade de pods em pools de nós específicos pode melhorar a eficiência dos recursos. Essa capacidade é útil para pools de nós especializados, como nós com GPUs, em que requisitos específicos de carga de trabalho ou alocaçã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 configuração de densidade de pods em todo o cluster está disponível para clusters na versão 1.33 e mais recentes.

Antes de começar

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

Configurar a densidade de pods para um pool de nós

Configure a densidade de pods na especificação NodePool para substituir as configurações no nível do cluster. Essa configuração é opcional. O sistema deriva o tamanho do intervalo CIDR atribuído ao nó do parâmetro "Pods máximos por nó".

A configuração maxPodsPerNode é imutável após a criação do pool de nós. O sistema valida a configuração maxPodsPerNode para garantir endereços IP suficientes para os nós no pool de nós. Essa validação usa vinculação estrita de identificadores, em que um ClusterCIDRConfig se vincula a um pool de nós usando um seletor de nós. Para pular essa validação, defina a anotação baremetal.cluster.gke.io/skip-pod-cidr-size-check no CR do cluster ou no nível do NodePool.

  1. Criar um recurso ClusterCIDRConfig.

    Esse recurso se vincula a um NodePool específico usando 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 pool de nós com a densidade de pods substituída.

    Especifique o campo nodeConfigOverride na definição do NodePool. Esse 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:

    • NODEPOOL_NAME: o nome do recurso do pool de nós cujo valor máximo de pods por nó você está substituindo.

    • CLUSTER_NAMESPACE: o namespace do cluster em que o pool de nós está localizado.

    • CLUSTER_NAME: o nome do cluster em que você substitui as configurações do pool de nós.

    • MAX_PODS_PER_NODE: o número máximo de pods que você pode executar em um único nó no pool de nós especificado.

A seguir