Anula la densidad de Pods para un grupo de nodos

En este documento, se describe cómo especificar la densidad de Pods para grupos de nodos individuales en tu clúster, lo que anula el parámetro de configuración de todo el clúster. Si bien las configuraciones a nivel del nodo suelen aplicarse a todo el clúster, puedes configurar la densidad de Pods en un grupo de nodos específico. Anular la densidad de Pods para grupos de nodos específicos puede mejorar la eficiencia de los recursos. Esta capacidad es útil para los grupos de nodos especializados, como los nodos con GPUs, en los que los requisitos específicos de la carga de trabajo o la asignación eficiente de direcciones IP requieren un valor diferente para la cantidad máxima de Pods por nodo.

La capacidad de anular el parámetro de configuración de densidad de Pods en todo el clúster está disponible para los clústeres de la versión 1.33 y posteriores.

Antes de comenzar

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

Configura la densidad de Pods para un grupo de nodos

Configura la densidad del Pod dentro de la especificación NodePool para anular la configuración a nivel del clúster. Esta configuración es opcional. El sistema deriva el tamaño del rango de CIDR asignado al nodo a partir del parámetro de cantidad máxima de Pods por nodo.

La configuración de maxPodsPerNode es inmutable después de la creación del grupo de nodos. El sistema valida el parámetro de configuración de maxPodsPerNode para garantizar que haya suficientes direcciones IP para los nodos del grupo de nodos. Esta validación usa una vinculación estricta de etiquetas, en la que un ClusterCIDRConfig se vincula a un grupo de nodos con un selector de nodos. Puedes omitir esta validación si estableces la anotación baremetal.cluster.gke.io/skip-pod-cidr-size-check en el CR de Cluster o a nivel de NodePool.

  1. Crea un recurso ClusterCIDRConfig

    Este recurso se vincula a un NodePool específico a través de 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)
    

    Reemplaza NODE_POOL_NAME por el nombre de tu NodePool.

  2. Crea el grupo de nodos con la densidad de Pods anulada.

    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. ...
    

    Reemplaza lo siguiente:

    • NODEPOOL_NAME: Es el nombre del recurso del grupo de nodos cuyo valor máximo de Pods por nodo anulas.

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

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

    • MAX_PODS_PER_NODE: Es la cantidad máxima de Pods que puedes ejecutar en un solo nodo del grupo de nodos especificado.

¿Qué sigue?