Escalar una instancia

Puedes escalar una instancia de AlloyDB para ajustar la capacidad y el rendimiento de tu clúster y adaptarlo a los cambios en las demandas de las cargas de trabajo. El escalado ayuda a gestionar los costes y facilita la gestión de los picos de tráfico.

Puedes escalar las instancias de AlloyDB de varias formas, tal como se resume a continuación.

Tipo de escalado Método Automatización Instancias principales Instancias de grupos de lectura
Vertical Cambiar el tipo de máquina Manual Compatible Compatible
Horizontal Cambiar el número de nodos Manual y automática No compatible Compatible

Antes de empezar

  • El Google Cloud proyecto que estés usando debe tener habilitado el acceso a AlloyDB.
  • Debes tener uno de estos roles de gestión de identidades y accesos en el Google Cloud proyecto que estés usando:
    • roles/alloydb.admin (el rol de gestión de identidades y accesos predefinido de AlloyDB)
    • roles/owner (el rol básico de gestión de identidades y accesos de propietario)
    • roles/editor (el rol básico de gestión de identidades y accesos Editor)

    Si no tienes ninguno de estos roles, ponte en contacto con el administrador de tu organización para solicitar acceso.

Escalado manual

En esta sección se describen los métodos manuales para escalar las instancias de AlloyDB. Por ejemplo, puedes escalar verticalmente una instancia cambiando su tipo de máquina y escalar horizontalmente una instancia de grupo de lectura cambiando su número de nodos.

Escalar el tipo de máquina de una instancia

Puedes escalar verticalmente las instancias principales y del grupo de lectura cambiando el tipo de máquina de la instancia, lo que modifica su vCPU y su RAM.

Consola

  1. En la Google Cloud consola, ve a la página Clusters.

    Ir a Clústeres

  2. Haga clic en un clúster de la columna Nombre del recurso.

  3. En la página Resumen, ve a la sección Instancias de tu clúster y haz clic en Editar principal o Editar grupo de lectura.

  4. Selecciona una de las siguientes series de máquinas:

    • C4A: la serie de máquinas basadas en Google Axion, disponible en versión preliminar.
    • N2: la serie de máquinas predeterminada basada en x86.
    • C4: la serie de máquinas con procesadores escalables Intel Xeon y Titanium.
  5. Selecciona un tipo de máquina.

    • C4A admite 1, 4, 8, 16, 32, 48, 64 y 72 tipos o formas de máquinas.
    • N2 admite 2, 4, 8, 16, 32, 64, 96 y 128 tipos o formas de máquinas.
    • C4 admite 4, 8, 16, 24, 32, 48, 96, 144, 192 y 288 tipos o formas de máquinas.

      Para obtener más información sobre el uso de la serie de máquinas basada en Axion C4A, incluido el tipo de máquina de 1 vCPU, consulta Consideraciones al usar la serie de máquinas basada en Axion C4A.

  6. Haz clic en Actualizar instancia o Actualizar grupo de lectura.

gcloud

Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.

Usa el comando gcloud alloydb instances update para cambiar el tipo de máquina de la instancia principal.

gcloud alloydb instances update INSTANCE_ID \
--cpu-count=CPU_COUNT \
--machine-type=MACHINE_TYPE \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID

Haz los cambios siguientes:

  • INSTANCE_ID: el ID de la instancia que quieres actualizar.

  • CPU_COUNT: número de vCPUs N2 que quieres asignar a la instancia. N2 es el valor predeterminado. Entre los valores válidos se incluyen los siguientes:

    • 2: 2 vCPUs, 16 GB de RAM
    • 4: 4 vCPUs, 32 GB de RAM
    • 8: 8 vCPUs, 64 GB de RAM
    • 16: 16 vCPUs y 128 GB de RAM
    • 32: 32 vCPUs, 256 GB de RAM
    • 64: 64 vCPUs, 512 GB de RAM
    • 96: 96 vCPUs, 768 GB de RAM
    • 128: 128 vCPUs, 864 GB de RAM

  • MACHINE_TYPE: opcional. Selecciona un tipo de máquina de la lista de tipos admitidos, como n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Para obtener más información, consulta Elegir un tipo de máquina de AlloyDB.

    Si usas MACHINE_TYPE y CPU_COUNT juntos, los valores de CPU_COUNT y MACHINE_TYPE deben coincidir. De lo contrario, se producirá un error.

  • REGION_ID: la región en la que se coloca la instancia.

  • CLUSTER_ID: el ID del clúster en el que se coloca la instancia.

  • PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.

Si el comando devuelve un mensaje de error que incluye la frase invalid cluster state MAINTENANCE, significa que el clúster está en proceso de mantenimiento rutinario. De esta forma, se inhabilitará temporalmente la reconfiguración de la instancia. Vuelve a ejecutar el comando cuando el clúster vuelva al estado READY. Para comprobar el estado del clúster, consulta Ver detalles del clúster.

Acelerar las actualizaciones de tipos de máquinas

