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:
- Ajuste de escala automático de Spanner
- Descripción general de la herramienta de escalador automático
- Implementa la herramienta de escalador automático para Spanner en las funciones de Cloud Run
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?
- Obtén información para implementar la herramienta de escalamiento automático en funciones de Cloud Run.
- Obtén más información sobre los límites recomendados de Spanner.
- Obtén más información sobre las métricas de uso de CPU y las métricas de latencia de Spanner.
- Obtén más información sobre las prácticas recomendadas para el diseño de esquemas de Spanner a fin de evitar los hotspots y cargar datos en Spanner.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.