부트스트랩 클러스터 문제 해결

베어메탈용 Anthos 클러스터는 클러스터를 만들거나 업데이트할 때 클러스터 만들기 또는 업그레이드에 필요한 Kubernetes 컨트롤러를 일시적으로 호스트하기 위해 Docker의 Kubernetes(kind) 클러스터를 배포합니다. 이러한 임시 클러스터를 부트스트랩 클러스터라고 부릅니다. 설치하려고 할 때 kind 클러스터가 배포에 이미 있으면 베어메탈용 Anthos 클러스터가 기존 kind 클러스터를 삭제합니다. 설치 또는 업그레이드가 성공한 후에만 삭제가 수행됩니다. 성공한 후에도 기존 kind 클러스터를 보존하려면 bmctl--keep-bootstrap-cluster 플래그를 사용하세요.

베어메탈용 Anthos 클러스터는 WORKSPACE_DIR/.kindkubeconfig 아래에 부트스트랩 클러스터에 대해 구성 파일을 만듭니다. 클러스터 만들기 및 업그레이드 중에만 부트스트랩 클러스터에 연결할 수 있습니다.

이미지를 가져오려면 부트스트랩 클러스터가 Docker 저장소에 액세스해야 합니다. 비공개 레지스트리를 사용하지 않는 한 레지스트리가 기본적으로 Container Registry로 지정됩니다. 클러스터를 만드는 동안 bmctl이 다음 파일을 만듭니다.

  • bmctl-workspace/config.json: 레지스트리 액세스를 위한 Google Cloud 서비스 계정을 포함합니다. 클러스터 구성 파일의 gcrKeyPath 필드에서 사용자 인증 정보를 가져옵니다.

  • bmctl-workspace/config.toml: kind 클러스터의 containerd 구성을 포함합니다.

부트스트랩 클러스터 디버그

부트스트랩 클러스터를 디버깅하려면 다음 단계를 수행합니다.

  • 클러스터 만들기 및 업그레이드 중에 부트스트랩 클러스터에 연결합니다.
  • 부트스트랩 클러스터의 로그를 가져옵니다.

다음 폴더에서 bmctl을 실행하기 위해 사용하는 머신에서 로그를 찾을 수 있습니다.

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

CLUSTER_NAMETIMESTAMP를 클러스터 이름과 해당 시스템 시간으로 바꿉니다.

부트스트랩 클러스터에서 직접 로그를 가져오려면 클러스터 만들기 및 업그레이드 동안 다음 명령어를 실행할 수 있습니다.

docker exec -it bmctl-control-plane bash

이 명령어는 부트스트랩 클러스터에서 실행되는 bmctl 제어영역 컨테이너 내에서 터미널을 엽니다.

kubeletcontainerd 로그를 검사하려면 다음 명령어를 사용하고 출력에서 오류 또는 경고를 찾습니다.

journalctl -u kubelet
journalctl -u containerd