Ajuste de escala automático de grupos de nodos


En esta página, se describe cómo usar el escalador automático para grupos de nodo de usuario único.

Si usas nodos de usuario único para tus cargas de trabajo, puedes usar el escalador automático de grupos de nodos a fin de administrar automáticamente los tamaños de tus grupos de nodos. Configura el ajuste de escala automático en un grupo de nodos mientras creas el grupo de nodos o después de crearlo. El escalador automático de grupos de nodos puede ayudarte a administrar de forma automática el tamaño de los grupos de nodos de usuario único de la siguiente manera:

  • Aumenta el tamaño de un grupo de nodos cuando no hay capacidad suficiente para otra instancia de máquina virtual (VM) en el grupo. Una vez que el escalador automático aumenta el tamaño del grupo de nodos, las VM se programan con transparencia.

  • Disminuye el tamaño de un grupo de nodos cuando hay nodos vacíos, lo que evita que pagues por los nodos de usuario único que no utilizas.

En el siguiente diagrama, se muestra lo siguiente:

  1. El escalador automático de grupos de nodos escala horizontalmente estos grupos agregando un nodo nuevo en respuesta a la implementación de una VM en un grupo de nodos que no tiene nodos vacíos.

  2. El escalador automático de grupos de nodos reduce la escala de estos grupos mediante la eliminación de un nodo vacío de un grupo de nodos de usuario único.

El escalador automático de grupos de nodos administra el tamaño del grupo de nodos.

Modos del escalador automático

De forma predeterminada, el escalador automático no está habilitado en los grupos de nodos. Cuando no está habilitado, debes administrar de forma manual el tamaño de los grupos de nodos. Si habilitas el escalador automático en un grupo de nodos, puedes especificar que aumente y disminuya el tamaño del grupo de nodos (que escale horizontal y verticalmente) o que solo aumente el tamaño del grupo (que solo escale horizontalmente).

Escala horizontal y vertical

En este modo, el escalador automático de grupos de nodos aumenta (escala horizontalmente) y disminuye (escala verticalmente) el tamaño de los grupos de nodos. En este modo, debes especificar un tamaño máximo y uno mínimo para el grupo de nodos. El escalador automático no escalará el tamaño del grupo de nodos por encima del valor máximo especificado ni por debajo del mínimo.

El escalador automático escala horizontalmente el tamaño de un grupo de nodos cuando hay una solicitud de programación de una VM en un grupo de nodos que no tiene capacidad para otra VM. En cambio, escala verticalmente el tamaño de un grupo de nodos cuando hay un nodo vacío en el grupo.

Solo escala horizontal

Con este modo, el escalador automático aumenta el tamaño del grupo de nodos en respuesta a las solicitudes de programación de VM, pero no quita los nodos vacíos de los grupos de nodos. Google recomienda este modo para las cargas de trabajo que aumentan de forma monotónica o las que requieren afinidad del servidor físico, como las cargas de trabajo de BYOL, que requieren que las licencias residan en el mismo servidor físico.

Debes usar este modo si tus grupos de nodos están configurados con la política de mantenimiento de migración dentro del grupo de nodos.

Rango de tamaño de un grupo de nodos

Cuando habilitas el escalador automático, debes establecer el rango de tamaño del grupo de nodos mediante la especificación de un valor mínimo y uno máximo para el tamaño del grupo.

Si no especificas un valor de tamaño mínimo, el escalador automático lo establece en cero (0). Si ingresas un valor específico para el tamaño mínimo, debe ser un número entero mayor o igual que 0, y debe ser menor o igual que el tamaño máximo.

Debes especificar un valor de tamaño máximo del grupo de nodos. El valor debe ser un número entero mayor o igual que 0 y menor o igual que 100, que es el tamaño máximo permitido para un grupo de nodos de usuario único, y debe ser mayor o igual que el valor mínimo especificado.

Para adaptar las cargas de trabajo que podrían exceder el tamaño máximo de 100 de un grupo de nodos, crea varios grupos de nodos con etiquetas de afinidad coincidentes, por ejemplo, workload:in:my-autoscaled-node-groups. Luego, programa las VM mediante esa etiqueta de afinidad y habilita el ajuste de escala automático en cada grupo para crear un conjunto de grupos de nodos con escalamiento dinámico.

Disponibilidad

Solo puedes usar el escalador automático de nodos de usuario único en las regiones que admitan estos nodos.

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Habilita el escalador automático de grupos de nodos

Configura el ajuste de escala automático en un grupo de nodos nuevo.

gcloud

En el siguiente ejemplo, se muestra cómo usar el comando node-groups create para habilitar el escalador automático cuando creas un grupo de nodos. Para agregar un escalador automático a un grupo de nodos existente, usa el comando node-groups update.

