Anular la densidad de pods de un grupo de nodos

En este documento se describe cómo especificar la densidad de pods de grupos de nodos concretos de tu clúster, lo que anula el ajuste de todo el clúster. Aunque las configuraciones a nivel de nodo suelen aplicarse a todo el clúster, puedes configurar la densidad de pods en un grupo de nodos específico. Si anulas la densidad de pods de grupos de nodos específicos, puedes mejorar la eficiencia de los recursos. Esta función es útil para los grupos de nodos especializados, como los nodos con GPUs, en los que los requisitos específicos de las cargas de trabajo o la asignación eficiente de direcciones IP requieren un valor diferente para el número máximo de pods por nodo.

La capacidad de anular el ajuste de densidad de pods de todo el clúster está disponible en los clústeres con la versión 1.33 o posterior.

Antes de empezar

La capacidad de especificar la densidad de pods en los grupos de nodos solo está disponible en los clústeres con una de las siguientes configuraciones de red:

Configurar la densidad de pods de un grupo de nodos

Configura la densidad de los pods en la especificación NodePool para anular los ajustes del nivel de clúster. Esta configuración es opcional. El sistema deriva el tamaño del intervalo CIDR asignado al nodo del parámetro "Máximo de pods por nodo".

La configuración de maxPodsPerNode es inmutable después de crear el grupo de nodos. El sistema valida el ajuste maxPodsPerNode para asegurarse de que haya suficientes direcciones IP para los nodos del pool de nodos. Esta validación usa un enlace de etiquetas estricto, donde a ClusterCIDRConfig se vincula a un grupo de nodos mediante un selector de nodos. Puedes omitir esta validación configurando la anotación baremetal.cluster.gke.io/skip-pod-cidr-size-check en el CR de clúster o a nivel de NodePool.

  1. Crea un ClusterCIDRConfig recurso.

    Este recurso se vincula a un NodePool específico mediante un selector de nodos.

    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)
    

    Sustituye NODE_POOL_NAME por el nombre de tu NodePool.

  2. Crea el grupo de nodos con la densidad de pods sustituida.

    Especifica el campo nodeConfigOverride en la definición de NodePool. Este campo contiene la configuración de 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. ...
    

    Haz los cambios siguientes:

    • NODEPOOL_NAME: el nombre del recurso del grupo de nodos cuyo valor máximo de pods por nodo vas a anular.

    • CLUSTER_NAMESPACE: el espacio de nombres del clúster en el que reside el grupo de nodos.

    • CLUSTER_NAME: el nombre del clúster en el que anulas la configuración del grupo de nodos.

    • MAX_PODS_PER_NODE: número máximo de pods que puedes ejecutar en un solo nodo del grupo de nodos especificado.

Siguientes pasos