集群内备份和恢复应用

更新时间: 2023-11-17 11:09:37

阿里云容器服务备份中心为集群内的有状态应用提供灾难备份和恢复能力,对于Kubernetes集群内的有状态应用的崩溃一致性、应用一致性及跨地域的灾难恢复提供了一站式的解决方案。本文介绍如何通过控制台应用备份功能实现同集群内应用的备份、制作快照及应用的恢复。

前提条件

已安装备份服务组件并完成对应权限的配置。具体操作,请参见安装备份服务组件并配置权限

使用限制

  • 备份应用时,正在被删除的资源不会被备份。

  • 已开通HBR服务。对NAS、OSS、本地盘类型存储卷进行备份时,以及在混合云场景中,备份中心需要使用HBR进行文件备份。具体操作,请参见混合云备份HBR

  • 如需使用云盘快照备份卷,需要安装CSI插件,且版本不低于v1.1.0。关于如何安装CSI插件,请参见安装与升级CSI组件

  • 如需创建NAS快照(即制作快照时对应PVC的转换为存储类列选择为alibabacloud-cnfs-nas),您需要先创建StorageClass。具体操作,请参见通过CNFS方式使用NAS文件系统

计费说明

若备份时,使用了云盘、NAS、云备份或快照等存储资源,计费说明如下所示。

步骤一:创建备份仓库

当前应用备份功能使用阿里云OSS对备份数据进行存储。若创建备份任务时无可用的备份仓库,则需执行该步骤。

说明
  • 在您集群的所在地域只需要创建一次备份仓库,您可在同一地域的不同集群使用同一个备份仓库。

  • 已创建过的备份仓库不支持更新,只能被删除。若您在删除备份仓库后,重新创建了同名的备份仓库,此新建的同名备份仓库在现有已使用过备份的集群中也无法生效。

  1. 登录容器服务管理控制台,在左侧导航栏选择多集群 > 备份中心

  2. 备份中心页面,单击创建

  3. 创建面板,配置参数,然后单击确定

    配置项

    说明

    备份仓库名称

    备份仓库的名称,支持小写字母和数字。

    OSS Bucket 区域

    OSS Bucket所在地域。

    OSS Bucket 名称

    OSS Bucket的名称。若为ACK托管版集群,则OSS Bucket的名称首部需要为cnfs-oss****。可通过CNFS OSS声明一个新的Bucket。

    OSS Bucket 子目录

    OSS Bucket的子目录(非必填)。

    可见范围

    备份仓库对其他用户的可见性,可选项:

    • 私有(Private):主账号及创建者可见

    • 公共(Public):主账号及所有子账号可见

步骤二:创建备份任务

  1. 备份中心页面,单击创建备份计划,在弹出对话框的下拉列表中选择目标集群,然后单击确定

    系统会自动检测是否安装备份服务组件,如未安装,请根据界面提示,依次完成备份服务组件的安装。具体操作,请参见步骤一:安装migrate-controller备份服务组件

  2. 创建备份计划面板,设置备份应用的相关参数后,单击确定

    说明
    • 备份任务名称仅支持小写字母和数字,不能有空格。

    • 备份命名空可选择多个。

    • 如果指定标签备份,每个备份任务只能输入一个标签。

    • 备份存储卷时,云盘快照集成了阿里云云盘快照技术,阿里云云备份(Cloud Backup)是一种高效、安全、低成本的全托管式云备份存储服务。

    • 定时备份的表达式。支持Linux Crontab以及按照间隔备份。

    • 如果开启了定时备份功能,则在应用备份页面的备份计划页签可以看到定时备份的详细配置信息。

    创建备份

    配置项

    说明

    名称

    备份任务的名称,必填项。

    备份仓库

    需要关联的备份仓库,必填项。

    命名空间选择方式

    • 包含:表示备份备份命名空间中选择的命名空间中的应用,当选中的命名空间删除时,备份时会跳过。

    • 排除:表示备份除备份命名空间中选择的命名空间外的其他命名空间,当有新的命名空间创建时,同样会被备份。

      说明

      仅创建备份计划时支持选择排除

    备份命名空间

    支持选中一个或者多个备份命名空间。表示备份选中的一个或多个命名空间中的应用,必填项。

    说明

    kube-system、kube-publish、kube-node-lease、csdr命名空间与集群强依赖,不建议直接进行备份恢复。因此,不支持备份这四个命名空间。

    备份存储卷

    是否开启备份存储卷以及存储应用中的数据。

    当选中备份存储卷时,默认为您进行数据备份。如果存储卷是云盘,则通过快照进行备份;如果存储卷不是云盘,则会通过云备份什么是云备份方式进行备份。

    备份类型

    立即备份定时备份

    当设置为定时备份时,需要配置备份周期。支持Crontab表达式设置定时备份。关于如何使用Crontab表达式,请参见how-use-cron-linux

    指定标签备份

    需要备份的应用标签,以指定备份带有该标签的应用。

    指定资源

    支持填写多个资源对象名称,多个资源对象名称以英文半角逗号(,)间隔,例如deploy, configmap等。指定资源后可以只备份特定资源。

    排除资源

    支持填写多个资源对象名称,多个资源对象名称以英文半角逗号(,)间隔,例如pod, secret等。表示排除备份选中的资源对象应用。

    备份有效期

    备份任务的数据存储有效期,过期之后数据将无法恢复。取值范围:1~65536,单位为天。

    备份和快照页签,创建的备份任务状态显示Completed,表示该任务备份成功。

    您还可以通过拷贝创建实现备份计划和立即备份任务的快速创建。

    • 备份计划:在备份计划页面右侧操作列下,单击目标备份计划对应的拷贝创建,可基于已有备份计划快速创建新的备份计划任务。

    • 立即备份任务:在备份和快照页面右侧操作列下,单击目标备份任务对应的拷贝创建,可基于已有备份任务快速创建新的立即备份任务。