gcloud compute sole-tenancy node-groups create group-name \
    --node-template template-name \
    --target-size size \
    --maintenance-policy maintenance-policy \
    --zone zone \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Reemplaza lo siguiente:

  • group-name: el nombre del grupo de nodos que se creará.
  • template-name: el nombre de la plantilla de nodo a partir de la que se creará el grupo de nodos.
  • size: la cantidad inicial de nodos objetivo en el grupo de nodos.
  • maintenance-policy: Especifica si se migran las VM y si se reinician durante los eventos de mantenimiento del host. Configúrala en uno de los siguientes valores:
    • default: las VM migran en vivo a un nodo nuevo.
    • migrate-within-node-group: las VM migran en vivo a otro nodo en el grupo de nodos.
    • restart-in-place: las VM se reiniciarán en el mismo nodo después de que finalicen debido a un evento de mantenimiento.
  • zone: la zona en la que se creará el grupo de nodos.
  • mode: el modo para el escalador automático en este grupo de nodos. Configúralo en uno de los siguientes valores:
    • off: inhabilita el escalador automático.
    • on: habilita el escalamiento y el escalamiento horizontal.
    • only-scale-out: habilita solo el escalamiento horizontal. Debes usar este modo si tus grupos de nodos están configurados para reiniciar sus VM alojadas en servidores mínimos.
  • max-nodes: el tamaño máximo del grupo de nodos. Configúralo en un valor inferior o igual a 100 y superior o igual a min-nodes.
  • min-nodes: el tamaño mínimo del grupo de nodos; debe ser un valor entero inferior o igual a max-nodes. El valor predeterminado es 0.

REST

En el siguiente ejemplo, se muestra cómo usar el comando nodeGroups.insert para habilitar el escalador automático cuando creas un grupo de nodos. Para agregar un escalador automático a un grupo de nodos existente, usa el comando nodeGroups.patch.

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/nodeGroups?initialNodeCount=initial-node-count

  {
    "name": "group-name",
    "nodeTemplate": "template-name",
    "autoscalingPolicy": {
      "mode": "mode",
      "min_nodes": min-nodes,
      "max_nodes": max-nodes
    }
    "maintenancePolicy": maintenance-policy
  }

Reemplaza lo siguiente:

  • project-id: el ID del proyecto al que se agregará un grupo de nodos con un escalador automático.
  • zone: la zona en la que se creará el grupo de nodos nuevo.
  • initial-node-count: es obligatorio para crear el grupo de nodos. Esto especifica la cantidad inicial de nodos en el grupo de nodos. Si el valor de min-nodes es mayor que el recuento de nodos inicial, el tamaño del grupo de nodos se escala horizontalmente al valor de min-nodes.
  • group-name: el nombre del grupo de nodos nuevo.
  • template-name: el nombre de la plantilla de nodo a partir de la que se creará el grupo de nodos.
  • mode: el modo para el escalador automático en este grupo de nodos. Configúralo en uno de los siguientes valores:
    • OFF: inhabilita el escalador automático.
    • ON: habilita el escalamiento y el escalamiento horizontal.
    • ONLY_SCALE_OUT: habilita solo el escalamiento horizontal. Debes usar este modo si tus grupos de nodos están configurados para reiniciar sus VM alojadas en servidores mínimos.
  • max-nodes: el tamaño máximo del grupo de nodos. Configúralo en un valor inferior o igual a 100 y superior o igual a min-nodes.
  • min-nodes: el tamaño mínimo del grupo de nodos; debe ser un valor entero inferior o igual a max-nodes. El valor predeterminado es 0.
  • maintenance-policy: Especifica si se migran las VM y si se reinician durante los eventos de mantenimiento del host. Establece esto en uno de los siguientes valores:
    • DEFAULT: Las VM migran en vivo a un nodo nuevo.
    • MIGRATE_WITHIN_NODE_GROUP: las VM migran en vivo a otro nodo en el grupo de nodos.
    • RESTART_IN_PLACE: Las VM se reiniciarán en el mismo nodo después de que finalicen debido a un evento de mantenimiento.

Actualiza la configuración del escalador automático

Para cambiar la configuración del escalador automático en un grupo de nodos, actualiza el modo escalador automático o actualiza el tamaño mínimo y máximo del grupo de nodos.

gcloud

En el siguiente ejemplo, se muestra cómo usar el comando node-groups update para cambiar el modo del escalador automático en un grupo de nodos.

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode mode \
    --max-nodes max-nodes \
    --min-nodes min-nodes

Reemplaza lo siguiente:

  • name: nombre del grupo de nodos en el que se cambia el modo de escalador automático.
  • mode: el modo para el escalador automático en este grupo de nodos. Configúralo en uno de los siguientes valores:
    • off: inhabilita el escalador automático.
    • on: habilita el escalamiento y el escalamiento horizontal.
    • only-scale-out: habilita solo el escalamiento horizontal. Debes usar este modo si tus grupos de nodos están configurados para reiniciar sus VM alojadas en servidores mínimos.
  • max-nodes: el tamaño máximo del grupo de nodos. Configúralo en un valor inferior o igual a 100 y superior o igual a min-nodes.
  • min-nodes: el tamaño mínimo del grupo de nodos; debe ser un valor entero inferior o igual a max-nodes. El valor predeterminado es 0.

