Resolver problemas do cluster de inicialização

Quando os clusters do Anthos em bare metal criam ou atualizam clusters, ele implanta um cluster do Kubernetes no Docker (tipo) para hospedar temporariamente os controladores do Kubernetes necessários para criar ou fazer upgrade de clusters. Esse cluster transitório é chamado de cluster de inicialização. Se um cluster de tipo já existir em sua implantação quando você tentar instalar, os clusters do Anthos em bare metal excluirão o cluster de tipo existente. A exclusão só ocorre depois que a instalação ou o upgrade são bem-sucedidos. Para preservar o cluster de tipo atual mesmo após o sucesso, use a sinalização --keep-bootstrap-cluster de bmctl.

Os clusters do Anthos em Bare Metal criam um arquivo de configuração para o cluster de inicialização em WORKSPACE_DIR/.kindkubeconfig. Só é possível se conectar ao cluster de inicialização durante a criação e o upgrade dele.

O cluster de inicialização precisa acessar um repositório do Docker para extrair imagens. O registro é o padrão para o Container Registry, a menos que você esteja usando um registro particular. Durante a criação do cluster, bmctl cria os seguintes arquivos:

  • bmctl-workspace/config.json: contém as credenciais da conta de serviço do Google Cloud para o acesso ao registro. As credenciais são recebidas do campo gcrKeyPath no arquivo de configuração do cluster.

  • bmctl-workspace/config.toml: contém a configuração do containerd no cluster de tipo.

Depurar o cluster de bootstrap

Para depurar o cluster de inicialização, siga estas etapas:

  • Conecte-se ao cluster de inicialização durante a criação e o upgrade do cluster.
  • Receba os registros do cluster de inicialização.

É possível encontrar os registros na máquina que você usa para executar bmctl nas seguintes pastas:

  • bmctl-workspace/CLUSTER_NAME/log/create-cluster-TIMESTAMP/bootstrap-cluster/
  • bmctl-workspace/CLUSTER_NAME/log/upgrade-cluster-TIMESTAMP/bootstrap-cluster/

Substitua CLUSTER_NAME e TIMESTAMP pelo nome do cluster e o horário do sistema correspondente.

Para acessar os registros do cluster de inicialização diretamente, execute o seguinte comando durante a criação e o upgrade do cluster:

docker exec -it bmctl-control-plane bash

O comando abre um terminal dentro do contêiner do plano de controle bmctl que é executado no cluster de inicialização.

Para inspecionar os registros kubelet e containerd, use os seguintes comandos e procure erros ou avisos na saída:

journalctl -u kubelet
journalctl -u containerd