步骤三:为文件系统类型的数据卷制作快照

若创建备份任务时已选中备份存储卷且存储类型使用了非云盘类型,即使用云备份(Cloud Backup)进行文件备份。根据恢复需求,您可选择制作云盘快照或文件系统CNFS快照。

  1. 应用备份页面单击备份和快照页签。

  2. 在对应备份任务右侧操作列单击制作快照

  3. 生成快照对话框,选中对应可以转换的PVC,对应PVC的转换为存储类列选择对应存储卷类型,然后单击制作快照(对应显示为Snapshot的系统已经创建快照完成,无须再次转换)。

    说明

    制作快照时,请选择对应的转换为存储类。否则,制作的快照将无法恢复。

    生成快照

    目前支持存储类型为NAS及云盘的自定义存储类。推荐您选择云盘(alicloud-disk)及NAS (alibabacloud-cnfs-nas)。

    生成快照后,对应PVC的状态会显示为ConvertionCompleted。如下图所示:制作快照

步骤四:恢复应用和数据卷

重要

对于需要备份存储卷的备份任务,在恢复数据前,确认已完成备份任务的快照制作。

  1. 应用备份页面,单击恢复页签。

  2. 恢复页签,单击创建恢复任务

  3. 创建恢复任务面板,配置恢复任务,然后单击确定

    选择备份仓库后,请单击初始化仓库,将恢复集群和指定的备份中心进行关联。每个备份仓库只需要关联一次。仓库初始化完成后,您可以选择备份仓库中指定的备份进行恢复。创建恢复任务

    配置项

    说明

    名称

    恢复任务名称,仅支持小写字母和数字。

    备份仓库

    备份文件所在的仓库。

    选择备份

    备份文件。

    重定义命名空间

    若需要修改备份数据的命名空间,请单击添加,选择备份数据所属的命名空间,在冒号后设置恢复后数据所属的命名空间。

    说明

    恢复应用时,仅恢复当前集群中不存在的资源,对于已存在的资源不会覆盖。如需恢复到之前的版本,则需要删除现有资源再进行恢复。

  4. 在提示对话框中,单击左下角的确定

  5. 验证相关的有状态应用或无状态应用,存储卷和服务可以正常启动和正常访问。

    1. 在恢复集群管理页左侧导航栏选择工作负载 > 无状态

    2. 在目标应用右侧操作列单击详情

      容器组页签下,确认目标应用的状态为Running

    3. 在集群管理页左侧导航栏中,选择存储 > 存储声明

      存储声明页面可查看已恢复的存储声明。

    4. 在集群管理页左侧导航栏中,选择网络 > 服务

    5. 服务页面单击目标的外部端点,确认是否可以访问。

阿里云首页 容器服务 Kubernetes 版 ACK 相关技术圈