Implantar a ferramenta de escalonador automático no GKE

O modelo de implantação do Google Kubernetes Engine (GKE) é uma boa escolha para equipes independentes que querem gerenciar a infraestrutura e a configuração dos próprios autoscalers no Kubernetes.

Este documento faz parte de uma série que também inclui:

Esta série é destinada a equipes de TI, operações e engenharia de confiabilidade do site (SRE) que querem reduzir a sobrecarga operacional e otimizar o custo das implantações do Spanner.

A implantação do GKE tem as seguintes vantagens e desvantagens:

Vantagens:

  • Baseado no Kubernetes: para equipes que não podem usar serviços como as funções do Cloud Run, a implantação no Kubernetes permite o uso do escalonador automático.
  • Configuração: o controle sobre os parâmetros do programador pertence à equipe do proprietário da instância do Spanner, o que dá a ela os maiores privilégios para adaptar o escalonador automático às necessidades.

Desvantagens:

  • Infraestrutura: em comparação com o design das funções do Cloud Run, alguns serviços e infraestruturas de longa duração são necessários.
  • Manutenção: como cada equipe é responsável pela configuração e pela infraestrutura do escalonador automático, pode ser difícil garantir que todos os escalonadores automáticos na empresa sigam as mesmas diretrizes de atualização.
  • Auditoria: devido ao alto nível de controle de cada equipe, uma auditoria centralizada pode se tornar mais complexa.

Nesta página, apresentamos duas maneiras de implantar o Autoscaler no GKE com base nos seus requisitos:

  • Uma topologia de implantação desaneada. O modelo de implantação desacoplado tem a vantagem de poder atribuir permissões individuais aos componentes Poller e Scaler para que eles sejam executados como contas de serviço separadas. Isso significa que você tem a flexibilidade para gerenciar e dimensionar os dois componentes de acordo com suas necessidades. No entanto, esse modelo de implantação exige que o componente Scaler seja implantado como um serviço de longa duração, que consome recursos.
  • Uma topologia de implantação unificada. O modelo de implantação unificado tem a vantagem de que os componentes Poller e Scaler podem ser implantados como um único pod, que é executado como um job cron do Kubernetes. Quando os dois componentes são implantados como um único pod, não há componentes de execução prolongada e apenas uma conta de serviço é necessária.

Na maioria dos casos de uso, recomendamos o modelo de implantação unificado.

Configuração

A ferramenta de escalonamento automático gerencia instâncias do Spanner pela configuração definida em um ConfigMap do Kubernetes. Se várias instâncias do Spanner precisarem ser pesquisadas com o mesmo intervalo, recomendamos que você as configure no mesmo ConfigMap. Confira a seguir um exemplo de configuração em que duas instâncias do Spanner são gerenciadas com uma configuração:

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

Uma instância pode ter uma configuração do escalonador automático com o método linear para operações normais e outra configuração do escalonador automático com o método direto para cargas de trabalho em lote planejadas. Consulte a lista completa de opções de configuração no arquivo README da função de pesquisa.

Implantar no GKE

Para saber como implantar o escalonador automático no GKE no modelo de implantação unificado ou desvinculado, consulte o guia detalhado de implantação do GKE.

A seguir