跨地域跨集群迁移应用

更新时间: 2023-08-09 18:28:23

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

前提条件

注意事项

  • 跨地域应用迁移仅支持应用备份,即应用、服务及配置的元数据备份,不支持存储卷备份。

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

准备工作

本示例介绍如何跨地域跨集群实现应用备份并恢复。本示例中,华北2(北京)地域内一个名为Cluster_BJ的ACK Pro集群将作为备份集群,华南1(深圳)地域内一个名为Cluster_SZ的ACK Pro集群将作为恢复集群。备份仓库关联华北2(北京)地域内的OSS Bucket。

  1. 在华北2(北京)地域内,创建以cnfs-oss-***开头的OSS Bucket。

    若此地域内已有符合要求的OSS Bucket,可跳过此步骤。

  2. 执行以下命令,在Cluster_BJ备份集群的默认命名空间中创建无状态应用Nginx。

    kubectl create deploy nginx --image nginx

步骤一:创建备份仓库

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

说明
  • 各个集群内的备份仓库实例,与其关联的OSS Bucket间的网络访问方式将自动设置,不同的网络访问方式将影响应用备份的上传和拉取速度。

    • 集群和OSS Bucket处于同一地域时,使用私网连接。

    • 集群和OSS Bucket处于不同地域时,使用公网连接。

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

  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):主账号及所有子账号可见

步骤二:在Cluster_BJ集群创建备份任务

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

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

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

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

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

    • 备份存储卷时,云盘快照集成了阿里云云盘快照技术,而HBR是阿里云混合云备份服务的简称,是一种高效、安全、低成本的全托管式云备份存储服务。

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

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

    创建备份任务

    配置项

    说明

    名称

    备份任务的名称。

    备份仓库

    需要关联的备份仓库。

    命名空间选择方式

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

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

      说明

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

    备份命名空间

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

    说明

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

    备份存储卷

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

    重要

    跨地域应用迁移场景不支持备份存储卷,请勿勾选此选项,避免备份失败。

    备份类型

    立即备份定时备份

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

    指定标签备份

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

    指定资源

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

    排除资源

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

    备份有效期

    备份任务的数据存储有效期,过期之后数据将无法恢复。

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

步骤三:在Cluster_SZ集群恢复应用

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

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

  3. 创建恢复任务面板,设置应用恢复的相关参数,然后单击确定

    说明

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

    配置项

    说明

    名称

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

    备份仓库

    备份文件所在的仓库。

    说明

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

    选择备份

    备份文件。

    重定义命名空间

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

步骤四:查看Nginx应用是否成功迁移

  1. 登录容器服务管理控制台

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

  3. 单击目标应用Nginx右侧操作列的详情,然后单击容器组页签。

    确认目标应用的状态为Running,表示Nginx应用迁移成功。

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