阿里云容器服务备份中心为无状态或有状态应用的备份、恢复与迁移提供了一站式的解决方案,特别是对混合云,多集群的有状态应用提供了数据容灾和应用迁移能力。本文介绍如何开启集群备份能力及专有版集群与注册集群的相关授权配置。

前提条件

背景信息

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

步骤一:安装备份服务组件

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

(可选)步骤二:为专有版集群配置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资源,以降低泄露风险。

    1. 执行以下命令,创建命名空间csdr
      kubectl create ns csdr
    2. 执行以下命令,创建名为alibaba-addon-secret的Secret资源。
      kubectl -n csdr 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信息。

(可选)步骤四:为专有版集群或者注册集群的用户配置HBR权限

如果您需要为专有版集群或者注册集群需要开通HBR权限。

  1. 为HBR创建自定义权限策略。具体操作,请参见创建自定义策略
    请按以下示例设置权限策略:
    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "hbr:CreateVault",
                    "hbr:CreateBackupJob",
                    "hbr:DescribeVaults",
                    "hbr:DescribeBackupJobs2",
                    "hbr:DescribeRestoreJobs",
                    "hbr:SearchHistoricalSnapshots",
                    "hbr:CreateRestoreJob",
                    "hbr:AddContainerCluster",
                    "hbr:DescribeContainerCluster",
                    "hbr:DescribeRestoreJobs2"
                ],
                "Resource": "*"
            }
        ]
    }
  2. 为RAM用户添加权限。具体操作,请参见为RAM用户授权