Solução de problemas: diagnosticar e redefinir clusters

É possível diagnosticar ou verificar clusters para depurar problemas e capturar um snapshot do estado dele. Além disso, se você tiver parcialmente concluído uma instalação, mas o cluster retornar erros ou não estiver funcionando corretamente, tente redefini-lo.

Como diagnosticar clusters com bmctl check cluster

É possível capturar o estado dos clusters criados com o comando bmctl check cluster. As sinalizações do comando permitem que você escolha o escopo de diagnóstico do comando para que seja possível conseguir informações focalizadas.

As informações de diagnóstico podem ajudar você a descobrir problemas e depurar suas implantações com mais eficiência. O comando captura todos os arquivos de configuração de cluster e nó relevantes para o escopo definido e empacota as informações em um único arquivo tar.

bmctl check cluster --snapshot --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG

Esse comando gera um arquivo tar com informações de depuração relevantes de todos os componentes e máquinas do sistema no cluster especificado.

ADMIN_KUBECONFIG especifica o caminho para o arquivo kubeconfig, e CLUSTER_NAME especifica o nome do cluster.

É possível alterar o escopo das informações de diagnóstico coletadas com as seguintes sinalizações de comando:

  • A sinalização --snapshot-scenario all aumenta o escopo do snapshot de diagnóstico para incluir todos os pods no cluster especificado:
bmctl check cluster --snapshot --snapshot-scenario all --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
  • A sinalização --snapshot-dry-run funciona em conjunto com a sinalização --snapshot-config string. Use a sinalização --snapshot-dry-run para gerar um arquivo de configuração que pode ser modificado para definir um escopo de diagnóstico personalizado. O escopo pode incluir pods, namespaces ou comandos de nós específicos.

Depois de modificar o arquivo de saída criado com a sinalização --snapshot-dry-run, é possível usá-lo como entrada para diagnosticar o escopo específico com a sinalização --snapshot-config string, descrita abaixo. Se você omitir essa sinalização, uma configuração padrão será aplicada.

bmctl check cluster --snapshot --snapshot-dry-run --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
  • A sinalização --snapshot-config instrui o comando bmctl a usar as opções de escopo especificadas em um arquivo de configuração do snapshot. Geralmente, você cria o arquivo de configuração do snapshot com a sinalização --snapshot-dry-run.
bmctl check cluster --snapshot --snapshot-config SNAPSHOT_CONFIG_FILE --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG

Como redefinir clusters com bmctl reset cluster

Quando a instalação de um cluster falha, é possível retornar os nós para um estado limpo ao redefini-los. Em seguida, reinstale o cluster depois de fazer alterações de configuração.

Para redefinir um cluster, emita o seguinte comando:

bmctl reset --cluster CLUSTER_NAME

Esse comando se aplica a todo o cluster. Não há opção para segmentar um subconjunto de nós em um cluster.

A saída do comando será semelhante a esta amostra:

bmctl reset -c cluster1
Creating bootstrap cluster... OK
Deleting GKE Hub member admin in project my-gcp-project...
Successfully deleted GKE Hub member admin in project my-gcp-project
Loading images... OK
Starting reset jobs...
Resetting: 1    Completed: 0    Failed: 0
...
Resetting: 0    Completed: 1    Failed: 0
Flushing logs... OK

Redefinir detalhes do cluster

Durante a operação de redefinição, bmctl primeiro exclui o registro de associação do GKE Hub e limpa os nós afetados.

Durante a redefinição, as ativações de armazenamento e os dados do anthos-system StorageClass também são excluídos.

Para todos os nós, o bmctl executa kubeadm reset, remove as interfaces de túnel usadas para a rede de cluster e exclui os seguintes diretórios:

  • /etc/kubernetes
  • /etc/cni/net.d
  • /root/.kube
  • /var/lib/kubelet

Para os nós do balanceador de carga, bmctl também executa as seguintes ações:

  • Desativa os serviços keepalived e haproxy
  • Exclui os arquivos de configuração de keepalived e haproxy.

A ferramenta de redefinição espera que o arquivo de configuração do cluster esteja no seguinte local no diretório de trabalho atual:

bmctl-workspace/cluster name/cluster name.yaml