REST

En el siguiente ejemplo, se muestra cómo usar el comando nodeGroups.patch para cambiar el modo de un escalador automático en un grupo de nodos.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode",
    "minSize": min-nodes,
    "maxSize": max-nodes
  }
}

Reemplaza lo siguiente:

  • project-id: el ID del proyecto que contiene el grupo de nodos para el que se cambiará el modo de escalador automático.
  • group-zone: la zona que contiene el grupo de nodos para el que se cambiará el modo de escalador automático.
  • group-name: el nombre del grupo de nodos para el que se cambiará el modo de escalador automático.
  • template-name: el nombre de la plantilla de nodo a partir de la cual se creó el grupo de nodos.
  • mode: el modo para el escalador automático en este grupo de nodos. Establécela en uno de los siguientes valores:

    • OFF: inhabilita el escalador automático.
    • ON: habilita el escalamiento y el escalamiento horizontal.

    • ONLY_SCALE_OUT: habilita solo el escalamiento horizontal. Debes usar este modo si tus grupos de nodos están configurados con la política de mantenimiento de migración dentro del grupo de nodos.

  • max-nodes: el tamaño máximo del grupo de nodos. Configúralo en un valor inferior o igual a 100 y superior o igual a min-nodes.

  • min-nodes: el tamaño mínimo del grupo de nodos; debe ser un valor entero inferior o igual a max-nodes. El valor predeterminado es 0.

Actualiza manualmente el tamaño de los grupos de nodos con ajuste de escala automático

Cuando el escalador automático está habilitado, el tamaño del grupo de nodos se administra automáticamente, pero puedes programar o quitar las VM de ese grupo de nodos para actualizar el tamaño del grupo de forma manual y efectiva.

Para disminuir manualmente el tamaño de un grupo de nodos con ajuste de escala automático, borra las VM del nodo hasta que el nodo esté vacío. Cuando el nodo está vacío, el escalador automático quita el nodo vacío, lo que disminuye el tamaño del grupo de nodos.

Para aumentar manualmente el tamaño de un grupo de nodos con ajuste de escala automático, configura el tamaño mínimo del grupo en un valor mayor que el tamaño actual. Cuando el tamaño mínimo de un grupo se configura en un valor mayor que el tamaño actual, el escalador automático aumenta el tamaño del grupo al tamaño mínimo especificado recientemente.

Cuando los grupos de nodos solo se configuran para escalar horizontalmente, el escalador automático administra de forma automática los aumentos de tamaño del grupo y también inhabilita los aumentos manuales del tamaño del grupo. Con esta configuración, puedes reducir el tamaño de un grupo si quitas las VM de un nodo hasta que esté vacío y, luego, puedes quitar el nodo vacío.

Inhabilita el escalador automático

Cuando ya no necesites usar el escalador automático para administrar automáticamente los tamaños de tus grupos de nodos, o si necesitas administrar de forma manual los tamaños de tus grupos de nodos, inhabilita el escalador automático.

gcloud

gcloud compute sole-tenancy node-groups update name \
    --autoscaler-mode OFF

Reemplaza name con el nombre del grupo de nodos del que se quitará la política de ajuste de escala automático.

REST

En el siguiente ejemplo, se muestra cómo usar el comando nodeGroups.patch para desactivar un escalador automático en un grupo de nodos.

PATCH https://compute.googleapis.com/compute/beta/projects/project-id/zones/group-zone/nodeGroups/group-name

{
  "nodeTemplate": "template-name",
  "autoscalingPolicy": {
    "mode": "mode"
  }
}

Reemplaza lo siguiente:

  • project-id: el ID del proyecto que contiene el grupo de nodos para el que se cambiará el modo de escalador automático.
  • group-zone: la zona que contiene el grupo de nodos para el que se cambiará el modo de escalador automático.
  • group-name: el nombre del grupo de nodos para el que se cambiará el modo de escalador automático.
  • template-name: el nombre de la plantilla de nodo a partir de la cual se creó el grupo de nodos.
  • mode: el modo para el escalador automático en este grupo de nodos. Configúralo en OFF para inhabilitar el escalador automático en este grupo de nodos.

Visualiza la actividad del escalador automático

En la consola de Google Cloud, ve cómo el escalador automático ajusta los tamaños de tus grupos de nodos. En la consola de Google Cloud, se muestra el tamaño actual del grupo de nodos y, si el escalador automático está ajustando el tamaño del grupo, también puedes ver el tamaño objetivo del grupo de nodos.

Console

  1. En la consola de Google Cloud, ve a la página Nodos de usuario único.

    Ir a Nodos de usuario único

  2. Haz clic en Grupos de nodos.

  3. Ve la cantidad de nodos que tiene cada grupo y, si Compute Engine escala el grupo de nodos, también puedes ver la cantidad objetivo de nodos.

¿Qué sigue?