Realize testes de comutação por falha para ambientes altamente resilientes

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página descreve como realizar testes de comutação por falha de bases de dados e clusters para ambientes altamente resilientes.

Os testes de comutação por falha para o seu ambiente simulam uma indisponibilidade completa de uma zona num centro de dados. Neste cenário, pode ocorrer uma interrupção zonal de um cluster e uma interrupção zonal de uma base de dados em simultâneo. Ao realizar os dois testes de comutação por falha, pode monitorizar o desempenho do seu ambiente altamente resiliente numa comutação por falha e verificar como isso afeta os seus DAGs e tarefas.

Antes de começar

  • Para realizar testes de comutação por falha, a sua Conta Google tem de ter as seguintes funções e autorizações:

    • Autorização de composer.environments.update. Consulte o artigo Controlo de acesso com a IAM para ver uma lista de funções com esta autorização.

    • Função Administrador do cluster do Kubernetes Engine (roles/container.clusterAdmin) para executar comandos kubectl no cluster do ambiente. Em alternativa, pode aprovisionar funções RBAC do Kubernetes diretamente no GKE.

  • Se usar redes autorizadas, tem de executar comandos kubectl a partir de uma máquina que possa aceder ao ponto final do plano de controlo do cluster do GKE. Consoante a forma como configura o acesso ao ponto final do plano de controlo do seu ambiente, pode usar várias opções. Para mais informações, consulte o artigo Executar comandos num ambiente de IP privado.

Verifique se o seu ambiente está em bom estado

Certifique-se de que realiza testes de comutação por falha apenas em ambientes íntegros. Para verificar se o seu ambiente está em bom estado:

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Monitorização.

  4. Certifique-se de que todas as métricas de saúde estão a verde.

Faça um teste de comutação por falha da base de dados

Pode executar um teste de comutação por falha da base de dados, que simula uma indisponibilidade zonal, acionando-o com um comando da Google Cloud CLI. Por exemplo, pode querer fazê-lo para medir o tempo que a base de dados do seu ambiente demora a mudar para outra zona.

Para realizar um teste de comutação por falha da base de dados para o seu ambiente:

  1. Certifique-se de que o seu ambiente está em bom estado.

  2. Obtenha a zona principal da base de dados do seu ambiente:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    

    Substitua o seguinte:

    • ENVIRONMENT_NAME: o nome do seu ambiente do Cloud Composer.
    • LOCATION: a região onde o ambiente está localizado.

    Exemplo:

    gcloud composer environments fetch-database-properties \
        example-environment \
        --location us-central1
    
  3. Inicie o teste de comutação por falha da base de dados:

    gcloud composer environments database-failover \
        ENVIRONMENT_NAME \
        --location LOCATION
    

    Substitua o seguinte:

    • ENVIRONMENT_NAME: o nome do seu ambiente do Cloud Composer.
    • LOCATION: a região onde o ambiente está localizado.

    Exemplo:

    gcloud composer environments database-failover \
        example-environment \
        --location us-central1
    
  4. Aguarde até que o teste de comutação por falha da base de dados esteja concluído. O processo pode demorar até 3 minutos.

  5. Verifique se a zona principal da base de dados do seu ambiente foi alterada:

    gcloud composer environments fetch-database-properties \
        ENVIRONMENT_NAME \
        --location LOCATION
    
  6. Verifique as métricas de saúde do seu ambiente para se certificar de que o ambiente está em bom estado.

  7. A base de dados do seu ambiente fica pronta para outra comutação por falha quando a métrica do ambiente Database available for failover (composer.googleapis.com/environment/database/available_for_failover) fica True. Para mais informações sobre a visualização das métricas do seu ambiente no Cloud Monitoring, consulte o artigo Monitorize ambientes.

Faça o teste de comutação por falha do cluster do seu ambiente

Pode realizar um teste de comutação por falha para o cluster do seu ambiente, que simula uma indisponibilidade zonal. Por exemplo, pode querer fazê-lo para medir a quantidade de tempo que o seu ambiente demora a mudar para outra zona.

Verifique se o seu ambiente está em bom estado

