您可以诊断或检查集群以调试问题并捕获集群状态的快照。此外,如果安装部分成功,但集群返回错误或者没有正确运行,您可以尝试重置集群。
使用 bmctl check cluster
诊断集群
您可以使用 bmctl check cluster
命令捕获已创建集群的状态。您可以通过命令标志选择命令的诊断范围,从而获得目标明确的信息。
诊断信息可帮助您更高效地发现问题和调试部署。该命令会捕获您定义的范围的所有相关集群和节点配置文件,然后将信息打包到一个 tar 归档文件中。
bmctl check cluster --snapshot --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
该命令会输出 tar 归档文件,其中包含您指定的集群中的所有系统组件和机器的相关调试信息。
ADMIN_KUBECONFIG
指定 kubeconfig 文件的路径,CLUSTER_NAME
指定集群的名称。
您可以使用以下命令标志更改收集的诊断信息的范围:
--snapshot-scenario all
标志将诊断快照的范围扩大为包含指定集群中的所有 pod:
bmctl check cluster --snapshot --snapshot-scenario all --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
--snapshot-dry-run
标志与--snapshot-config string
标志搭配使用。使用--snapshot-dry-run
标志可输出一个配置文件,您可以通过修改该文件来定义自定义诊断范围。范围可以包括特定的 pod、命名空间或节点命令。
修改使用 --snapshot-dry-run
标志创建的输出文件后,您可以将其作为输入来通过 --snapshot-config string
标志诊断特定范围,如下所述。如果您省略此标志,系统会应用默认配置。
bmctl check cluster --snapshot --snapshot-dry-run --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
--snapshot-config
标志告知bmctl
命令使用快照配置文件中指定的范围选项。通常使用--snapshot-dry-run
标志创建快照配置文件。
bmctl check cluster --snapshot --snapshot-config SNAPSHOT_CONFIG_FILE --cluster CLUSTER_NAME --admin-kubeconfig ADMIN_KUBECONFIG
使用 bmctl reset cluster
重置集群
如果集群未正确安装,您可以尝试重置节点,以将节点恢复为默认状态。然后,您可以在更改配置后重新安装集群。
要重置集群,请发出以下命令:
bmctl reset --cluster CLUSTER_NAME
重置命令应用于整个集群。您无法仅对集群中的某些节点应用该命令。
该命令的输出类似于以下示例:
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
重置集群详情
在重置操作期间,bmctl
首先尝试删除 GKE Hub 成员资格注册,然后清理受影响的节点。
重置期间,anthos-system StorageClass
中的存储装载和数据也会被删除。
对于所有节点,bmctl 运行 kubeadm reset
,移除用于集群网络的隧道接口,并删除以下目录:
- /etc/kubernetes
- /etc/cni/net.d
- /root/.kube
- /var/lib/kubelet
对于负载平衡器节点,bmctl
还会执行以下操作:
- 停用
keepalived
和haproxy
服务 - 删除
keepalived
和haproxy
的配置文件
重置工具需要集群配置文件位于当前工作目录下的以下位置:
bmctl-workspace/cluster name/cluster name.yaml