Para actualizar el tipo de máquina más rápido, usa la opción FORCE_APPLY con el comando gcloud beta alloydb instances update.

 gcloud beta alloydb instances update INSTANCE_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID
  --update-mode=FORCE_APPLY
  • La instancia experimenta un tiempo de inactividad de aproximadamente un minuto.

  • El tipo de máquina de una instancia cambia al cabo de entre 10 y 15 minutos.

Escalar el número de nodos de una instancia de grupo de lectura

AlloyDB te permite escalar el número de nodos de una instancia de grupo de lectura sin que haya ningún tiempo de inactividad a nivel de instancia. Si aumentas el número de nodos, las conexiones de cliente no se verán afectadas.

Cuando reduces el número de nodos, los clientes conectados a un nodo que se está cerrando pueden volver a conectarse a los demás nodos mediante el endpoint de la instancia.

Consola

  1. En la Google Cloud consola, ve a la página Clusters.

    Ir a Clústeres

  2. Haga clic en un clúster de la columna Nombre del recurso.

  3. En la página Overview (Resumen), vaya a la sección Instances in your cluster (Instancias de su clúster) y haga clic en Edit read pool (Editar grupo de lectura).

  4. En el campo Número de nodos, introduce el número de nodos.

  5. Haz clic en Actualizar grupo de lectura.

gcloud

Para usar la CLI de gcloud, puedes instalar e inicializar Google Cloud CLI o usar Cloud Shell.

Usa el comando gcloud alloydb instances update para cambiar el número de nodos de una instancia de grupo de lectura.

gcloud alloydb instances update INSTANCE_ID \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID: el ID de la instancia del grupo de lectura.

  • NODE_COUNT: el número de nodos de la instancia del pool de lectura. Especifica un número entre 1 y 20, ambos incluidos. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias del grupo de lectura de un clúster.

  • REGION_ID: la región en la que se encuentra la instancia.

  • CLUSTER_ID: el ID del clúster en el que se encuentra la instancia.

  • PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.

Si el comando devuelve un mensaje de error que incluye la frase invalid cluster state MAINTENANCE, significa que el clúster está en proceso de mantenimiento rutinario. De esta forma, se inhabilitará temporalmente la reconfiguración de la instancia. Vuelve a ejecutar el comando cuando el clúster vuelva al estado READY. Para consultar el estado del clúster, consulta Ver detalles del clúster.

Autoescalar una instancia de grupo de lectura

El autoescalado de grupos de lectura de AlloyDB te permite cambiar de forma automática y adaptativa el número de nodos de lectura en función del uso de recursos en tiempo real. De esta forma, podrás gestionar los cambios en el uso y reducir los gastos.

Puedes configurar el escalado automático con las siguientes políticas:

  • Basado en el uso de CPU: escala el número de nodos en función de un uso de CPU objetivo.
  • Basado en la programación: ajusta el número de nodos a un recuento mínimo durante un periodo determinado.

Puedes usar estas políticas juntas. Cuando hay varias políticas activas, la herramienta de escalado automático selecciona la que recomienda el mayor número de nodos.

Limitaciones

La herramienta de escalado automático del grupo de lectura tiene las siguientes limitaciones:

  • Distribución de la carga en conexiones de larga duración: para establecer una distribución uniforme del tráfico y aprovechar al máximo la capacidad añadida del ajuste de escala automático, te recomendamos que crees nuevas conexiones de cliente. El escalador automático no finaliza las conexiones de larga duración cuando añade nodos, por lo que el tráfico de esas conexiones no se dirige a los nodos recién añadidos.
  • Preparación de la caché de los nodos nuevos: cuando el escalador automático añade nodos nuevos, estos pueden tardar unos minutos en preparar sus cachés y alcanzar el máximo rendimiento de las consultas.
  • Comportamiento con consultas de gran tamaño: los ajustes de escalado automático pueden aplazarse durante la ejecución de consultas de lectura muy grandes.

Habilitar el escalado automático en una instancia de grupo de lectura nueva

Puede habilitar y configurar el escalado automático al crear una instancia de grupo de lectura mediante una política basada en la CPU, una política basada en una programación o ambas.

Crear una instancia de grupo de lectura con una política basada en la CPU

Para crear una instancia de grupo de lectura con una política de escalado automático basada en un uso de CPU objetivo, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE

Haz los cambios siguientes:

  • INSTANCE_ID: el ID de la instancia del grupo de lectura.

  • READ_POOL: especifica el tipo de instancia.

  • NODE_COUNT: el número de nodos de la instancia del grupo de lectura. Especifica un número entre 1 y 20, ambos incluidos. Ten en cuenta que no puedes tener más de 20 nodos en todas las instancias del grupo de lectura de un clúster.

  • REGION_ID: la región en la que se coloca la instancia.

  • CLUSTER_ID: el ID del clúster en el que se coloca la instancia.

  • PROJECT_ID: el ID del proyecto en el que se encuentra el clúster.

  • MAX_NODE_COUNT: número máximo de nodos que puede crear la herramienta de escalado automático en la instancia del grupo de lectura. El número total de nodos de todas las instancias de grupos de lectura de un mismo clúster no puede superar los 20.

  • TARGET_CPU_USAGE: el uso de CPU objetivo de tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0. Por ejemplo, 0,7 para el 70%.