Antes de iniciar o teste, certifique-se de que o seu ambiente está em bom estado.

Configure as credenciais para o cluster do seu ambiente

Para obter credenciais do cluster:

  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Configuração do ambiente.

  4. Clique em Ver detalhes do cluster.

  5. Clique em Ligar.

  6. Copie e execute o comando da CLI do Google Cloud apresentado.

    Por exemplo:

    gcloud container clusters get-credentials \
      us-central1-exam-db23ee12-gke \
      --region us-central1 \
      --project example-project
    

Inspeccione o cluster do seu ambiente

Verifique as zonas e os nós onde as cargas de trabalho são executadas no cluster do seu ambiente. Use estas informações para simular uma indisponibilidade zonal mais tarde. Também pode executar estes comandos novamente enquanto realiza o teste de comutação por falha para ver como o cluster do seu ambiente executa a comutação por falha.

  1. Verifique os nós e as zonas:

    kubectl get nodes \
      -o=custom-columns=NAME:.metadata.name,NODE:.metadata.labels.topology\\.gke\\.io/zone
    
  2. Verifique os agrupamentos:

    kubectl get pods --all-namespaces \
    -o=custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName \
    --field-selector metadata.namespace!=kube-system
    
  3. Veja informações mais detalhadas sobre os podcasts:

    kubectl get pods --all-namespaces -o wide \
    --field-selector metadata.namespace!=kube-system
    

Esvazie nós

Escolha uma zona onde quer simular uma indisponibilidade. Se realizar o teste de comutação por falha do cluster juntamente com o teste de comutação por falha da base de dados, pode optar pela zona principal da instância do Cloud SQL de alta disponibilidade do seu ambiente. Por exemplo, se a instância principal do Cloud SQL for executada em us-central1-a, pode simular uma indisponibilidade em toda a zona us-central1-a executando primeiro o teste de comutação por falha da base de dados e, em seguida, o teste de comutação por falha do cluster em us-central1-a.

O comando seguinte simula um conjunto de nós que ficam indisponíveis numa zona específica. Remove à força os pods dos nós na zona especificada e impede o reagendamento de pods nestes nós. Uma vez que não é possível agendar novos pods, são adicionados novos nós ao cluster.

Este comando não afeta as cargas de trabalho executadas no espaço de nomes composer-system. Pode ver mensagens de erro relacionadas no resultado do comando. Isto não afeta o teste de comutação por falha. Os nós que existem na zona selecionada continuam marcados como não agendáveis.

Para simular uma falha de zona de cluster na zona selecionada:

kubectl get nodes -o name -l "topology.gke.io/zone=ZONE" | \
xargs kubectl drain \
--ignore-daemonsets --delete-emptydir-data --force --disable-eviction

Substitua o seguinte:

  • ZONE: a zona onde quer simular uma falha de zona de cluster.

Verifique as métricas do ambiente

Métricas do ambiente durante uma indisponibilidade simulada de uma zona
Figura 1. Métricas do ambiente durante uma indisponibilidade simulada da zona (clique para aumentar)
  1. Na Google Cloud consola, aceda à página Ambientes.

    Aceder a Ambientes

  2. Na lista de ambientes, clique no nome do seu ambiente. É apresentada a página Detalhes do ambiente.

  3. Aceda ao separador Monitorização.

  4. Verifique se as seguintes métricas estão "verdes" durante a operação de comutação por falha ou permanecem com o estado "vermelho" durante, no máximo, vários minutos.

    • Saúde ambiental
    • Ritmo do programador
    • Estado do servidor Web
    • Estado da base de dados
    • Trabalhadores ativos
    • Programadores ativos
    • Servidores Web ativos
    • Acionadores ativos

    Tenha em atenção que a indisponibilidade simulada é marcada como uma "operação de manutenção do cluster".

  5. Não tem de realizar ações adicionais para repor o cluster do seu ambiente para o estado de prontidão para a comutação por falha após o teste. Durante o teste, o cluster do ambiente adiciona automaticamente novos nós que substituem os afetados pela indisponibilidade simulada.

O que se segue?