Implementa la herramienta de escalamiento automático en GKE

El modelo de implementación de Google Kubernetes Engine (GKE) es una buena opción para equipos independientes que desean autoadministrar la infraestructura y la configuración de sus propios autoscalers en Kubernetes.

Este documento forma parte de una serie que también incluye lo siguiente:

Esta serie está dirigida a equipos de TI, ingeniería de confiabilidad de sitios (SRE) y operaciones que desean reducir la sobrecarga operativa y optimizar el costo de las implementaciones de Spanner.

La implementación de GKE tiene las siguientes ventajas y desventajas:

Ventajas:

  • Basado en Kubernetes: Para los equipos que no pueden usar servicios como las funciones de Cloud Run, la implementación en Kubernetes permite usar el Autoscaler.
  • Configuración: El control de los parámetros del programador pertenece al equipo que posee la instancia de Spanner, lo que le brinda los privilegios más altos para adaptar el escalador automático a sus necesidades.

Desventajas:

  • Infraestructura: En comparación con el diseño de las funciones de Cloud Run, se requieren algunos servicios y una infraestructura de larga duración.
  • Mantenimiento: Dado que cada equipo es responsable de la configuración y la infraestructura del escalador automático, puede ser difícil asegurarse de que todos los escaladores automáticos de la empresa sigan los mismos lineamientos de actualización.
  • Auditoría: Debido al alto nivel de control de cada equipo, una auditoría centralizada puede volverse más compleja.

En esta página, se presentan dos formas de implementar el escalador en GKE según tus requisitos:

  • Una topología de implementación desacoplada El modelo de implementación desacoplado tiene la ventaja de que puedes asignar permisos individuales a los componentes del recuperador y del escalador para que se ejecuten como cuentas de servicio separadas. Esto significa que tienes la flexibilidad para administrar y escalar los dos componentes según tus necesidades. Sin embargo, este modelo de implementación requiere que el componente Scaler se implemente como un servicio de larga duración, que consume recursos.
  • Una topología de implementación unificada El modelo de implementación unificado tiene la ventaja de que los componentes de Poller y Scaler se pueden implementar como un solo pod, que se ejecuta como un trabajo de cron de Kubernetes. Cuando los dos componentes se implementan como un solo pod, no hay componentes de larga duración y solo se requiere una sola cuenta de servicio.

En la mayoría de los casos de uso, recomendamos el modelo de implementación unificado.

Configuración

La herramienta de escalamiento automático administra las instancias de Spanner a través de la configuración definida en un ConfigMap de Kubernetes. Si se deben consultar varias instancias de Spanner con el mismo intervalo, te recomendamos que las configures en el mismo ConfigMap. El siguiente es un ejemplo de una configuración en la que dos instancias de Spanner se administran con una configuración:

apiVersion: v1
kind: ConfigMap
metadata:
  name: autoscaler-config
  namespace: spanner-autoscaler
data:
  autoscaler-config.yaml: |
    ---
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-linear
      units: NODES
      minSize: 5
      maxSize: 30
      scalingMethod: LINEAR
    - projectId: spanner-autoscaler-test
      instanceId: spanner-scaling-threshold
      units: PROCESSING_UNITS
      minSize: 100
      maxSize: 3000
      metrics:
      - name: high_priority_cpu
        regional_threshold: 40
        regional_margin: 3

Una instancia puede tener una configuración de escalador automático con el método lineal para operaciones normales, pero también tiene otra configuración de escalador automático con el método directo para cargas de trabajo por lotes planificadas. Consulta la lista completa de opciones de configuración en el archivo README de sondeo.

Implementar en GKE

Para obtener información sobre cómo implementar el escalador automático en GKE en el modelo de implementación desacoplado o unificado, consulta la guía paso a paso para la implementación de GKE.

¿Qué sigue?