排查引导集群问题

当 Anthos clusters on Bare Metal 创建或升级集群时,它会部署 Kubernetes in Docker (kind) 集群,以临时托管创建或升级集群所需的 Kubernetes 控制器。此暂时性集群称为引导集群。如果 kind 集群在您尝试安装时已经存在于您的部署中,则 Anthos clusters on Bare Metal 会删除现有的 kind 集群。只有在安装或升级成功后,系统才会执行删除操作。如需在成功后保留现有的 kind 集群,请使用 bmctl--keep-bootstrap-cluster 标志。

Anthos clusters on Bare Metal 在 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