了解 Google Distributed Cloud 中的故障的影响

Google Distributed Cloud 旨在限制故障范围并优先处理对业务连续性至关重要的功能。本文档介绍了发生故障时集群的功能会受到怎样的影响。此信息可帮助您确定出现问题时要优先排查的领域。

如果您需要其他帮助,请与 Cloud Customer Care 联系。

Google Distributed Cloud 的核心功能包含以下类别:

  • 运行工作负载:现有工作负载可以继续运行。这是保持业务连续性的最重要考虑因素。即使您的集群出现问题,现有工作负载也可能会继续运行,不会中断。
  • 管理工作负载:您可以创建、更新和删除工作负载。这是在流量增加时调整工作负载的第二重要的考虑因素,即使集群存在问题也是如此。
  • 管理用户集群:您可以管理节点,以及更新、升级和删除用户集群。其重要性低于应用生命周期注意事项。如果现有节点上有可用容量,则无法修改用户集群不会影响用户工作负载。
  • 管理管理员集群:您可以更新和升级管理员集群。这是最不重要的注意事项,因为管理员集群不托管任何用户工作负载。如果管理员集群出现问题,您的应用工作负载会继续运行,而不会出现中断。

以下部分使用这些类别的核心功能来描述特定类型故障场景的影响。

故障模式

以下类型的故障可能会影响 Google Distributed Cloud 集群的性能。

ESXi 主机故障

在这种故障场景中,运行托管 Kubernetes 节点的虚拟机 (VM) 实例的 ESXi 主机可能会停止运行或变为网络分区。

运行工作负载 管理工作负载 管理用户集群 管理管理员集群
中断 可能的中断和自动恢复 可能的中断和自动恢复 中断和自动恢复 中断和自动恢复
说明

在故障主机托管的虚拟机上运行的 Pod 会中断,并自动重新调度到其他运行状况良好的虚拟机上。

如果用户应用有备用工作负载容量并且分布在多个节点上,则进行重试的客户端无法观察到中断。

如果主机故障影响非 HA 用户集群中的控制层面虚拟机或 HA 用户集群中的多个控制层面虚拟机,则会发生中断。 如果主机故障影响管理员集群中的控制层面虚拟机或工作器虚拟机,则会发生中断。 如果主机故障影响管理员集群中的控制层面虚拟机,则会发生中断。
恢复 vSphere HA 会在运行状况良好的主机上自动重启虚拟机。 vSphere HA 会在运行状况良好的主机上自动重启虚拟机。 vSphere HA 会在运行状况良好的主机上自动重启虚拟机。 vSphere HA 会在运行状况良好的主机上自动重启虚拟机。
预防措施 以高可用方式部署工作负载,以尽量降低中断的可能性。 使用 HA 用户集群,以尽量降低中断的可能性。

虚拟机故障

在这种故障场景中,虚拟机可能会被意外删除,启动磁盘可能损坏,或者虚拟机可能因操作系统问题而被破解。

运行工作负载 管理工作负载 管理用户集群 管理管理员集群
中断 可能的中断和自动恢复 可能的中断和自动恢复 中断和自动/手动恢复 中断和手动恢复
说明

在发生故障的工作器虚拟机上运行的 Pod 会中断,然后 Kubernetes 会自动将其重新调度到其他运行状况良好的虚拟机上。

如果用户应用有备用工作负载容量并且分布在多个节点上,则进行重试的客户端无法观察到中断。

如果非 HA 用户集群中的控制层面虚拟机或 HA 用户集群中的多个控制层面虚拟机出现故障,则会发生中断。 如果管理员集群中的控制层面虚拟机或工作器虚拟机出现故障,则会发生中断。 如果管理员集群中的控制层面虚拟机出现故障,则会发生中断。
恢复 如果用户集群启用了节点自动修复功能,则故障虚拟机会自动恢复。 如果管理员集群启用了节点自动修复功能,则故障虚拟机会自动恢复。

