Partager via

Azure Kubernetes 服务备份支持矩阵

可以使用 Azure 备份来保护 Azure Kubernetes 服务 (AKS)。 本文总结了区域可用性、支持的方案以及限制。

支持的区域

  • 中国区域目前仅支持作(快照)层:中国东部 2、中国东部 3、中国北部 2、中国北部 3。

支持的场景

  • AKS 的 Azure 备份仅支持运行支持的 Kubernetes 版本的群集。 下面是受支持的 Kubernetes 版本列表。 如果群集的版本不受支持,备份操作仍可能运行,但在备份或还原期间失败未涵盖。 为了确保完全支持和可靠性,请升级到受支持的版本,验证备份,并在问题仍然存在时联系支持。

  • AKS 的 Azure 备份仅支持基于 CSI 驱动程序的永久性卷。 不支持树中卷插件。 确保为群集启用了 CSI 驱动程序和快照。 如果已禁用,请启用这些设置。 此外,如果工作负荷使用树内卷, 请将其迁移到基于 CSI 的卷,以启用备份支持

  • AKS 的 Azure 备份支持使用 CSI 驱动程序预配的以下永久性卷类型:

    • 基于 Azure 磁盘的永久性卷:支持的磁盘 SKU 包括标准 HDD、标准 SSD、高级 SSD、高级 SSD v2 和超级磁盘。 尽管所有这些 SKU 都支持快照和还原操作,但高级 SSD v2 和超级磁盘的操作可能需要更长的时间。 这是因为这两个进程都涉及将数据从卷复制到快照和回发。 因此,快照可能显示为可用,并且卷可能在基础数据复制操作完全完成之前装载,从而导致还原的数据在可见之前出现延迟。
    • 基于 Azure 文件的永久性卷(仅限 SMB 协议):支持标准和高级文件共享。 CSI 驱动程序版本必须为 1.32 或更高版本。 不支持使用 NFS 协议的 Azure 文件。
  • 支持动态和静态预配卷;但是,对于静态卷,必须在 YAML 规范中显式定义存储类,否则,备份期间会跳过卷。

  • AKS 的 Azure 备份支持使用 系统分配 的托管 标识或用户分配的托管标识的群集。 不支持使用服务主体配置的群集。 若要启用备份,请将群集更新为使用系统分配的托管标识或用户分配的托管标识。

  • AKS 的 Azure 备份提供作层和保管库层备份。 操作层备份由支持的永久性卷类型(Azure 磁盘和 Azure 文件存储)的快照以及存储在备份扩展安装期间指定的 Blob 容器中的元数据组成。 另一方面,保管库层备份存储在场外,安全且不在租户之外。 请注意,基于 Azure 磁盘的卷仅支持保管库层;Azure 文件卷仅备份到操作层。 使用备份策略,可以选择同时启用作层和保管库层备份,或仅使用作层。

  • 作为作层备份的一部分拍摄的永久性卷快照本质上是崩溃一致的。 尽管 Azure AKS 备份目前不支持以完全相同的毫秒创建所有 PV 的快照,以实现跨卷的一致快照。

  • AKS 的 Azure 备份中支持的最低备份频率是每 4 小时一次,另一个选项为 6、8、12 和 24 小时。 备份预计将在计划开始时间后的 2 小时内完成。 这些频率适用于作层备份,允许每天进行多个备份。 但是,在 24 小时内,只有第一个成功的备份才有资格传输到保管库层(仅适用于基于 Azure 磁盘的卷)。 对于基于 Azure 文件的卷,备份保留限制为操作层中最多 30 天。 在作层中创建备份后,最多可能需要四个小时才能将其移动到保管库层。

  • 备份保管库和 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)加密,但仅适用于保管库层中存储的备份。

  • 为了成功进行备份和还原操作,备份保管库的托管标识需要角色分配。 对于基于 Azure 文件的卷,源群集和目标 AKS 群集都必须在托管文件共享的存储帐户上分配 存储文件数据特权参与者 角色。 对于静态预配的文件共享,必须手动分配此角色;对于动态预配的卷,备份保管库会自动处理角色分配。 如果没有所需的权限,则分配角色后,可能会很快在备份配置或还原操作期间发生权限问题,因为角色分配需要几分钟才能生效。 了解角色定义

