Azure Arc 启用的 AKS 中的应用程序可用性
适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
Azure Kubernetes 服务 (Azure Arc 启用的 AKS) 提供了一个完全受支持的容器平台,可在 Kubernetes 容器业务流程平台上运行云原生应用程序。 该体系结构支持运行虚拟化的 Windows 和 Linux 工作负载。
AKS 体系结构使用故障转移聚类分析和实时迁移构建,这些迁移会自动为目标 (工作负载) 群集启用。 在各种中断事件期间,托管客户工作负载的虚拟机可自由移动,而应用程序不会出现故障。 此体系结构意味着传统企业客户(作为 Azure Stack HCI 或 Windows Server 上的 AKS 的单一实例管理旧应用程序)可以获得与旧 VM 应用程序当前体验的类似 (或更好的) 运行时间。
本文介绍的一些基本概念适用于希望在启用实时迁移的 AKS Arc 上运行容器化应用程序的用户,以确保应用程序在中断期间可用。 Kubernetes 术语(例如“自愿中断”和“非自愿中断”)用于表示 Pod 中运行的应用程序的故障时间 。
什么是实时迁移?
实时迁移是一项 Hyper-V 功能,可用于在无停机的情况下将正在运行的虚拟机从一台 Hyper-V 主机透明地移动到另一台主机。 实时迁移的主要优势是灵活性;正在运行的虚拟机不绑定到单个主机。 这使用户可执行多种操作,例如在停用或升级主机之前清空虚拟机的特定主机。 与 Windows 故障转移群集配对时,实时迁移可以创建高度可用和容错的系统。
Azure Stack HCI 和 Windows Server 上的 AKS 的当前体系结构假定你在 Azure Stack HCI 群集环境中启用了实时迁移。 因此,所有 Kubernetes 工作器节点 VM 都是在配置实时迁移的情况下创建的。 发生中断时,可在物理主机上移动这些节点,确保平台高度可用。
在 Kubernetes 的基础上以单一实例的形式运行旧版应用程序时,此体系结构可满足高可用性需求。 Kubernetes 管理可用工作器节点上 Pod 的计划,而实时迁移则管理可用物理主机上的工作器节点 VM 的计划。
应用程序中断方案
一项对比研究调查了在“Azure Stack HCI 和 Windows Server 上的 AKS”上的 VM 中运行的应用程序的恢复时间,该研究清楚表明,常见中断事件对应用程序的影响极小。 三种示例中断场景包括:
- 应用导致物理计算机重启的更新。
- 应用需重新创建工作器节点的更新。
- 物理计算机的意外硬件故障。
注意
这些方案假定应用程序所有者仍使用 Kubernetes 相关性和非相关性设置来确保跨工作器节点正确调度 Pod。
中断事件 | 在 Azure Stack HCI 上的 VM 中运行应用程序 | 在 Azure Stack HCI 或 Windows Server 上的 AKS 上的 VM 中运行应用程序 |
---|---|---|
应用导致物理计算机重启的更新 | 无影响 | 无影响 |
应用涉及重新创建工作器节点 (或重新启动 VM 的更新) | 无影响 | 多种多样 |
物理计算机的意外硬件故障 | 6-8 分钟 | 6-8 分钟 |
应用导致物理计算机重启的更新
在物理主机维护事件(例如应用导致主机重启的更新)期间,不会对群集中运行的应用程序产生任何影响。 群集管理员会清空主机,并确保在应用更新之前实时迁移所有 VM。
应用涉及重新创建工作器节点的更新
此方案需关闭工作器节点 VM 来执行常规维护。 为了准备更新,群集管理员会清空并隔离节点,以便在应用更新之前将所有 Pod 逐出到可用的工作器节点。 更新完成后,工作器节点将重新加入并可用于计划。
注意
应用程序的可用性各不相同,因为它包括下载基础容器映像所需的时间,尤其是对于存储在公有云中的较大映像。 因此,建议使用小型基本容器映像,对于 Windows 容器,建议使用 nano server
基本映像。
物理计算机的意外硬件故障
在这种情况下,其中一个工作器节点 VM 中托管旧式应用程序容器/Pod 的物理计算机发生非自愿中断事件。 故障转移聚类分析将主机置于隔离状态,然后在 6 到 8 分钟后,开始将这些 VM 实时迁移到幸存主机的过程。 在这种情况下,应用程序停机时间相当于重启主机和工作节点 VM 所需的时间。
结论
AKS 故障转移聚类分析技术旨在确保 Azure Stack HCI 和 Windows Server 中的计算环境具有高可用性和容错能力。 不过,应用程序所有者仍然必须将部署配置为使用 Kubernetes 功能(例如 Deployments
、Affinity Mapping
和 RelicaSets
),确保 Pod 在中断场景中具有复原能力。
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