如果管理员集群启用了节点自动修复功能,则管理员集群中的故障工作器虚拟机会自动恢复。

如要恢复管理员集群的控制层面虚拟机,请参阅修复管理员集群的控制层面虚拟机

如要恢复管理员集群的控制层面虚拟机,请参阅修复管理员集群的控制层面虚拟机
预防措施 以高可用方式部署工作负载,以尽量降低中断的可能性。 使用 HA 用户集群,以尽量降低中断的可能性。

存储故障

在这种故障场景中,VMDK 文件中的内容可能会因虚拟机非正常关停而损坏,或者数据存储区故障可能会导致 etcd 数据和 PersistentVolume (PV) 丢失。

etcd 故障

运行工作负载 管理工作负载 管理用户集群 管理管理员集群
中断 不会中断 可能中断的情况和手动恢复 中断和手动恢复 中断和手动恢复
说明 如果非 HA 用户集群中的 etcd 存储区或 HA 用户集群中的多个 etcd 副本出现故障,则会发生中断。

如果非 HA 用户集群中的 etcd 存储区或 HA 用户集群中的多个 etcd 副本出现故障,则会发生中断。

如果管理员集群中的 etcd 副本出现故障,则会发生中断。

如果管理员集群中的 etcd 副本出现故障,则会发生中断。
预防措施 Google Distributed Cloud 提供了一个手动过程来进行故障恢复。 Google Distributed Cloud 提供了从故障中恢复的手动过程。 Google Distributed Cloud 提供了从故障中恢复的手动过程。

用户应用 PV 故障

运行工作负载 管理工作负载 管理用户集群 管理管理员集群
中断 配送可能中断 不会中断 不会中断 不会中断
说明

使用故障 PV 的工作负载会受到影响。

以高可用方式部署工作负载,以尽量降低中断的可能性。

负载均衡器故障

在此故障场景中,负载均衡器故障可能会影响公开 LoadBalancer 类型的 Service 的用户工作负载。

运行工作负载 管理工作负载 管理用户集群 管理管理员集群
中断和手动恢复
说明

中断几秒钟,直至备用负载均衡器恢复管理员控制层面 VIP 连接。

使用 Seesaw 时,服务中断最长可达 2 秒, 使用 F5 时最长可达 300 秒

随着负载平衡器节点数量的增加,MetalLB 的故障切换中断时长会增加。如果节点少于 5 个,中断将在 10 秒内发生。

恢复

Seesaw HA 会自动检测故障并故障切换到使用备份实例。

Google Distributed Cloud 提供了一种手动流程,以便从 Seesaw 故障中恢复。

恢复损坏的集群

以下部分介绍了如何恢复损坏的集群。

从 ESXi 主机故障中恢复

Google Distributed Cloud 依赖 vSphere HA 从 ESXi 主机故障中提供恢复。vSphere HA 可以持续监控 ESXi 主机,并在需要时自动重启其他主机上的虚拟机。这对 Google Distributed Cloud 用户来说是透明的。

从虚拟机故障中恢复

虚拟机故障可能包括以下内容:

  • 意外删除虚拟机。

  • 虚拟机启动磁盘损坏,例如启动磁盘因垃圾邮件日志日志而变为只读状态。

  • 因性能较低的磁盘或网络设置问题而导致虚拟机启动失败,例如虚拟机因无法分配 IP 地址而无法启动。

  • Docker 叠加文件系统损坏。

  • 由于升级失败导致管理员控制层面虚拟机丢失。

  • 操作系统问题。

Google Distributed Cloud 为管理员插件节点、用户控制层面和用户节点提供了自动恢复机制。您可以为每个管理员集群和用户集群启用此节点自动修复功能。

管理员控制层面虚拟机比较特殊,因为它并非由 Kubernete 集群管理,其可用性不会影响业务连续性。如需恢复管理员控制平面虚拟机故障,请与 Cloud Customer Care 联系。

从存储故障中恢复

某些存储故障可以通过 vSphere HA 和 vSAN 缓解,而不会影响 Google Distributed Cloud。但是,某些 vSphere 级别的存储故障可能会造成各种 Google Distributed Cloud 组件发生数据损坏或丢失。

集群和用户工作负载的有状态信息存储在以下位置:

  • etcd:每个集群(管理员集群和用户集群)都有一个 etcd 数据库,用于存储集群的状态(Kubernetes 对象)。
  • PersistentVolumes:由系统组件和用户工作负载使用。

从 etcd 数据损坏或丢失中恢复

Etcd 是 Kubernetes 用于存储所有集群状态(包括用户应用清单)的数据库。如果用户集群的 etcd 数据库损坏或丢失,则应用生命周期操作将停止运行。如果管理员集群的 etcd 数据库损坏或丢失,则用户集群生命周期操作将停止运行。

Etcd 不提供用于数据损坏检测的可靠内置机制。如果您怀疑 etcd 数据损坏或丢失,则需要查看 etcd Pod 的日志。

挂起/错误/崩溃循环的 etcd Pod 不一定表示 etcd 数据损坏或丢失。这有可能是托管 etcd Pod 的虚拟机上的错误导致的。您应仅为数据损坏或丢失情况执行以下 etcd 恢复。

为了能够从 etcd 数据损坏或丢失恢复(到最近的集群状态),必须在集群中的任何生命周期操作(例如创建、更新或升级)之后备份 etcd 数据。如需备份 etcd 数据,请参阅备份管理员集群备份用户集群

恢复 etcd 数据会使集群回到之前的状态。如果在部署应用之前执行备份,然后使用该备份恢复集群,则最近部署的应用将不会在恢复的集群中运行。例如,如果您使用创建用户集群之前截取的管理员集群的 etcd 快照,则恢复的管理员集群将会移除用户集群控制层面。因此,我们建议您在每个关键集群操作后备份集群。

在以下情况下,可能会发生 etcd 数据损坏或丢失失败:

  • 三节点 etcd 集群(HA 用户集群)的一个节点由于数据损坏或丢失而永久损坏。此时,只有一个节点损坏,并且 etcd 仲裁仍然存在。这种情况可能会在高可用性集群中发生,即其中一个 etcd 副本的数据已损坏或丢失。通过将失败的 etcd 副本替换为干净状态的新副本,可以在不丢失任何数据的情况下解决此问题。如需了解详情,请参阅替换失败的 etcd 副本

  • 三节点 etcd 集群(HA 用户集群)的两个节点由于数据损坏或丢失而永久损坏。仲裁失败,因此将失败的 etcd 副本替换为新的副本不会有所帮助。必须从备份数据恢复集群状态。如需了解详情,请参阅从备份 (HA) 恢复用户集群

  • 单节点 etcd 集群(管理员集群或非 HA 用户集群)由于数据损坏或丢失而永久损坏。仲裁丢失,因此您必须通过备份创建新集群。如需了解详情,请参阅从备份(非 HA)恢复用户集群

从用户应用 PV 损坏或丢失中恢复

您可以使用某些合作伙伴存储解决方案来备份和恢复用户应用 PersistentVolume。如需查看已获得 Google Distributed Cloud 使用资格的存储合作伙伴列表,请参阅 Anthos Ready 存储合作伙伴

从负载均衡器故障中恢复

对于捆绑式 Seesaw 负载均衡器,您可以通过重新创建负载均衡器来从故障中恢复。如需重新创建负载均衡器,请将 Seesaw 升级到为管理员集群升级负载均衡器中所述的同一版本。

如果管理员集群负载均衡器出现故障,则控制层面可能无法完成升级。在具有控制平面访问权限的管理员控制平面虚拟机上运行升级。

对于集成负载平衡器 (F5),请与 F5 支持团队联系。

对于捆绑式 MetalLB 负载均衡器,系统使用集群节点作为负载均衡器。负载均衡器问题不会触发自动节点修复。您可以按照手动过程来修复节点。

后续步骤

如果您需要其他帮助,请与 Cloud Customer Care 联系。