可以使用 Azure 备份来保护 Azure Kubernetes 服务 (AKS)。 本文总结了区域可用性、支持的方案以及限制。
支持的区域
- AKS 的 Azure 备份支持将备份数据存储在以下 Azure 区域的保管库和作(快照)层中:
澳大利亚中部、澳大利亚中部 2、澳大利亚东部、澳大利亚东南部、巴西南部、巴西东南部、加拿大中部、加拿大东部、印度中部、美国中部、美国中部、美国东部 2、法国中部、法国南部、德国北部、德国中西部、意大利北部、日本东部、日本西部、Jio 印度西部、韩国中部、韩国南部、美国中北部、北欧、挪威东部、 挪威西部、南非北部、南非西部、美国中南部、印度南部、东南亚、瑞典中部、瑞士北部、瑞士西部、阿联酋北部、英国南部、英国西部、美国中西部、西欧、美国西部 2、美国西部 3
- 以下区域仅支持作(快照)层:
中国东部 2、中国东部 3、中国北部 2、中国北部 3、US GOV 亚利桑那、US GOV 得克萨斯州、US GOV 弗吉尼亚州、以色列中部、波兰中部和西班牙中部
注意
如果需要异地冗余备份且能够按需还原,请将备份存储在保管库层中,并在备份保管库上启用跨区域还原。 这可确保备份在配对的 Azure 区域中也可用,即使主要区域不可用,也允许执行还原。 请参阅 Azure 配对区域列表。
支持的场景
AKS 的 Azure 备份仅支持运行支持的 Kubernetes 版本的群集。 下面是受支持的 Kubernetes 版本列表。 如果群集的版本不受支持,备份作仍可能运行,但在备份或还原期间失败的情况并未涵盖。 为了确保完全支持和可靠性,请升级到受支持的版本,验证备份,并在问题仍然存在时联系支持。
AKS 的 Azure 备份仅支持基于 CSI 驱动程序的永久性卷(Azure 磁盘)。 不支持树中卷插件。 确保为群集启用了 CSI 驱动程序和快照。 如果已禁用,请启用这些设置。 此外,如果工作负荷使用树内卷, 请将其迁移到基于 CSI 的卷,以启用备份支持。
AKS 的 Azure 备份目前仅支持使用 CSI 驱动程序预配的基于 Azure 磁盘的永久性卷。 支持的磁盘 SKU 包括标准 HDD、标准 SSD 和高级 SSD。
支持动态和静态预配卷;但是,对于静态卷,必须在 YAML 规范中显式定义存储类,否则,将在备份期间跳过卷。
AKS 的 Azure 备份支持使用 系统分配 的托管 标识或用户分配的托管标识的群集。 不支持使用服务主体配置的群集。 若要启用备份,请将群集更新为使用系统分配的托管标识或用户分配的托管标识。
AKS 的 Azure 备份提供作层和保管库层备份。 作层备份包含支持的永久性卷类型的快照,以及存储在备份扩展安装期间指定的 Blob 容器中的元数据。 另一方面,保管库层备份存储在场外,安全且不在租户之外。 使用备份策略,可以选择同时启用作层和保管库层备份,或仅使用作层。
作为作层备份的一部分拍摄的永久性卷快照本质上是崩溃一致的。 尽管 AKS 的 Azure 备份目前不支持以完全相同的毫秒创建所有 PV 的快照,以实现跨卷的一致快照。
AKS 的 Azure 备份中支持的最小备份频率为 4 小时,另外还有 6、8、12 和 24 小时的间隔选项。 备份预计将在计划开始时间后的 2 小时内完成。 这些频率适用于作层备份,允许每天进行多个备份。 但是,在 24 小时内,只有第一次成功备份才有资格传输到保管库层。 在作层中创建备份后,最多可能需要四个小时才能将其移动到保管库层。
备份保管库和 AKS 群集应位于同一区域。 但是,它们可以位于不同的订阅中,只要是在同一租户中即可。
AKS 的 Azure 备份支持使用作和保管库层备份将备份还原到相同或不同的 AKS 群集。 目标 AKS 群集可以位于同一订阅或不同的订阅中,称为 跨订阅还原。
从作层还原时,目标 AKS 群集必须与备份位于同一区域。 但是,如果备份存储在保管库层中,并在备份保管库上启用了 异地冗余存储设置 和 跨区域还原 ,则可以还原到 Azure 配对区域中的其他区域。
若要使用 Azure CLI 为 AKS 启用 Azure 备份,请确保使用的是版本 2.41.0 或更高版本。 可以通过运行 az upgrade 命令来升级 CLI。
若要使用 Terraform 为 AKS 启用 Azure 备份,请使用版本 3.99.0 或更高版本。
AKS 的 Azure 备份要求安装备份扩展。 此扩展需要存储帐户,最好是在安装时将其中的空 Blob 容器作为输入。 不要将 Blob 容器用于非备份相关文件。
在安装备份扩展期间指定的存储帐户必须与 AKS 群集位于同一区域。 仅支持常规用途 v2 存储帐户;不支持高级存储帐户。
如果 AKS 群集部署在专用虚拟网络中,则必须将专用终结点配置为启用备份作。
备份扩展只能在使用基于 x86 的处理器并运行 Ubuntu 或 Azure Linux 作为作系统的节点池上安装。
在执行任何备份或还原作(包括删除过期的恢复点)之前,AKS 群集和备份扩展 Pod 都必须处于运行和正常状态。
用于 AKS 的 Azure 备份通过 Azure Monitor 提供警报,使你可以在不同的 Azure 服务(包括经典警报、内置 Azure Monitor 警报和用于备份失败通知的自定义日志警报)之间获得一致的警报管理体验。 此处提供了支持的备份警报
AKS 的 Azure 备份支持各种与备份相关的报表。 目前,只能通过为报表筛选器中的工作负荷类型选择“全部”来查看备份数据。 此处提供了支持的备份报告
AKS 的 Azure 备份支持 增强型软删除 ,用于保管库层中存储的备份,从而防止意外或恶意删除。 对于存储在作层中的备份,基础快照不受软删除的保护,可以永久删除。
用于 AKS 的 Azure 备份支持 多用户授权(MUA), 允许向配置备份的备份保管库上的关键作添加额外的保护层。
适用于 AKS 的 Azure 备份支持 不可变保管库,它通过防止可能导致恢复点丢失的作来帮助保护备份数据。 但是,目前不支持备份的 WORM(写入一次,读取多个)存储。
AKS 的 Azure 备份支持 Customer-Managed 密钥(CMK)加密,但仅适用于保管库层中存储的备份。
为了成功进行备份和还原操作,备份保管库的托管标识需要角色分配。 如果没有所需的权限,则分配角色后,可能会很快在备份配置或还原操作期间发生权限问题,因为角色分配需要几分钟才能生效。 了解角色定义。
不支持的方案和限制
AKS 的 Azure 备份不支持以下 Azure 磁盘 SKU:高级 SSD v2 和超级磁盘。
AKS 备份不支持 Azure 文件共享、Azure Blob 存储和基于 Azure 容器存储的永久性卷。 如果在 AKS 群集中使用这些类型的永久性卷,则可以使用专用 Azure 备份解决方案单独备份它们。 有关详细信息,请参阅 Azure 文件共享备份和 Azure Blob 存储备份。
在 AKS 群集的备份过程中,会自动跳过任何不受支持的永久性卷类型。
备份扩展不能安装在基于 Windows 的节点池或基于 ARM64 的节点池上。 使用此类节点的 AKS 群集应预配单独的基于 Linux 的节点池(最好是具有基于 x86 的处理器的系统节点池),以支持安装备份扩展。
网络隔离的 AKS 群集目前不支持 Azure 备份。
不要与 Velero 或任何基于 Velero 的备份解决方案一起安装 AKS 备份扩展,因为这样做可能会导致备份和还原作期间发生冲突。 此外,请确保 Kubernetes 资源不使用包含前缀
velero.io
的标签或注释,除非受支持的方案明确要求。 存在此类元数据可能会导致意外行为。不支持在 AKS 群集备份设置期间修改分配给备份实例的备份配置或快照资源组。
从备份配置中跳过以下命名空间,无法为备份配置:
kube-system
、kube-node-lease
、kube-public
。Azure 备份不会自动横向扩展 AKS 节点,它只会还原数据和关联的资源。 自动缩放由 AKS 本身管理,使用群集自动缩放程序等功能。 如果在目标群集上启用自动缩放,它应自动处理资源缩放。 在还原之前,请确保目标群集有足够的资源,以避免还原失败或性能问题。
以下是 AKS 备份限制:
设置 限制 每个备份保管库的备份策略数 5,000 每个备份保管库的备份实例数 5,000 每个备份实例每天允许的按需备份数 10 每个备份实例的命名空间数量 800 一天内每个备份实例允许的还原次数 10
特定于保管库备份和跨区域还原的限制
目前,永久性卷大小 <= 1 TB 的 Azure 磁盘有资格被移动到保管库层;在移动到保管库层的备份数据中,会跳过更大容量的磁盘。
目前,支持将 < = 100 个磁盘附加为永久性卷的备份实例。 如果磁盘数高于限制,则备份和还原操作可能会失败。
只有从所有网络启用公共访问权限的 Azure 磁盘才有资格移动到保管库层;如果存在除公共访问外具有网络访问权限的磁盘,则分层作会失败。
灾难恢复 功能仅在 Azure 配对区域之间可用(如果在启用了跨区域还原的异地冗余备份保管库中配置了备份)。 备份数据仅在 Azure 配对区域中可用。 例如,如果美国东部有一个 AKS 群集,该群集已在异地冗余备份保管库中备份,并且启用了跨区域还原,则备份数据也可用于美国西部进行还原。
在保管库层中,每天只创建一个计划恢复点,在主要区域中提供 24 小时的恢复点目标(RPO)。 在次要区域中,此恢复点的复制最多可能需要 12 小时,从而有效 RPO 最多 36 小时。
在作层中创建备份并有资格使用保管库层时,可能需要长达四个小时才能开始分层过程。
将备份从作层移动到保管库层时,修剪逻辑会保留必要的快照,以确保成功的分层作和数据完整性。 具体而言,在源存储(作层)中最新恢复点(RP)的分层过程中,需要以下两种快照:
- 作层(源存储)中的最新 RP。
- 保管库层(目标存储)中以前的强化 RP。
因此,作层中的两个恢复点是有意保留的,而不是修剪:
- 作层中最新的 RP。
- 链接到最新保管库层 RP 的作层中的 RP。
此行为可防止意外数据丢失并确保备份一致。 因此,你可能会注意到,由于这些分层依赖项,某些作备份的保留时间长于配置的每日保留策略。
将备份从作层移动到保管库层时,提供给备份扩展的存储帐户应最好启用公用网络访问。 如果存储帐户位于防火墙后面或启用了专用访问,请确保在存储帐户的网络设置中将备份保管库添加为受信任的服务,以允许无缝数据传输。
从保管库层还原期间,暂存位置(包括存储帐户和资源组)中的冻结资源在还原后不会被清理。 必须手动删除它们。
在还原期间,过渡存储帐户必须启用公共网络访问权限,以允许备份服务访问和传输数据。 如果没有公共访问,还原作可能会由于连接限制而失败。
在还原期间,如果目标 AKS 群集部署在专用虚拟网络中,则必须在群集与过渡存储帐户之间启用专用终结点,以确保安全且成功的数据传输。
如果目标 AKS 群集版本与备份期间使用的版本不同,还原操作可能会失败,或者完成但同时针对各种场景(例如较新的群集版本中有已弃用的资源)发出警告。 如果从保管库层还原,则可以使用暂存位置中的冻结资源将应用程序资源还原到目标群集。
Terraform 部署目前不支持基于保管库层的备份。