|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
备份配置
*备份:创建*页面可以让您配置计划、启用加密并指定备份的存储位置。
您必须首先安装该`rancher-backup`操作员。完成后,您可以访问*备份:创建*页面:
日程表
选择第一个选项以执行一次性备份,或选择第二个选项以安排定期备份。选择*定期备份*可以让您配置以下两个字段:
-
计划:此字段接受
-
标准 cron表达式,例如`"0 * * * *"`
-
描述符,例如`"@midnight"`或`"@every 1h30m"`
-
-
保留计数:此值指定必须保留多少个备份文件。如果文件超过给定的保留计数,最旧的文件将被删除。默认值是 10。
| YAML指令名称 | 说明 |
|---|---|
|
提供用于安排定期备份的cron字符串。 |
|
提供要保留的备份文件数量。 |
ResourceSet
虽然您可以创建自己的资源集以备份自定义应用程序,但有两个专门用于备份 Rancher 的资源集是由 rancher-backup 操作员官方维护并默认创建的。我们称这些为 rancher-resource-set-basic 和 rancher-resource-set-full。 它们之间的区别在于备份中是否包含机密。
rancher-resource-set-basic 在备份文件中不包含任何 Secret,以保护机密信息。您负责记录任何 Secret 并安全地重新部署它们。
rancher-resource-set-full 在备份文件中包含所有必要的 Secret,以确保 Rancher 在恢复或迁移后继续顺利运行。为了避免以明文存储敏感信息,我们强烈建议您使用强密钥启用加密。
| YAML指令名称 | 说明 |
|---|---|
|
提供资源集的名称以定义将包含在此备份中的资源。 |
加密
rancher-backup 通过调用 kube-apiserver 来收集资源。apiserver 返回的对象是解密的,因此即使启用了 静态加密,备份收集的加密对象也将以明文形式存在。
为了避免以明文存储它们,您可以使用用于静态加密的同一个 EncryptionConfiguration 文件来加密备份中的某些资源。
|
重要说明:
在备份中加密对象时,您必须保存 例如,当 将 Rancher 迁移到新集群 时,该文件用于在新集群中重新创建机密。 |
操作员将 EncryptionConfiguration 作为 Kubernetes Secret,在 cattle-resources-system 命名空间下的 Secret 数据中,其中密钥名为 encryption-provider-config.yaml。
对于 EncryptionConfiguration,您可以使用 在 Kubernetes 文档中提供的示例文件。
为了确保在机密中使用正确的密钥,加密配置文件必须命名为 encryption-provider-config.yaml。以下命令使用 --from-file 标志创建具有正确密钥名称的机密。
将 EncryptionConfiguration 保存到名为 encryption-provider-config.yaml 的文件中并运行此命令:
kubectl create secret generic encryptionconfig \
--from-file=./encryption-provider-config.yaml \
-n cattle-resources-system
这将确保 Secret 包含名为 encryption-provider-config.yaml 的密钥,Operator 将使用此密钥获取加密配置。
Encryption Config Secret 下拉菜单将过滤并仅列出具有此确切密钥的 Secret。
在上面的示例命令中,名称 encryptionconfig 可以更改为任何内容。
| YAML指令名称 | 说明 |
|---|---|
|
提供包含加密配置文件的 |
储存位置
如果在备份中指定了储存位置,操作员将从该特定 S3 存储桶中检索备份位置。如果未指定,操作员将尝试在默认的操作员级 S3 存储和操作员级 PVC 存储中查找此文件。默认的储存位置在部署 rancher-backup 操作员时进行配置。
选择第一个选项将在安装 rancher-backup chart 时配置的储存位置中存储此备份。第二个选项允许您配置不同的 S3 兼容存储提供商来存储备份。
S3
|
如果您使用 S3 备份目标,请确保每个集群都有自己的存储桶或文件夹。Rancher 从为该集群配置的 S3 存储桶或文件夹中列出的任何可用快照中填充快照信息。 |
S3 储存位置包含以下配置字段:
-
凭证 Secret(可选):如果您需要 AWS 访问密钥或 secret key 来访问 S3 存储桶,请使用您的凭证 创建一个 Secret,其键和指令分别命名为
accessKey和secretKey。该 Secret 可以在任何命名空间中。示例 Secret 是 这里。如果运行您操作员的节点在 EC2 中并被分配了 访问 S3 的 IAM 权限,则此指令是多余的。凭证 Secret 下拉菜单列出所有命名空间中的 Secret。 -
存储桶名称:S3 存储桶的名称,备份文件将存储在其中。
-
区域(可选):AWS 区域,S3 存储桶所在的区域。此字段在配置 MinIO 时不需要。
-
文件夹(可选):S3 存储桶中将存储备份文件的文件夹名称。不支持嵌套文件夹(例如,
rancher/cluster1)。如果此字段留空,默认行为是将备份文件存储在 S3 存储桶的根文件夹中。 -
端点:用于访问您存储桶所在区域的 S3 的 端点。
-
端点 CA(可选):这应该是 Base64 编码的 CA 证书。有关示例,请参阅 示例 S3 兼容配置。
-
跳过 TLS 验证(可选):如果您不使用 TLS,请设置为 true。
YAML 指令字段
| YAML指令名称 | 说明 | 必需 |
|---|---|---|
|
如果您需要 AWS 访问密钥或秘密密钥来访问 S3 存储桶,请使用您的凭据 创建一个秘密,密钥和指令命名为 |
|
|
包含访问 S3 凭据的 Secret 的命名空间。如果运行您操作的节点在 EC2 中并设置了允许访问 S3 的 IAM 权限,如 本节所述。,则此指令是多余的。 |
|
|
S3 存储桶的名称,备份文件将存储在其中。 |
✓ |
|
S3 存储桶中将存储备份文件的文件夹名称。不支持嵌套文件夹(例如, |
|
|
S3 存储桶所在的 AWS region。 |
✓ |
|
用于访问您存储桶所在区域的 S3 的 endpoint。 |
✓ |
|
这应该是 Base64 编码的 CA 证书。有关示例,请参阅 示例 S3 兼容配置。 |
|
|
如果您不使用 TLS,请设置为 true。 |
示例 S3 存储配置
s3:
credentialSecretName: s3-creds
credentialSecretNamespace: default
bucketName: rancher-backups
folder: rancher
region: us-west-2
endpoint: s3.us-west-2.amazonaws.com
示例 MinIO 配置
s3:
credentialSecretName: minio-creds
bucketName: rancherbackups
endpoint: minio.35.202.130.254.xip.io
endpointCA: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURHakNDQWdLZ0F3SUJBZ0lKQUtpWFZpNEpBb0J5TUEwR0NTcUdTSWIzRFFFQkN3VUFNQkl4RURBT0JnTlYKQkFNTUIzUmxjM1F0WTJFd0hoY05NakF3T0RNd01UZ3lOVFE1V2hjTk1qQXhNREk1TVRneU5UUTVXakFTTVJBdwpEZ1lEVlFRRERBZDBaWE4wTFdOaE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCjA4dnV3Q2Y0SEhtR2Q2azVNTmozRW5NOG00T2RpS3czSGszd1NlOUlXQkwyVzY5WDZxenBhN2I2M3U2L05mMnkKSnZWNDVqeXplRFB6bFJycjlpbEpWaVZ1NFNqWlFjdG9jWmFCaVNsL0xDbEFDdkFaUlYvKzN0TFVTZSs1ZDY0QQpWcUhDQlZObU5xM3E3aVY0TE1aSVpRc3N6K0FxaU1Sd0pOMVVKQTZ6V0tUc2Yzc3ByQ0J2dWxJWmZsVXVETVAyCnRCTCt6cXZEc0pDdWlhNEEvU2JNT29tVmM2WnNtTGkwMjdub3dGRld3MnRpSkM5d0xMRE14NnJoVHQ4a3VvVHYKQXJpUjB4WktiRU45L1Uzb011eUVKbHZyck9YS2ZuUDUwbk8ycGNaQnZCb3pUTStYZnRvQ1d5UnhKUmI5cFNTRApKQjlmUEFtLzNZcFpMMGRKY2sxR1h3SURBUUFCbzNNd2NUQWRCZ05WSFE0RUZnUVU5NHU4WXlMdmE2MTJnT1pyCm44QnlFQ2NucVFjd1FnWURWUjBqQkRzd09ZQVU5NHU4WXlMdmE2MTJnT1pybjhCeUVDY25xUWVoRnFRVU1CSXgKRURBT0JnTlZCQU1NQjNSbGMzUXRZMkdDQ1FDb2wxWXVDUUtBY2pBTUJnTlZIUk1FQlRBREFRSC9NQTBHQ1NxRwpTSWIzRFFFQkN3VUFBNElCQVFER1JRZ1RtdzdVNXRQRHA5Q2psOXlLRW9Vd2pYWWM2UlAwdm1GSHpubXJ3dUVLCjFrTkVJNzhBTUw1MEpuS29CY0ljVDNEeGQ3TGdIbTNCRE5mVVh2anArNnZqaXhJYXR2UWhsSFNVaWIyZjJsSTkKVEMxNzVyNCtROFkzelc1RlFXSDdLK08vY3pJTGh5ei93aHRDUlFkQ29lS1dXZkFiby8wd0VSejZzNkhkVFJzNwpHcWlGNWZtWGp6S0lOcTBjMHRyZ0xtalNKd1hwSnU0ZnNGOEcyZUh4b2pOKzdJQ1FuSkg5cGRIRVpUQUtOL2ppCnIvem04RlZtd1kvdTBndEZneWVQY1ZWbXBqRm03Y0ZOSkc4Y2ZYd0QzcEFwVjhVOGNocTZGeFBHTkVvWFZnclMKY1VRMklaU0RJd1FFY3FvSzFKSGdCUWw2RXBaUVpWMW1DRklrdFBwSQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t
示例 credentialSecret
apiVersion: v1
kind: Secret
metadata:
name: creds
type: Opaque
data:
accessKey: <base64-encoded access key>
secretKey: <base64-encoded secret key>
|
为避免编码问题,可以使用以下命令创建
|
EC2 节点访问 S3 的 IAM 权限
有两种方法可以设置 rancher-backup 操作符以使用 S3 作为备份存储位置。
一种方法是在备份自定义资源中配置 credentialSecretName,该资源引用具有访问 S3 权限的 AWS 凭证。
如果集群节点在 Amazon EC2 中,可以通过为 EC2 节点分配 IAM 权限来设置 S3 访问,以便它们可以访问 S3。
要允许节点访问 S3,请按照 AWS 文档 中的说明为 EC2 创建 IAM 角色。当您向角色添加自定义策略时,请添加以下权限,并将 Resource 替换为您的存储桶名称:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::rancher-backups"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::rancher-backups/*"
]
}
]
}
角色创建后,并且您已将相应的实例控制文件附加到您的 EC2 实例,备份自定义资源中的 credentialSecretName 指令可以留空。
示例
例如,对于备份自定义资源,请参阅 此页面。