Crear una instancia de grupo de lectura con una política basada en una programación

Para crear una instancia de grupo de lectura con una política de escalado automático basada en una programación que defina un número mínimo de nodos para un periodo específico, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

Haz los cambios siguientes:

  • MAX_NODE_COUNT: número máximo de nodos que puede crear la herramienta de escalado automático en la instancia del grupo de lectura. El número total de nodos de todas las instancias de grupos de lectura de un mismo clúster no puede superar los 20.

  • SCHEDULE_NAME: un nombre único para la programación del escalado.

  • CRON_EXPRESSION: la programación en formato cron que especifica la hora de inicio del evento de escalado.

  • DURATION_SECONDS: la duración en segundos durante la que la programación permanece activa después de iniciarse. Después de este periodo, la instancia se reduce al número de nodos determinado por otras políticas o por su configuración original.

  • TIME_ZONE: zona horaria opcional de la programación. Por ejemplo, America/Los_Angeles.

  • MIN_NODE_COUNT: número mínimo de nodos al que la herramienta de ajuste de escala adapta la instancia del grupo de lectura mientras la programación está activa.

  • DESCRIPTION: una descripción de texto opcional de la programación.

Crear una instancia de grupo de lectura con políticas basadas en la CPU y en la programación

Para crear una instancia de grupo de lectura con políticas de escalado automático basadas en la CPU y en la programación, ejecuta el siguiente comando:

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=READ_POOL \
    --read-pool-node-count=NODE_COUNT \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --enable-autoscaler \
    --autoscaler-max-node-count=MAX_NODE_COUNT \
    --autoscaler-target-cpu-usage=TARGET_CPU_USAGE \
    --autoscaler-set-schedule=SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-time-zone=TIME_ZONE \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT \
    --autoscaler-schedule-description="DESCRIPTION"

Sustituye TARGET_CPU_USAGE por el uso de CPU objetivo de tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0.

Para ver una descripción de los marcadores de posición que se usan en este comando, consulta las políticas Crear una instancia de grupo de lectura con una política basada en la CPU y Crear una instancia de grupo de lectura con una política basada en la programación.

Habilitar o actualizar el autoescalado en una instancia de grupo de lectura

Puedes habilitar, inhabilitar o modificar los ajustes de escalado automático en una instancia de grupo de lectura.

Para habilitar el autoescalado por primera vez en una instancia o para actualizar una política, usa el comando gcloud alloydb instances update. Por ejemplo, para actualizar el uso de CPU objetivo, ejecuta lo siguiente:

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-target-cpu-usage=NEW_TARGET_CPU_USAGE

Sustituye NEW_TARGET_CPU_USAGE por el nuevo uso de CPU objetivo que quieras definir para tu instancia de grupo de lectura, expresado como un valor decimal entre 0,0 y 1,0.

Para añadir una segunda programación a una configuración, ejecuta el comando de actualización con un nuevo nombre de programación. Si el nombre de la programación ya existe, el comando actualiza la programación. De lo contrario, se creará una nueva.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --autoscaler-set-schedule=NEW_SCHEDULE_NAME \
    --autoscaler-schedule-cron-exp=CRON_EXPRESSION \
    --autoscaler-schedule-duration-seconds=DURATION_SECONDS \
    --autoscaler-schedule-min-node-count=MIN_NODE_COUNT

Sustituye NEW_SCHEDULE_NAME por el nombre único de la programación de escalado nueva o actualizada. Si el nombre proporcionado coincide con una programación, el comando actualizará los ajustes de esa programación. Si el nombre no existe, el comando crea una nueva programación con ese nombre.

Cómo se evalúan las políticas de autoescalado

Cuando hay varias políticas de escalado automático activas, la herramienta de escalado automático evalúa cada política y elige la que recomienda el mayor número de nodos.

Por ejemplo, supongamos que tiene una configuración con dos políticas:

  • Una política basada en la CPU con un objetivo de uso del 60 %.
  • Una política basada en una programación que requiere un mínimo de tres nodos los días laborables entre las 8:00 y las 17:00.

Si es un día laborable a las 12:00 y la utilización de la CPU es del 80%, la política basada en la CPU podría recomendar aumentar la escala a cuatro nodos, mientras que la política basada en la programación recomendaría tres. La herramienta de escalado automático escala la instancia a cuatro nodos.

Inhabilitar el ajuste automático de escala

Para inhabilitar el escalado automático, usa la marca no-enable-autoscaler. De esta forma, el grupo de lectura vuelve a tener el número de nodos original antes de que se habilitara el escalado automático.

gcloud alloydb instances update INSTANCE_ID \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID \
    --no-enable-autoscaler