不支持的方案和限制

  • 对于基于 Azure 文件的永久性卷,仅支持 SMB 协议。 不支持使用 NFS 协议的 Azure 文件。 此外,仅支持包含 25,000 个文件的文件共享或更少文件;较大的文件共享可能会导致还原失败。 不支持具有专用网络终结点的 Azure 文件;仅支持可公开访问的文件共享(网络终结点类型设置为 “全部”)。

  • AKS 备份不支持 Azure Blob 存储和基于 Azure 容器存储的永久性卷。 如果在 AKS 群集中使用这些类型的永久性卷,则可以使用专用 Azure 备份解决方案单独备份它们。 有关详细信息,请参阅 Azure Blob 存储备份

  • 在 AKS 群集的备份过程中,会自动跳过任何不受支持的永久性卷类型。 这包括树内卷(其中预配器: kubernetes.io/azure-diskkubernetes.io/azure-file)必须迁移到基于 CSI 驱动程序的卷。

  • 备份扩展不能安装在基于 Windows 的节点池或基于 ARM64 的节点池上。 使用此类节点的 AKS 群集应预配单独的基于 Linux 的节点池(最好是具有基于 x86 的处理器的系统节点池),以支持安装备份扩展。

  • 网络隔离的 AKS 群集目前不支持 Azure 备份。

  • 请勿与 Velero 或任何基于 Velero 的备份解决方案一起安装 AKS 备份扩展,因为这样做可能会导致备份和还原操作期间发生冲突。 此外,请确保 Kubernetes 资源不使用包含前缀 velero.io的标签或注释,除非受支持的方案明确要求。 存在此类元数据可能会导致意外行为。

  • 不支持修改在 AKS 群集备份设置期间分配给备份实例的备份配置或快照资源组。 无法更新现有备份实例以包含基于 Azure 文件的卷;必须创建新的备份实例才能备份这些卷。

  • 从备份配置中跳过以下命名空间,无法为备份配置: kube-systemkube-node-leasekube-public

  • Azure 备份不会自动横向扩展 AKS 节点,它只会还原数据和关联的资源。 自动缩放由 AKS 本身管理,使用群集自动缩放程序等功能。 如果在目标群集上启用自动缩放,它应自动处理资源缩放。 在还原之前,请确保目标群集有足够的资源,以避免还原失败或性能问题。

  • 以下是 AKS 备份限制:

    设置 限制
    每个备份保管库的备份策略数 5,000
    每个备份保管库的备份实例数 5,000
    每个备份实例每天允许的按需备份数 10
    每个备份实例的命名空间数量 800
    一天内每个备份实例允许的还原次数 10

基于 Azure 文件的永久性卷 - 其他注意事项

  • 快照存储:Azure 文件卷作为与文件共享存储在同一存储帐户中的快照进行备份,与存储在单独的快照资源组中的 Azure 磁盘快照不同。

  • 快照生命周期:Azure 文件快照与文件共享的生命周期相关联。 如果删除文件共享或它所在的存储帐户,也会删除关联的快照,使备份无法恢复。 建议创建将回收策略设置为 “保留 ”的永久性卷,以确保如果删除 PVC 或命名空间,卷及其关联的备份将继续存在。 可以使用以下方法更新回收策略: kubectl patch pv <your-pv-name> --patch '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'

  • 机密备份:如果使用 Kubernetes 机密存储 Azure 文件卷的存储帐户密钥,则必须在备份配置中包含机密。 否则,还原期间会出现装载问题。

  • 自定义存储类:若要备份使用自定义存储类创建的基于 Azure 文件的卷,还必须备份存储类本身。

  • 存储帐户锁:不要对包含文件共享的存储帐户应用读取或删除锁,因为这样可以防止在恢复点保留期到期后删除恢复点。

  • 跨区域/订阅还原:对于基于 Azure 文件的卷,不支持还原到其他订阅或区域。 Azure 文件快照绑定到存储帐户,不能跨订阅或区域还原。

  • 混合工作负荷:可以在同一备份实例中备份 Azure 磁盘和 Azure 文件卷。 但是,如果需要不同的备份目标(磁盘保管库层和文件操作层),则必须为每个资源类型创建一个单独的备份实例。

  • CLI 支持:目前,仅 Azure 门户才提供备份基于 AFS 的永久性卷的功能。 目前不支持 Powershell、Azure CLI、Terraform 和其他编程工具。

  • 文件大小限制:仅支持≤ 25,000 个文件的文件共享。 较大的文件共享可能会导致还原期间失败。

  • NFS 文件支持:使用 SMB 协议的文件共享仅在创建备份时跳过基于 NFS 协议的文件。

  • 保留持续时间:用于基于文件的永久性卷的备份策略支持最长保留 30 天。 由于 Azure 文件共享可以同时存在的最多 200 个快照,因此会施加此限制。

