在 Google Distributed Cloud 实现中,管理员集群的控制平面虚拟机挂接了两个磁盘:
启动磁盘包含虚拟机的操作系统。
数据磁盘包含凭据和 etcd 数据库,后者存储管理员集群的状态。也就是说,数据磁盘存储管理员集群的所有 Kubernetes 对象。
本页面介绍了如何在控制平面虚拟机丢失或启动磁盘受损时进行恢复。例如:
- 启动磁盘因垃圾邮件日志日志而变为只读状态。
- Docker 叠加文件系统损坏。
本页面未介绍如何恢复数据磁盘。如需了解如何恢复数据磁盘,请参阅恢复管理员集群。
修复控制平面虚拟机
修复管理员集群的控制平面虚拟机的步骤略有不同,具体取决于您使用的是高可用性 (HA) 管理员集群还是非高可用性管理员集群。
HA
一个高可用性管理员集群有三个控制平面虚拟机。您必须至少有两个虚拟机才能启动集群控制平面。如果有三个虚拟机发生故障 请逐个修复故障虚拟机在第二个虚拟机修复并运行后,集群控制平面应会恢复。
运行以下命令:
gkectl repair admin-master --config ADMIN_CLUSTER_CONFIG --kubeconfig ADMIN_CLUSTER_KUBECONFIG
请替换以下内容:
ADMIN_CLUSTER_CONFIG
,替换为管理员集群配置文件的路径。ADMIN_CLUSTER_KUBECONFIG
,替换为管理员集群的 kubeconfig 文件的路径。
此命令的输出类似如下所示:
Please select the control plane VM template to be used for re-creating the admin cluster's control plane VM. [1] VM template: /atl-qual-vc07/vm/gke-admin-57f8g-fx9f4c729448z2v8-2-tmpl GKE on-prem version: 1.16.0-gke.550 Creation time: 2023-07-25 01:52:51.815518 +0000 UTC CPU: 4 CPU(s) Memory: 16384 MB Data disk: [vsanDatastore] 37a73d64-b823-47cd-2e0c-00620b9189a0/gke-admin-57f8g/default/gke-admin-57f8g-2-data.vmdk [2] VM template: /atl-qual-vc07/vm/gke-admin-57f8g-fx9f4c729448z2v8-0-tmpl GKE on-prem version: 1.16.0-gke.550 Creation time: 2023-07-25 01:52:54.228252 +0000 UTC CPU: 4 CPU(s) Memory: 16384 MB Data disk: [vsanDatastore] 37a73d64-b823-47cd-2e0c-00620b9189a0/gke-admin-57f8g/default/gke-admin-57f8g-0-data.vmdk [3] VM template: /atl-qual-vc07/vm/gke-admin-57f8g-fx9f4c729448z2v8-1-tmpl GKE on-prem version: 1.16.0-gke.550 Creation time: 2023-07-25 01:52:54.210705 +0000 UTC CPU: 4 CPU(s) Memory: 16384 MB Data disk: [vsanDatastore] 37a73d64-b823-47cd-2e0c-00620b9189a0/gke-admin-57f8g/default/gke-admin-57f8g-1-data.vmdk Please enter your numeric choice:
输入要修复的虚拟机的编号。如果在输出中没有看到虚拟机,请与 Google Cloud 支持团队联系。
如果您有三个需要修复的虚拟机,则
gkectl repair admin-master
会在修复第一个虚拟机后输出类似于以下内容的错误消息:If you are repairing admin control plane VM for HA admin cluster, it's possible that the API server is still down after repairing one of the VMs. Try continue fixing other control plane VMs listed to recover the quorum of control plane.
在这种情况下,请重新运行该命令以修复第二个虚拟机。
非 HA
运行以下命令:
gkectl repair admin-master \ --config ADMIN_CLUSTER_CONFIG \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
请替换以下内容:
ADMIN_CLUSTER_CONFIG
,替换为管理员集群配置文件的路径。- 将
ADMIN_CLUSTER_KUBECONFIG
替换为管理员集群的kubeconfig
文件的路径。
管理员集群的控制平面虚拟机会被克隆到一个虚拟机模板中,该模板具有重新创建虚拟机所需的所有信息。gkectl repair admin-master
命令使用该虚拟机模板来创建新的虚拟机。然后,它会挂接新的启动磁盘和现有的数据磁盘。
如果集群节点从 DHCP 服务器获取其地址,则新虚拟机的 IP 地址可能不同于来自原始虚拟机的地址。
后续步骤
- 如果您需要其他帮助,请与 Cloud Customer Care 联系。