集群内备份和恢复应用

备份中心可用于解决Kubernetes集群内的应用备份与恢复,实现集群的备份容灾能力。

使用限制

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

  • 备份中心功能仅支持v1.16及以上版本的集群使用,如果集群版本过低,请升级ACK集群K8s版本

    其中,云盘数据备份默认使用ECS快照功能,该功能仅支持v1.18及以上版本的CSI集群使用,否则将改用云备份服务备份。

前提条件

计费说明

备份中心功能本身不收费,使用备份中心时,可能用到以下相关服务,您需要支付相关的存储费用。

  • 对象存储OSS:OSS Bucket用于存储备份的集群资源(即相关YAML)。OSS相关计费请参见计费概述

  • 云盘快照:用于备份阿里云云盘存储卷数据。快照计费请参见快照计费

    说明
    • 自2023年10月12日11:00起,阿里云ECS云盘不再收取快照极速可用存储费和快照极速可用功能费,更多信息,请参见快照极速可用能力

    • 使用PL0、PL1、PL2、PL3级别的ESSD云盘或ESSD AutoPL云盘时,在备份时创建的快照默认开启快照极速可用功能。

  • 云备份:用于备份其他类型(除云盘外)的存储卷数据。云备份侧会创建容器备份库,收取备份存储容量费。更多信息,请参见价格详情

步骤一:创建备份仓库

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

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

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

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

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

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

    配置项

    说明

    备份仓库名称

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

    OSS Bucket 区域

    OSS Bucket所在地域。

    OSS Bucket 名称

    OSS Bucket的名称。

    若为ACK托管版集群,您需要提前创建OSS Bucket,且OSS Bucket的名称须以cnfs-oss****开头。

    OSS Bucket 子目录

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

    可见范围

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

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

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

步骤二:创建备份计划或立即备份

  • 创建备份计划:将按照设置的备份周期,周期性地创建备份任务,直到该备份计划被删除。创建时间由备份周期决定,例如,每隔一段时间,或每天、每周、每月等特定的某个时间。

  • 立即备份:创建单个备份任务,创建时间为当前时间。

创建备份计划或立即备份都将在集群中下发备份任务,任务的状态将会被记录在备份记录页签。

创建备份计划

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 应用备份

    系统会自动检测是否安装备份服务组件,如未安装,请根据界面提示,依次完成备份服务组件的安装。若您的集群为注册集群或专有版集群,还需要完成权限配置。具体操作,请参见安装migrate-controller备份服务组件并配置权限

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

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

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

    • 如果指定标签备份,仅支持输入一个标签。

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

    • 备份计划中备份周期的表达式,支持Linux Crontab以及按照间隔备份。

    配置项

    说明

    名称

    备份计划的名称,必填项。

    备份仓库

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

    命名空间选择方式

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

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

      说明

      仅创建备份计划时支持命名空间选择方式,立即备份默认为包含

    备份命名空间

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

    说明

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

    备份周期

    支持Crontab表达式,仅在创建备份计划时需要填写备份周期。关于如何填写,请参见创建备份计划时,备份周期如何填写

    备份存储卷

    是否备份应用使用的存储卷中的数据。

    当选中备份存储卷时,当前的数据将备份在ECS快照或云备份中。

    • 云盘类型存储卷:默认通过ECS快照进行备份;

    • 其他类型的存储卷,通过云备份服务进行备份。

    恢复时,将从ECS快照或云备份服务中获取备份的数据,恢复至新的云盘等底层存储中。

    重要

    若不勾选备份存储卷,且未通过排除资源排除存储声明、存储卷时,备份记录仅包含对应的YAML,而不包含存储的数据。YAML中记录了云盘ID、NAS Server等存储底层信息。恢复时,将通过静态方式按照YAML恢复存储声明、存储卷。

    指定标签备份

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

    指定资源

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

    排除资源

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

    备份有效期

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

更多操作

应用备份备份计划页签,您可以单击目标备份计划右侧操作列下的查看备份记录,查看自动创建的备份记录状态,若状态列显示为Completed,表示该任务备份成功。

应用备份备份计划页签,您可以单击目标备份计划右侧操作列下的编辑,修改备份命名空间、备份周期等相关配置。

立即备份

  1. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 应用备份

    系统会自动检测是否安装备份服务组件,如未安装,请根据界面提示,依次完成备份服务组件的安装。若您的集群为注册集群或专有版集群,还需要完成权限配置。具体操作,请参见安装migrate-controller备份服务组件并配置权限

  2. 应用备份页面,单击立即备份,在弹出的立即备份面板中,设置备份应用的相关参数,然后单击确定

    说明
    • 立即备份仅支持小写字母和数字,不能有空格。

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

    • 如果指定标签备份,仅支持输入一个标签。

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

    配置项

    说明

    名称

    立即备份的名称,必填项。

    备份仓库

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

    备份命名空间

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

    说明

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

    备份存储卷

    是否备份应用使用的存储卷中的数据。

    当选中备份存储卷时,当前的数据将备份在ECS快照或云备份中。

    • 云盘类型存储卷:默认通过ECS快照进行备份;

    • 其他类型的存储卷,通过云备份服务进行备份。

    恢复时,将从ECS快照或云备份服务中获取备份的数据,恢复至新的云盘等底层存储中。

    重要

    若不勾选备份存储卷,且未通过排除资源排除存储声明、存储卷时,备份记录仅包含对应的YAML,而不包含存储的数据。YAML中记录了云盘ID、NAS Server等存储底层信息。恢复时,将通过静态方式按照YAML恢复存储声明、存储卷。

    指定标签备份

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

    指定资源

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

    排除资源

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

    备份有效期

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

更多操作

应用备份备份记录页签,创建的备份记录状态列显示Completed,表示该任务备份成功。

您可以在目标备份记录右侧的操作列,单击拷贝创建,以基于已有备份记录快速立即备份。

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

重要

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

  1. 应用备份页面,单击立即恢复

  2. 在弹出的立即恢复面板中,设置恢复应用的相关参数,然后单击确定

    配置项

    说明

    名称

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

    备份仓库

    备份文件所在的仓库。

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

    选择备份

    备份文件。

    恢复命名空间

    支持选中一个或者多个已备份的命名空间。表示恢复选中的一个或多个命名空间中的应用。为空则表示全量恢复备份。

    说明

    若备份中包含集群级别的资源需要恢复,请保持空值。

    重定义命名空间

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

    重定义镜像仓库地址

    若需要修改备份工作负载所用镜像的镜像仓库地址,请单击添加,在左侧栏填写需要修改的镜像仓库地址,并在冒号后设置恢复后的镜像仓库地址。例如

    docker.io/library : registry.cn-hangzhou.aliyuncs.com/xxx

    更多详情,请参见恢复时如何调整备份中应用使用的镜像?

    存储类转换

    即原来的制作快照功能,对勾选了备份存储卷的备份,支持变更存储卷声明的存储类。例如,原本为NAS存储卷,选择alicloud-disk存储类后,恢复的应用将使用云盘存储原数据。

    重要

    仅支持变更FileSystem类型(即使用云备份服务备份的非云盘类型)数据的存储类。

    对于ReadWriteMany类型的存储卷,暂不支持恢复为云盘类型;对于ReadOnlyMany类型的存储卷,恢复为云盘类型时,需由业务保证不会被多个节点上的副本同时挂载,以避免强制拔盘。

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

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

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

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

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

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

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

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

相关文档