Skip to content

AliyunContainerService/velero-plugin

Velero Plugin for Alibaba Cloud

English 中文

GoReportCard Widget

Velero Plugin for Alibaba Cloud 是用于在阿里云上使用 Velero 进行 Kubernetes 资源备份和恢复的插件。

当前版本: v2.0.0(适用于 Velero v1.17.x)

概述

Velero 是一个用于备份和恢复 Kubernetes 资源和持久卷的工具。

要在阿里云上通过 Velero 进行备份/恢复,您需要安装和配置 Velero 以及 velero-plugin-for-alibabacloud。

在阿里云上运行 Velero

要在阿里云上设置 Velero,您需要:

  • 创建 OSS bucket
  • 配置授权
  • 安装 Velero 和 velero-plugin-for-alibabacloud

创建 OSS bucket

Velero 需要一个对象存储 bucket 来存储备份,建议为每个 Kubernetes 集群创建独立的 bucket。

请参考 创建存储空间文档 创建 OSS bucket。

配置授权

Velero 需要访问阿里云 OSS 和 ECS 服务的权限。您可以选择以下两种授权方式之一:

方案 1:通过 Worker RAM 角色授权(推荐)

此方案适用于 Velero 运行在阿里云 ECS 节点上的场景,推荐在 ACK 集群中使用。

前提条件:计算节点为阿里云 ECS 实例。

  1. 配置 Worker RAM 角色

    • 如果使用阿里云 ACK,默认已经给集群节点绑定了权限为空的 RAM 角色,因此可以跳过本步骤。如需细化不同节点的 Worker RAM 角色,可以参考 使用自定义 Worker RAM 角色文档 自定义 Worker RAM 角色。
    • 否则,应该创建 RAM 角色并绑定至 Velero 运行的 ECS 节点上。参考 为 ECS 实例授予 RAM 角色文档
  2. 创建自定义策略

    请参考 创建自定义策略文档 创建策略,策略内容如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeSnapshots",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteSnapshot",
                    "ecs:DescribeDisks",
                    "ecs:CreateDisk",
                    "ecs:Addtags",
                    "oss:PutObject",
                    "oss:GetObject",
                    "oss:DeleteObject",
                    "oss:GetBucket",
                    "oss:ListObjects",
                    "oss:ListBuckets"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. 为 RAM 角色授权

    请参考 为 RAM 角色授权文档 将上述策略授权给 RAM 角色。

  4. 创建 Velero 凭证文件

    在您的 install 目录下创建 Velero 凭证文件(credentials-velero):

    ALIBABA_CLOUD_RAM_ROLE=<RAM_ROLE_NAME>
    

    其中 RAM_ROLE_NAME 为步骤 1 中配置的 RAM 角色名称。

方案 2:通过 RAM 用户授权

此方案适用于非 ECS 环境或需要更细粒度控制的场景。

  1. 创建 RAM 用户

    请参考 创建 RAM 用户文档

  2. 创建自定义策略

    请参考 创建自定义策略文档 创建策略,策略内容如下:

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeSnapshots",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteSnapshot",
                    "ecs:DescribeDisks",
                    "ecs:CreateDisk",
                    "ecs:Addtags",
                    "oss:PutObject",
                    "oss:GetObject",
                    "oss:DeleteObject",
                    "oss:GetBucket",
                    "oss:ListObjects",
                    "oss:ListBuckets"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. 为 RAM 用户授权

    请参考 为 RAM 用户授权文档 将上述策略授权给 RAM 用户。

  4. 创建 AccessKey

    请参考 创建 AccessKey 文档 为 RAM 用户创建 AccessKey。

  5. 创建 Velero 凭证文件

    在您的 install 目录下创建 Velero 凭证文件(credentials-velero):

    ALIBABA_CLOUD_ACCESS_KEY_ID=<ALIBABA_CLOUD_ACCESS_KEY_ID>
    ALIBABA_CLOUD_ACCESS_KEY_SECRET=<ALIBABA_CLOUD_ACCESS_KEY_SECRET>
    

    其中 AccessKey ID 和 Secret 来自步骤 4。

安装 Velero 和 velero-plugin-for-alibabacloud

下载 Velero

下载 Velero 官方发布版本 中适合您操作系统的最新版本。

安装 Velero

运行以下命令在 Kubernetes 集群中安装 Velero 和 velero-plugin-for-alibabacloud。此命令将安装 Velero 的服务端组件,包括 CRDs、Deployment、ServiceAccount 等资源。

velero install \
    --provider alibabacloud \
    --image registry-cn-hangzhou.ack.aliyuncs.com/acs/velero:v1.17.1\
    --plugins registry-cn-hangzhou.ack.aliyuncs.com/acs/velero-plugin-alibabacloud:v2.0.0-eaad098 \
    --bucket <YOUR_BUCKET> \
    --secret-file ./credentials-velero \
    --backup-location-config region=<REGION>,network=<NETWORK> \
    --snapshot-location-config region=<REGION> \
    --wait

配置参数说明

Backup Storage Location 配置参数

参数 类型 说明 示例
region 必需 OSS bucket 所在区域 cn-hangzhou
network 可选 网络类型。可选值:internal(内网)、accelerate(加速域名)。默认为公网 internal
endpoint 可选 自定义 OSS 端点 https://oss-custom.example.com

Volume Snapshot Location 配置参数

参数 类型 说明 示例
region 必需 ECS 快照所在区域 cn-hangzhou

其他常见可选参数

参数 类型 说明 示例
--prefix 可选 用于在同一 bucket 中存储多个集群的备份,指定 OSS bucket 中的路径前缀 cluster1

(可选)根据您的需求进一步自定义 Velero 安装。更多参数请参考 Velero 官方文档

卸载 Velero

要卸载 Velero,请参考 Velero 官方卸载文档

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •