Ajuste de escala automático de un clúster


En esta página, se muestra cómo realizar el ajuste de escala automático en los clústeres de Google Kubernetes Engine (GKE) estándar. Para obtener más información sobre cómo funciona el escalador automático de clústeres, consulta Escalador automático de clústeres.

Con los clústeres de Autopilot, no tienes que preocuparte por aprovisionar nodos o administrar los grupos de nodos, ya que los grupos de nodos se aprovisionan automáticamente mediante el aprovisionamiento automático de nodos, y se escalan de forma automática para cumplir con los requisitos de tus cargas de trabajo.

Usa el escalador automático de clústeres

En las siguientes secciones, se explica cómo usar el escalador automático de clústeres.

Crea un clúster con ajuste de escala automático

gcloud

Para crear un clúster con ajuste de escala automático habilitado, usa la marca --enable-autoscaling y especifica --min-nodes y --max-nodes como en el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --enable-autoscaling \
    --num-nodes NUM_NODES \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES \
   [--region COMPUTE_REGION | --zone COMPUTE_ZONE]

Reemplaza lo siguiente:

  • CLUSTER_NAME: es el nombre del clúster que se creará.
  • NUM_NODES: es la cantidad de nodos que se crearán en cada ubicación.
  • MIN_NODES: es la cantidad mínima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • MAX_NODES: es la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • COMPUTE_REGION: si creas un clúster regional, especifica la región en la que deseas crear el clúster.
  • COMPUTE_ZONE: si creas un clúster zonal, especifica la zona en la que deseas crear el clúster.

Ejemplo: Crea un clúster con ajuste de escala automático de nodos habilitado

El siguiente comando crea un clúster con 30 nodos. El ajuste de escala automático de nodos está habilitado y cambia la cantidad de nodos según la carga del clúster. El escalador automático de clústeres puede reducir el tamaño del grupo de nodos predeterminado a 15 nodos o aumentar el grupo de nodos a un máximo de 50 nodos.

gcloud container clusters create my-cluster --enable-autoscaling \
    --num-nodes 30 \
    --min-nodes 15 --max-nodes 50 \
    --zone us-central1-c

Console

Para crear un clúster nuevo en el que el grupo de nodos predeterminado tenga habilitado el ajuste de escala automático, haz lo siguiente:

  1. Ve a la página Google Kubernetes Engine en Cloud Console.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura tu clúster como desees.

  4. En el panel de navegación, en Grupos de nodos, haz clic en default-pool.

  5. Selecciona la casilla de verificación Habilitar ajuste de escala automático.

  6. Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.

  7. Haz clic en Crear.

Agrega un grupo de nodos con ajuste de escala automático

gcloud

Para agregar un grupo de nodos con ajuste de escala automático a un clúster existente, usa el siguiente comando:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --enable-autoscaling \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES \
    --zone COMPUTE_ZONE

Reemplaza lo siguiente:

  • POOL_NAME: es el nombre del grupo de nodos deseado.
  • CLUSTER_NAME: es el nombre del clúster en el que se creó el grupo de nodos.
  • MIN_NODES: es la cantidad mínima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • MAX_NODES: es la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • COMPUTE_ZONE: la zona en la que el escalador automático debe crear nodos nuevos.

Ejemplo: Agrega un grupo de nodos con el ajuste de escala automático de nodos habilitado

El siguiente comando crea un grupo de nodos con nombre de tamaño 3 (predeterminado), con ajuste de escala automático del nodo basado en la carga del clúster que escala el grupo de nodos a un máximo de 5 nodos y un mínimo de 1:

gcloud container node-pools create my-node-pool \
    --cluster my-cluster \
    --enable-autoscaling \
    --min-nodes 1 --max-nodes 5 \
    --zone us-central1-c

Console

Para agregar un grupo de nodos con ajuste de escala automático a un clúster existente, haz lo siguiente:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura el grupo de nodos como desees.

  5. En Tamaño, selecciona la casilla de verificación Habilitar ajuste de escala automático.

  6. Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.

  7. Haga clic en Crear.

Habilita el ajuste de escala automático para un grupo de nodos existente

gcloud

A fin de habilitar el ajuste de escala automático para un grupo de nodos existente, usa la marca --enable-autoscaling como en el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoscaling \
    --node-pool POOL_NAME \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES \
    [--region COMPUTE_REGION | --zone COMPUTE_ZONE]

Reemplaza lo siguiente:

  • CLUSTER_NAME: es el nombre del clúster que se actualizará.
  • POOL_NAME: es el nombre del grupo de nodos deseado. Si solo tienes un grupo de nodos, proporciona default-pool como valor.
  • MIN_NODES: es la cantidad mínima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • MAX_NODES: es la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado.
  • COMPUTE_REGION: Para clústeres regionales, especifica la región del clúster.
  • COMPUTE_ZONE: Para clústeres zonales, especifica la zona.

Console

Para habilitar el ajuste de escala automático en un grupo de nodos existente, sigue estos pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en la pestaña Nodos.

  4. En Grupos de nodos, haz clic en el nombre del grupo de nodos que deseas modificar y, luego, en Editar.

  5. En Tamaño, selecciona la casilla de verificación Habilitar ajuste de escala automático.

  6. Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.

  7. Haz clic en Guardar.

Inhabilita el ajuste de escala automático para un grupo de nodos existente

gcloud

A fin de inhabilitar el ajuste de escala automático para un grupo de nodos específico, usa la marca --no-enable-autoscaling como en el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-autoscaling \
    --node-pool POOL_NAME \
   [--region COMPUTE_REGION | --zone COMPUTE_ZONE]

Reemplaza lo siguiente:

  • CLUSTER_NAME: es el nombre del clúster que se actualizará.
  • POOL_NAME: es el nombre del grupo de nodos deseado.
  • COMPUTE_REGION: Para clústeres regionales, especifica la región del clúster.
  • COMPUTE_ZONE: Para clústeres zonales, especifica la zona.

El tamaño del clúster se establece en el tamaño del grupo de nodos predeterminado actual del clúster, que se puede actualizar de forma manual.

Console

Para inhabilitar el ajuste de escala automático en un grupo de nodos específico, sigue estos pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en la pestaña Nodos.

  4. En Grupos de nodos, haz clic en el nombre del grupo de nodos que deseas modificar y, luego, en Editar.

  5. En Tamaño, desmarca la casilla de verificación Habilitar ajuste de escala automático.

  6. Haz clic en Guardar.

Cambia el tamaño de un grupo de nodos

En el caso de los clústeres con ajuste de escala automático habilitado, el escalador automático de clústeres cambia el tamaño de los grupos de nodos de forma automática dentro de los límites especificados por los valores de tamaño mínimo (--min-nodes) y tamaño máximo (--max-nodes). No puedes cambiar el tamaño de un grupo de nodos de forma manual modificando estos valores.

Si deseas cambiar de forma manual el tamaño de un grupo de nodos en un clúster que tiene habilitado el ajuste de escala automático, haz lo siguiente:

  1. Inhabilita el ajuste de escala automático en el grupo de nodos.
  2. Cambia el tamaño del clúster de forma manual.
  3. Vuelve a habilitar el ajuste de escala automático y especifica el tamaño mínimo y máximo del grupo de nodos.

Soluciona problemas

Consulta la siguiente información de solución de problemas para el escalador automático del clúster:

  • Es posible que estés experimentando una de las limitaciones del escalador automático de clústeres.
  • Si tienes problemas para reducir la escala de tu clúster, consulta Programación e interrupción de Pods. Es posible que debas agregar un PodDisruptionBudget para los Pods kube-system. A fin de obtener más información sobre cómo agregar de forma manual un PodDisruptionBudget para los Pods kube-system, consulta las Preguntas frecuentes sobre el escalador automático de clústeres de Kubernetes.
  • Cuando reduce la escala, el escalador automático del clúster respeta las reglas de programación y expulsión establecidas para los pods. Estas restricciones pueden impedir que el escalador automático borre un nodo. Puede que se impida la eliminación de un nodo si este contiene un pod con alguna de las siguientes condiciones:
    • Pods con reglas de afinidad o antiafinidad que impiden las reprogramaciones
    • Pods con almacenamiento local
    • Pods que no están bajo la administración de un Controlador, tal como una Implementación, un StatefulSet, un trabajo o un ReplicaSet.

Para obtener más información sobre el escalador automático del clúster y la prevención de interrupciones, consulta las siguientes dudas en las Preguntas frecuentes sobre el escalador automático de clústeres de Kubernetes:

¿Qué sigue?