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

前提条件

背景信息

随着越来越多的应用运行在Kubernetes中,对应用进行定时的备份就显得格外重要。应用备份可以有效的防护由于意外情况导致服务长时间中断而无法恢复的情况。区别于传统的备份单机、备份磁盘的方案,基于Kubernetes的应用备份,主要关注于运行在Kubernetes中的应用及其数据、资源对象、配置及整个命名空间等。

步骤一:配置OSS权限

当前应用备份只使用阿里云OSS存储备份的应用。在使用阿里云对象存储OSS前,您需要配置OSS权限。

为托管版或专有版集群配置权限

如果您的集群为托管版集群或专有版集群,您需要为托管版集群或专有版集群配置OSS权限。

  1. 为OSS创建自定义权限策略。具体操作,请参见创建自定义策略
    说明 更多OSS细粒度授权配置信息,请参见通过RAM对OSS进行权限管理

    如果您想要所有OSS的权限,请按以下示例设置权限策略:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "oss:PutObject",
                    "oss:GetObject",
                    "oss:DeleteObject",
                    "oss:GetBucket",
                    "oss:ListObjects",
                    "oss:ListBuckets"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
    如果您只想要指定OSS的读写权限,请按以下示例设置权限策略:
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "oss:PutObject",
                    "oss:GetObject",
                    "oss:DeleteObject",
                    "oss:GetBucket",
                    "oss:ListObjects",
                    "oss:ListBuckets"
                ],
                "Resource": [
                    "acs:oss:*:*:mybackups",
                    "acs:oss:*:*:mybackups/*"
                ],
                "Effect": "Allow"
            }
        ]
    }
    您需要将上述代码中的mybackups替换为您自己的OSS名称。
  2. 为托管集群RAM角色添加权限。
    1. 登录容器服务管理控制台
    2. 在控制台左侧导航栏中,单击集群
    3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
    4. 在集群信息页面单击集群资源页签,查看Worker RAM角色
    5. 登录RAM控制台
    6. 在控制台左侧导航栏单击授权
    7. 授权页面单击新增授权,在添加权限对话框配置参数,然后单击确定
      参数 说明
      授权范围 可选整个云账号指定资源组
      被授权主体 输入Worker RAM角色。
      选择权限 单击自定义策略,在搜索框中搜索步骤1中创建的权限策略,然后单击目标权限策略名称。

为注册集群配置权限

如果您的集群为注册集群,您需要创建RAM用户,为RAM用户添加访问云资源权限,然后创建AccessKey。

  1. 创建RAM用户。具体操作,请参见创建RAM用户
  2. 为OSS创建自定义权限策略。具体操作,请参见步骤1
  3. 为RAM用户添加权限。具体操作,请参见为RAM用户授权
  4. 为RAM用户创建AccessKey。具体操作,请参见获取AccessKey
  5. 在注册集群中创建Secret。

    为了保证您的AccessKey信息只在您的注册集群内安全使用,您需要先在注册集群中使用AccessKey信息部署一个名为alibaba-addon-secret的Secret资源,以降低泄露风险。

    例如,对于Migrate Controller组件,ACK继承Velero开源社区的使用习惯,将其全部安装在名为velero的命名空间下。若velero命名空间不存在,请您先创建该命名空间,然后在这个命名空间下引用AccessKey信息创建名为alibaba-addon-secret的Secret资源。

    1. 可选:执行以下命令,创建命名空间velero
      kubectl create ns velero
    2. 执行以下命令,创建名为alibaba-addon-secret的Secret资源。
      kubectl -n velero create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'

      您需要将上述代码中your AccessKey IDyour AccessKey Secret替换为您在步骤4中获取的AccessKey信息。

步骤二:安装应用备份组件

说明 首次使用应用备份功能,您需安装应用备份组件。如果您已安装应用备份组件,请忽略此步骤。
  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏选择运维管理 > 应用备份(公测)
  5. 应用备份页面单击开始安装
    说明 应用备份组件安装完之后,会生成Velero的命名空间,在使用备份过程中,请勿删除该命名空间。
    安装完成后,显示以下界面,说明应用备份组件安装成功。应用备份组件