特定于保管库备份和跨区域还原的受支持方案和限制

  • 目前,永久性卷大小 <= 1 TB 的 Azure 磁盘有资格被移动到保管库层;在移动到保管库层的备份数据中,会跳过更大容量的磁盘。

  • 目前,支持将 < = 100 个磁盘附加为永久性卷的备份实例。 如果磁盘数高于限制,则备份和还原操作可能会失败。

  • 只有启用了公用网络访问的 Azure 磁盘、禁用了 AAD(数据访问)身份验证,并且禁用了磁盘加密集(DES)才有资格移动到保管库层。 如果磁盘具有受限的网络访问、已启用 AAD 身份验证或启用 DES,则分层作将失败。

  • 灾难恢复 功能仅在 Azure 配对区域之间可用(如果在启用了跨区域还原的异地冗余备份保管库中配置了备份)。 备份数据仅在 Azure 配对区域中可用。 例如,如果中国北部有一个 AKS 群集,该群集在启用了跨区域还原的异地冗余备份保管库中备份,则备份数据也可用于中国北部进行还原。

  • 在保管库层中,每天只创建一个计划恢复点,在主要区域中提供最多 24 小时的恢复点目标(RPO)。 在次要区域中,此恢复点的复制最多可能需要 12 小时,从而有效 RPO 最多 36 小时。

  • 当在操作层创建备份并符合保管库层的条件时,分层过程可能需要长达四个小时才能开始。

  • 将备份从作层移动到保管库层时,修剪逻辑会保留必要的快照,以确保成功的分层作和数据完整性。 具体而言,在源存储(作层)中最新恢复点(RP)的分层过程中,需要以下两种快照:

    • 作层(源存储)中的最新 RP。
    • 保管库层(目标存储)中以前的强化 RP。

因此,作层中的两个恢复点是有意保留的,而不是修剪:

  • 作层中最新的 RP。
  • 链接到最新保管库层 RP 的作层中的 RP。

此行为可防止意外数据丢失并确保备份一致。 因此,你可能会注意到,由于这些分层依赖项,某些作备份的保留时间长于配置的每日保留策略。

  • 将备份从作层移动到保管库层时,提供给备份扩展的存储帐户应最好启用公用网络访问。 如果存储帐户位于防火墙后面或启用了专用访问,请确保在存储帐户的网络设置中将备份保管库添加为受信任的服务,以允许无缝数据传输。

  • 从保管库层还原期间,暂存位置(包括存储帐户和资源组)中的冻结资源在还原后不会被清理。 必须手动删除它们。

  • 在还原期间,过渡存储帐户必须启用公共网络访问权限,以允许备份服务访问和传输数据。 如果没有公共访问,还原作可能会由于连接限制而失败。

  • 在还原期间,如果目标 AKS 群集部署在专用虚拟网络中,则必须在群集与过渡存储帐户之间启用专用终结点,以确保安全且成功的数据传输。

  • 如果目标 AKS 群集版本与备份期间使用的版本不同,还原操作可能会失败,或者完成但同时针对各种场景(例如较新的群集版本中有已弃用的资源)发出警告。 如果从保管库层还原,则可以使用暂存位置中的冻结资源将应用程序资源还原到目标群集。

  • Terraform 部署目前不支持基于保管库层的备份。

后续步骤