你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
AKS 备份和恢复
备份和恢复是任何组织的运营和灾难恢复策略的重要组成部分。 备份和恢复计划通常依赖于一组多样化的技术和做法,这些技术和做法基于将数据和应用程序的定期副本复制到单独的辅助设备或服务。 如果发生系统故障、数据丢失或灾难,则这些副本用于恢复数据和应用程序,以及它们依赖的业务操作。
Azure Kubernetes 服务(AKS)第 2 天操作指南的这一部分介绍了 AKS 的备份和恢复实践。
为什么备份 AKS 群集非常重要
随着越来越多的组织采用云原生部署和 Kubernetes,将 Kubernetes 群集和工作负载纳入全面的备份和恢复策略变得越来越重要。
在 AKS 中实现备份和恢复使你可以:
- 从 AKS 群集创建配置和数据的辅助副本,以便在发生不可逆系统故障、数据丢失或灾难时使用。
- 将 Kubernetes 资源和应用程序数据从一个 AKS 群集复制到另一个群集。
- 复制 AKS 群集以创建其他环境。
- 在进行维护操作(如 AKS 版本升级)之前,先获取工作负载快照。
- 遵循数据保护要求,以遵守法规或组织规定。
- 如果检测到最近的部署或更改中有问题,快速回退到以前的部署。
虽然在出现问题时,备份有助于还原工作负载,但备份无法提供高可用性 (HA)。
在 AKS 中的区域内高可用性和跨区域灾难恢复方面,可以考虑其他几个选项,例如:
- 可用性区域:AKS 支持使用可用性区域(Azure 区域中物理上独立的数据中心)。 通过跨多个可用性区域部署 AKS 群集,可以确保区域中有更高的复原能力和容错能力。 这样,即使一个区域遇到中断,应用程序也能保持正常运行。
- 永久性卷的冗余选项:AKS 为永久性卷提供了各种冗余选项。 适用于 Kubernetes 的 Azure 磁盘 CSI 驱动程序支持使用本地冗余存储 (LRS) 或区域冗余存储 (ZRS) 的内置存储类和自定义存储类,以提高区域内复原能力。 有关详细信息,请参阅驱动程序参数。
- Azure Kubernetes 舰队管理器:支持 AKS 群集实现多群集和大规模区域内和跨区域方案。
- Azure 容器注册表 (ACR) 的异地冗余选项:Azure 容器注册表 (ACR) 提供异地复制功能。 使用异地冗余时,容器映像会跨不同的 Azure 区域复制。 因此,即使特定区域遇到中断,映像也可用,从而为容器注册表提供更高的可用性。
还可以使用基础结构即代码 (IaC)、Azure Pipelines、GitOps 和 Flux 等方法,在发生灾难时快速重新部署工作负载。
要详细了解这些方法,你可以查看以下文章:
- 使用 Azure Pipelines 生成并部署到 Azure Kubernetes 服务
- 教程:使用 GitOps with Flux v2 部署应用程序
- 了解 ARM 模板的结构和语法
- 什么是 Bicep?
- Azure 上的 Terraform 概述:什么是 Terraform?
备份内容
一般情况下,考虑 AKS 和 Kubernetes 群集的备份和恢复时,必须精准确定备份中应包含哪些组件,以确保成功还原。 这主要包括以下关键组件:
群集状态:指群集中所有 Kubernetes 对象的当前和所需配置或状态。 这包含各种对象,例如部署、Pod、服务等。 群集状态存储在高可用性 etcd 键值对数据库中,该数据库通常只能通过 API 服务器访问,就像 AKS 这样的托管群集一样。 群集状态以声明性方式定义,是应用于群集的所有 Kubernetes 配置文件的结果,例如 YAML 清单。
应用程序数据:指在群集中运行的容器化工作负载创建、托管或访问的数据。 为了确保 Pod 或容器重启的数据持久性,Kubernetes 建议将应用程序数据存储在永久性卷中。 这些卷可以静态创建或动态创建,并且可以由各种类型的持久性存储提供支持,为数据存储和管理要求提供灵活性和可伸缩性。
虽然群集的完整备份需要包含群集状态和应用程序数据作为单个单元,但确定每个备份的最佳范围取决于各种因素。 例如,如果存在持续集成和持续交付 (CI/CD) 管道等备用源,可能会简化群集状态的恢复。 此外,应用程序数据的大小在存储成本以及备份和恢复操作所需的时间方面起着重要作用。
理想的备份和恢复策略很大程度上取决于特定的应用程序和环境。 因此,应根据每个案例评估备份的范围。 还应考虑群集状态的重要性和应用程序数据量等因素。
面向单个群集节点 (VM) 或本地文件系统和卷(通常包含在基于服务器的系统的传统备份和恢复计划中)等其他组件与 Kubernetes 无关。 相关状态和数据不会以与传统系统相同的方式保存在单个节点或本地文件系统上。
AKS 备份和恢复选项简介
传统整体式应用程序和 Kubernetes 群集中运行的工作负载之间存在显著差异,这给备份和恢复带来了一些挑战。 Kubernetes 工作负载特意设计为高度动态和分布式,数据保存在多个基础资源和服务支持的外部永久性卷上。
为了有效支持 Kubernetes 环境,备份和恢复解决方案必须具备感知 Kubernetes 和应用程序的能力。 这类解决方案应提供一定程度的自动化、可靠性和集成,而旧版或更传统的备份和恢复工具中通常不具备这些。
提供了各种 Kubernetes 原生备份和恢复解决方案,包括从开源到闭源的选项,以及提供不同许可模式。
下面是可用于 AKS 的备份和恢复解决方案的一些示例。 一个值得注意的例子是,Microsoft 完全托管的第一方解决方案称为“Azure Kubernetes 服务 (AKS) 备份”,该解决方案提供一项 Azure 集成服务,旨在备份和恢复 AKS 群集及其工作负载。 此列表并不详尽,只提供一些可用选项。
AKS 备份
AKS 备份是用于备份和还原 AKS 群集的 Azure 服务。 这是一个简单的 Azure 原生过程,可用于备份和还原 AKS 群集中运行的容器化应用程序和数据。
AKS 备份允许按需备份或按计划备份完整或精细的群集状态以及存储在 Azure 基于磁盘的永久性卷中的应用程序数据。 该服务与 Azure 备份 中心集成,在 Azure 门户中提供一个区域,可帮助你大规模管理、监视、操作和分析备份。
如要详细了解 AKS 备份的工作原理及其功能,请参阅关于使用 Azure 备份的 AKS 备份。
Kasten
Kasten 是一个商业产品,为运营团队提供易于使用的安全系统,用于备份和恢复 Kubernetes 应用程序。 该产品同时拥有功能有限且无支持的免费版本,以及包含更多功能和客户支持的付费版本。
将 Kasten 部署为群集中的 Kubernetes 管理器时,它提供全面的备份解决方案。 Kasten 带有管理仪表板,用于集中管理和查看。 借助 Kasten,用户可以从增量备份和应用程序感知备份中受益,从而让数据得到高效保护。 此外,Kasten 还提供灾难恢复功能。 这些功能包括自动故障转移和故障回复,以及数据迁移和确保安全性的功能。
有关 Kasten 功能集的更多详细信息,请参阅 Kasten K10 文档。 要了解如何有效将 Kasten 与 AKS 群集配合使用,请参阅在 Azure 上安装 K10。
Velero
Velero 是适用于 Kubernetes 的常用开源备份和恢复工具。 它有一个免费和不受限制的版本供所有用户使用,支持和维护由一些项目参与者提供。
Velero 在群集中作为部署运行,并为应用程序备份、恢复和数据迁移提供一组全面的功能。 虽然仪表板无法开箱即用,但可以通过外部集成来添加。
有关其功能集以及如何将其与 AKS 群集集成的详细信息,请参阅 Velero 文档。
安装和配置 AKS 备份
要安装和配置 AKS 备份,请执行以下步骤:
- 有关将 AKS 备份与 AKS 群集配合使用的先决条件的详细说明,请参阅使用 Azure 备份的 AKS 备份的先决条件。
- 查看 AKS 备份支持矩阵,详细了解 AKS 备份的区域可用性、支持的方案和限制。
- 有关如何在订阅上注册所需资源提供程序和管理这些注册的指导,请参阅使用 Azure 备份管理 AKS 备份。
- 有关如何使用 AKS 备份为 AKS 群集设置备份和恢复的详细说明,请参阅使用 Azure 备份来备份 AKS。 说明包括创建和配置所有必要的 Azure 资源的内容,例如备份保管库、备份策略和备份实例。
- 有关如何从现有备份实例执行 AKS 群集的完整还原或项目级还原的详细说明,请参阅使用 Azure 备份还原 AKS。
AKS 中的备份频率和保留期:定义备份策略
确定备份频率和保留期是备份和恢复解决方案的一个基本方面。 这些参数定义备份的执行频率以及备份在删除前保留多长时间。 选择 AKS 群集及其工作负载的备份频率和保留期时应符合恢复点目标 (RPO) 和恢复时间目标 (RTO) 的预定义目标。
在 Kubernetes 方案中,RPO 表示可以容忍和接受的最大群集状态或数据丢失量。 RTO 指定出现异常群集状态或数据丢失与恢复群集操作之间的最大允许时间。
所选的备份频率和保留期是在理想的 RPO/RTO 目标、存储成本和备份管理开销之间权衡的结果。 这意味着,所有 AKS 群集和工作负载都不存在一个“一刀切”的配置,应逐个定义每个群集或工作负载的最佳配置,以满足业务要求,并仔细规划和考虑。 定义 AKS 群集的备份频率和保留期时要考虑的相关因素包括:
- 严重性:在业务连续性方面,与群集及其工作负载应用程序数据关联的严重性级别。
- 访问模式和更改率:在给定时间段内添加、修改、删除的群集状态和数据量。
- 数据卷:影响存储成本和完成备份和恢复操作所需的时间的数据量。
- 合规性:根据内部合规性规则和行业规定对数据保留和数据主权的要求。
在 AKS 备份服务中,备份频率和保留期存储为备份策略资源,该资源适用于永久性卷中的群集状态和应用程序数据。
AKS 备份中的备份策略支持每日和每小时备份,保留期最多为 360 天,同时可以定义多个策略并将其应用于同一群集。
有关如何在 AKS 备份中配置备份策略的更多信息,请参阅创建备份策略。
其他备份注意事项
要确保备份和恢复解决方案满足组织的要求和策略,请考虑以下几点:
- 恢复点目标 (RPO) 和恢复时间目标 (RTO):确定是否有需要满足备份和恢复操作要求的特定 RPO 和 RTO 目标。
- 永久性卷 (PV):验证是否正在使用永久性卷并确保 AKS 备份解决方案支持你的 PV 类型。 有关兼容性详细信息,请参阅 AKS 备份支持矩阵。
- 备份范围:定义需要备份的内容,例如特定命名空间、资源类型或群集中的特定数据。 有关详细信息,请参阅配置备份作业。
- 备份频率和保留期:确定你需要的备份执行频率以及备份保留期限。 可以使用备份策略配置此设置。 有关详细信息,请参阅定义备份策略。
- 群集选择:决定是否需要根据要求备份所有群集或仅备份特定的生产群集。
- 测试还原过程:执行定期测试还原以验证备份策略的可靠性和可用性。 此步骤对于确保备份和恢复解决方案的有效性至关重要。 有关详细信息,请参阅还原 AKS 群集。
- 支持的方案:验证 AKS 备份解决方案是否支持你的特定方案。 有关兼容性的信息,请参阅 AKS 备份支持矩阵。
- 预算分配:考虑是否有用于备份和还原操作的特定预算分配。 查看 AKS 备份解决方案提供的定价信息,以符合预算要求。
通过将这些其他注意事项考虑在内,可以确保 AKS 的备份和恢复解决方案能够有效且高效满足组织的需求和偏好。
AKS 备份位置和存储
AKS 备份使用备份保管库和存储帐户来存储备份期间从群集捕获的不同类型的数据。
对于基于磁盘的永久性卷,AKS 备份使用基础 Azure 磁盘的增量快照,这些快照存储在 Azure 订阅中。
备份保管库是 Azure 中的安全存储实体,用于存储 Azure 备份支持的工作负载(例如 AKS 群集)的备份数据。 备份保管库本身包含备份策略以及备份作业创建的备份和恢复点。
Azure 会自动管理备份保管库的存储。 你可以从其中存储的数据的多个冗余选项中进行选择,然后在创建备份保管库时进行配置。
存储帐户是 Azure 中数据对象的存储区域,具有高度可配置性。 它提供多个区域内和跨区域冗余选项,以确保数据持续性。 AKS 备份使用指定存储帐户中的 Blob 容器来备份 AKS 群集的某些组件。
增量快照是托管磁盘的时间点备份;拍摄快照后,这些备份仅包含自上次快照以来的更改。 第一个增量快照是磁盘的完整副本。 后续增量快照仅捕获自上一快照以来磁盘的增量更改。
使用 AKS 备份在 AKS 群集之间迁移工作负载
可以使用 AKS 备份作为特定群集的备份和恢复机制。 AKS 备份还支持迁移方案,方法是从一个群集执行备份并将其还原到另一个群集,例如:
- 将开发群集还原到过渡群集
- 跨多个群集复制内容
要确保你的方案受支持,请参阅以下文档:
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Adam Sharif | 技术顾问
- Joao Tavares | 高级升级工程师
其他参与者:
- Paolo Salvatori | FastTrack for Azure 首席客户工程师
- Sonia Cuff | 首席云大使主管
后续步骤
详细了解 AKS 备份
- AKS 备份概述
- AKS 备份支持矩阵
- AKS 备份先决条件
- 配置 AKS 备份
- 创建备份保管库
- 创建备份策略
- 配置备份
- 还原 AKS 群集
- AKS 业务连续性和灾难恢复的最佳做法
- 可靠性模式 - 云设计模式