备份配置
通过 Backup Create 页面,您可以配置计划、启用加密和指定备份的存储位置。
#
定时调度选择第一个选项可执行一次性备份,或选择第二个选项可安排定期备份。选择定期备份可让您配置以下两个字段:
- 定时调度: 该字段接受
- 标准 cron 表达式, 如
"0 * * * *"
- 描述符,如
"@midnight"
或"@every 1h30m"
- 标准 cron 表达式, 如
- 备份保留数量: 指定必须保留多少个备份文件。如果文件超过给定的 retentionCount,最旧的文件将被删除。默认值为 10。
YAML 指令名称 | 说明 |
---|---|
schedule | 提供用于调度定期备份的 cron 字符串。 |
retentionCount | 提供要保留的备份文件数量。 |
#
加密rancher-backup 通过调用 kube-apiserver 来收集资源。apiserver 返回的对象会被解密,所以即使启用了加密静止状态,备份收集的加密对象也会是明文。
为避免以明文形式存储它们,您可以使用静态加密的相同 encryptionConfig 文件,对备份中的某些资源进行加密。
重要
你必须保存 encryptionConfig 文件,因为它不会被 rancher-backup operator 保存。执行还原时需要使用相同的加密文件。
Operator 将这个 encryptionConfig 用作 Kubernetes Secret,Secret 必须在 operator 的命名空间中。Rancher 在 cattle-resources-system
命名空间中安装了 rancher-backup
operator,所以在该命名空间中创建这个 encryptionConfig secret。
对于 EncryptionConfiguration
,你可以使用Kubernetes 文档中提供的示例文件。
要创建 Secret,加密配置文件必须命名为encryption-provider-config.yaml
,并且必须使用--from-file
标志来创建这个 secret。
将 EncryptionConfiguration
保存在名为 encryption-provider-config.yaml
的文件中,并运行此命令:
这将确保 secret 中包含一个名为encryption-provider-config.yaml
的密钥,operator 将使用这个密钥来获取加密配置。
加密配置秘钥
下拉菜单将过滤出并仅列出那些拥有此确切密钥的 secrets。
在上面的示例命令中,encryptionconfig
这个名字可以改成任何东西。
YAML 指令名称 | 说明 |
---|---|
encryptionConfigSecretName | 提供 cattle-resources-system 命名空间中包含加密配置文件的 secret 名称。 |
#
存储位置如果在备份中指定了存储位置,operator 将从特定的 S3 桶中检索备份位置。如果没有指定,operator 将尝试在默认的 operator 级别的 S3 存储和 operator 级别的 PVC 存储中找到这个文件。默认的存储位置是在部署rancher-backup
operator 时配置的。
选择第一个选项可以将备份存储在安装 rancher-backup chart 时配置的存储位置。第二个选项可以让您配置不同的兼容 s3 的对象存储作为存储位置。
#
S3S3 存储位置包含以下配置字段:
- 秘钥凭证 (可选):如果你需要使用 AWS Access keys 和 Secret keys 访问 s3 桶,请使用带有密钥以及指令
accessKey
和secretKey
的凭证创建密钥,它可以是在任何命名空间。这里有一个示例 secret。如果运行 operator 的节点在 EC2 中,并且设置了 IAM 权限,允许它们访问 S3,则此指令是不必要的,如本节所述。秘钥凭证下拉菜单列出了所有命名空间的秘钥。 - 桶名称: 存储备份文件的 S3 桶的名称。
- 区域 (可选):S3 桶所在的 AWS region。配置 MinIO 时不需要该字段。
- 文件夹 (可选):S3 桶中存储备份文件的文件夹名称。不支持嵌套文件夹(例如,
rancher/cluster1
)。 - 端点: 用于访问存储桶区域中的 S3 的端点。
- 端点 CA (可选):这应该是 Base64 编码的 CA 证书。有关示例,请参阅示例 S3 兼容配置。
- 跳过 TLS 验证 (可选):如果你不使用 TLS,则设置为 "true"。
YAML 指令名称 | 说明 | 是否必填 |
---|---|---|
credentialSecretName | 如果你需要使用 AWS Access keys Secret keys 来访问 s3 桶,用你的凭证与 keys 和指令accessKey 和secretKey 创建一个 secret。它可以在任何命名空间中,只要你在credentialSecretNamespace 中提供该命名空间。一个 secret 的例子是这里.如果运行你的 operator 的节点在 EC2 中,并且设置了 IAM 权限,允许他们访问 S3,这个指令是不必要的,如本节所述. | 否 |
credentialSecretNamespace | 包含访问 S3 的凭证的 secret 的命名空间。如果运行 operator 的节点在 EC2 中,并且设置了 IAM 权限,允许它们访问 S3,则不需要此指令,如本节所述。 | 否 |
bucketName | 存储备份文件的 S3 桶的名称。 | 是 |
folder | S3 桶中存储备份文件的文件夹名称,不支持嵌套文件夹(例如,rancher/cluster1 )。 | 否 |
region | S3 桶所在的 AWS区域。 | 是 |
endpoint | 用于访问存储桶区域中的 S3 的端点。 | 是 |
endpointCA | 这应该是 Base64 编码的 CA 证书。有关示例,请参阅示例 S3 兼容配置。 | 否 |
insecureTLSSkipVerify | 如果你不使用 TLS,则设置为 true。 | 否 |
#
S3 存储配置示例#
MinIO 配置示例#
CredentialSecret 示例请运行以下代码,使用 base64 在 YAML 文件中对密钥进行加密:
#
EC2 节点访问 S3 的 IAM 权限设置有两种方法可以设置rancher-backup
operator 使用 S3 作为备份的存储位置。
一种方法是在 Backup 自定义资源中配置credentialSecretName
,它指的是可以访问 S3 的 AWS 凭证。
如果集群节点在 Amazon EC2 中,也可以通过给 EC2 节点分配 IAM 权限来设置 S3 访问,使其可以访问 S3。
要允许节点访问 S3,请按照AWS 文档中的说明为 EC2 创建一个 IAM 角色。当您向角色添加自定义策略时,添加以下权限,并将 Resource
替换为您的桶名:
在创建角色并将相应的实例配置文件附加 EC2 实例后,Backup 自定义资源中的credentialSecretName
指令可以留空。
#
示例Backup 自定义资源,请参考本页面