Velero Plugin for Alibaba Cloud 是用于在阿里云上使用 Velero 进行 Kubernetes 资源备份和恢复的插件。
当前版本: v2.0.0(适用于 Velero v1.17.x)
Velero 是一个用于备份和恢复 Kubernetes 资源和持久卷的工具。
要在阿里云上通过 Velero 进行备份/恢复,您需要安装和配置 Velero 以及 velero-plugin-for-alibabacloud。
要在阿里云上设置 Velero,您需要:
- 创建 OSS bucket
- 配置授权
- 安装 Velero 和 velero-plugin-for-alibabacloud
Velero 需要一个对象存储 bucket 来存储备份,建议为每个 Kubernetes 集群创建独立的 bucket。
请参考 创建存储空间文档 创建 OSS bucket。
Velero 需要访问阿里云 OSS 和 ECS 服务的权限。您可以选择以下两种授权方式之一:
此方案适用于 Velero 运行在阿里云 ECS 节点上的场景,推荐在 ACK 集群中使用。
前提条件:计算节点为阿里云 ECS 实例。
-
配置 Worker RAM 角色:
- 如果使用阿里云 ACK,默认已经给集群节点绑定了权限为空的 RAM 角色,因此可以跳过本步骤。如需细化不同节点的 Worker RAM 角色,可以参考 使用自定义 Worker RAM 角色文档 自定义 Worker RAM 角色。
- 否则,应该创建 RAM 角色并绑定至 Velero 运行的 ECS 节点上。参考 为 ECS 实例授予 RAM 角色文档。
-
创建自定义策略:
请参考 创建自定义策略文档 创建策略,策略内容如下:
{ "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" } ] } -
为 RAM 角色授权:
请参考 为 RAM 角色授权文档 将上述策略授权给 RAM 角色。
-
创建 Velero 凭证文件:
在您的
install目录下创建 Velero 凭证文件(credentials-velero):ALIBABA_CLOUD_RAM_ROLE=<RAM_ROLE_NAME>其中
RAM_ROLE_NAME为步骤 1 中配置的 RAM 角色名称。
此方案适用于非 ECS 环境或需要更细粒度控制的场景。
-
创建 RAM 用户:
请参考 创建 RAM 用户文档。
-
创建自定义策略:
请参考 创建自定义策略文档 创建策略,策略内容如下:
{ "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" } ] } -
为 RAM 用户授权:
请参考 为 RAM 用户授权文档 将上述策略授权给 RAM 用户。
-
创建 AccessKey:
请参考 创建 AccessKey 文档 为 RAM 用户创建 AccessKey。
-
创建 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 官方发布版本 中适合您操作系统的最新版本。
运行以下命令在 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-f857869 \
--bucket <YOUR_BUCKET> \
--secret-file ./credentials-velero \
--backup-location-config region=<REGION>,network=<NETWORK> \
--snapshot-location-config region=<REGION> \
--wait| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
region |
必需 | OSS bucket 所在区域 | cn-hangzhou |
network |
可选 | 网络类型。可选值:internal(内网)、accelerate(加速域名)。默认为公网 |
internal |
endpoint |
可选 | 自定义 OSS 端点 | https://oss-custom.example.com |
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
region |
必需 | ECS 快照所在区域 | cn-hangzhou |
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
--prefix |
可选 | 用于在同一 bucket 中存储多个集群的备份,指定 OSS bucket 中的路径前缀 | cluster1 |
(可选)根据您的需求进一步自定义 Velero 安装。更多参数请参考 Velero 官方文档。
要卸载 Velero,请参考 Velero 官方卸载文档。