你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

群集 Azure Stack Edge 设备上的 Kubernetes 故障转移方案

Kubernetes 群集部署为一种常用的开源平台,用于协调容器化应用程序。 本文介绍 Kubernetes 在双节点 Azure Stack Edge 设备上的工作原理,包括故障模式和相应的设备响应。

关于 Azure Stack Edge 上的 Kubernetes

在 Azure Stack Edge 设备上,可以通过配置计算角色来创建 Kubernetes 群集。 在你配置计算角色后,系统会为你部署和配置 Kubernetes 群集(包括主节点和工作器节点)。 然后,可以通过 kubectl、IoT Edge 或 Azure Arc 使用此群集进行工作负荷部署。

Azure Stack Edge 设备作为构成基础结构群集的单节点配置或双节点配置提供。 Kubernetes 群集与基础结构群集分开,部署在基础结构群集之上。 基础结构群集为 Azure Stack Edge 设备提供永久性存储,而 Kubernetes 群集仅负责应用程序业务流程。

Kubernetes 群集包含一个主节点和工作器节点。 群集中的 Kubernetes 节点是运行应用程序和云工作流的虚拟机。

  • Kubernetes 主节点负责维护群集的所需状态。 主节点还控制工作器节点。
  • 工作器节点运行容器化应用程序。

双节点设备上的 Kubernetes 群集

双节点设备上的 Kubernetes 群集有一个主节点和两个工作器节点。 双节点设备具有高可用性,如果其中一个节点发生故障,设备和 Kubernetes 群集都将继续运行。 有关 Kubernetes 群集体系结构的详细信息,请参阅 Kubernetes 核心概念

在双节点 Azure Stack Edge 设备上,Kubernetes 主 VM 和 Kubernetes 辅助 VM 在设备的节点 A 上运行。 在节点 B 上,一个 Kubernetes 辅助 VM 正在运行。

Kubernetes 群集中的每个辅助 VM 均为固定 Hyper-V VM。 固定 VM 与运行它的特定节点相关联。 如果设备上的节点 A 发生故障,则主 VM 故障转移到节点 B。但节点 A 上的辅助 VM 是固定 VM,不会故障转移到节点 B,反之亦然。 相反,节点 A 上的辅助 VM 的 Pod 会重新平衡到节点 B 上。

为了使重新平衡的 Pod 具有足够的容量在设备节点 B 上运行,系统强制在常规双节点 Azure Stack Edge 群集操作期间使用每个 ASE 节点的容量不超过 50%。 此容量使用会尽力完成,在某些情况下(例如工作负荷在重新平衡到 ASE 节点 B 时需要不可用的 GPU 资源),重新平衡的 Pod 可能没有足够的资源来运行。

在下一节故障模式和行为中将详细介绍这些方案。

故障模式和行为

在某些情况下,Azure Stack Edge 设备节点可能会发生故障。 本节列出了各种故障模式和相应的设备响应。

Azure Stack Edge 节点故障或重启

节点 失败 响应
节点 A 发生故障
(节点 B 没有故障)
可能出现以下故障:
  • 两个 PSU 都发生故障
  • 端口 3 和端口 4 其中一个或两个都发生故障
  • 核心组件发生故障,包括主板、DIMM、OS 磁盘
  • 整个节点故障
    对于每个故障都将出现以下响应:
    • Kubernetes 主 VM 从节点 A 故障转移到节点 B
    • 主 VM 需要几分钟才能在节点 B 上启动
    • 节点 A 中的 Pod 在节点 B 上重新平衡
    • 如果 GPU 在节点 B 上可用,GPU 工作负荷将继续运行
    节点 A 重新启动
    (节点 B 没有故障)
    节点重启 节点 A 完成重启并且辅助 VM 可用后,主 VM 将重新平衡节点 B 中的 Pod。
    节点 B 发生故障
    (节点 A 没有故障)
    可能出现以下故障:
    • 两个 PSU 都发生故障
    • 端口 3 和端口 4 其中一个或两个都发生故障
    • 核心组件发生故障,包括主板、DIMM、OS 磁盘
    • 整个节点故障
      对于每个失败,都会看到以下响应:
      • Kubernetes 主 VM 重新平衡节点 B 中的 Pod。这可能需要几分钟的时间。
      节点 B 重新启动
      (节点 A 没有故障)
      节点重启 节点 B 完成重启并且辅助 VM 可用后,主 VM 将重新平衡节点 B 中的 Pod。

      Azure Stack Edge 节点更新

      更新类型 响应
      设备节点更新 滚动更新应用于设备节点,节点将重启。
      Kubernetes 服务更新 Kubernetes 服务更新包括:
      • Kubernetes 主 VM 从设备节点 A 故障转移到设备节点 B
      • Kubernetes 主更新。
      • Kubernetes 工作器节点更新(不必按顺序)。
      整个更新过程可能需要 30 分钟或更长时间,在此时段内,Kubernetes 群集可用于任何管理操作(如部署新的工作负荷)。 尽管在更新设备时 Pod 会从设备节点中排出,但在此过程中,工作负荷可能会处于脱机状态几秒钟。

      后续步骤