本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

这是尚未发布的文档。 Admission Controller 1.34-dev.

使用 Rancher 备份运算符进行备份和恢复

rancher-backup Operator 可用于在任何 Kubernetes 集群上备份和恢复 Rancher。

自版本 v9.0.0 起,rancher-backup 支持 SUSE Security Admission Controller。这包括:

  • 默认的 Rancher 名称空间 cattle-kubewarden-system(或 cattle-kubewarden-*),以及默认的 Admission Controller 名称空间 kubewarden

  • 所需的 Admission Controller 资源通过 Helm 图表安装。

  • Admission Controller CRD,在恢复后由 Admission Controller 控制器进行协调。

  • policy-reporter 图表的 kubewarden-controller 子图表,用于其默认值。这不包括 Grafana 集成或其他插件。

用户机密

备份过程不包括用户创建的机密,例如用于 配置 私有注册表的 PolicyServers 的机密,除非它们被正确标记。为此,请以以下方式之一标记机密。或者:

kubectl label secret secret-ghcr-docker app.kubernetes.io/part-of=kubewarden

或:

kubectl label secret secret-ghcr-docker resources.cattle.io/backup=true

安装 Rancher Backup Operator

请访问链接:https://documentation.suse.com/cloudnative/rancher-manager/latest/en/rancher-admin/back-up-restore-and-disaster-recovery/back-up-restore-and-disaster-recovery.html [Rancher Manager] 文档。对于使用 Minikube 安装的类型为 hostPath 的 PersistentVolumes,名称为 standard,Minikube 开箱即用支持。

需要指示 Backup Operator 通过将值 optionalResources.kubewarden.enabled 设置为 true,还备份 Admission Controller 用户定义的 CR。

安装步骤如下:

helm repo add rancher-charts https://charts.rancher.io
helm repo update
helm install --wait --create-namespace -n cattle-resources-system \
    rancher-backup-crd rancher-charts/rancher-backup-crd
helm install --wait -n cattle-resources-system \
    rancher-backup rancher-charts/rancher-backup \
    --set persistence.enabled=true --set persistence.storageClass=standard \
    --set optionalResources.kubewarden.enabled=true

备份

使用`rancher-resource-set-full`备份Admission Controller机密。 这些包括在 Helm 安装时创建的 TLS 机密。

如果您更喜欢使用 rancher-resource-basic,请记得备份或手动创建所需的 TLS 机密。

以下是使用 rancher-resource-set-full 执行未加密备份到默认位置的示例:

kubectl apply -f - <<EOF
apiVersion: resources.cattle.io/v1
kind: Backup
metadata:
  name: default-location-backup
spec:
  resourceSetName: rancher-resource-set-full
EOF
backup.resources.cattle.io/default-location-backup created

rancher-backup 日志或备份显示备份文件的创建:

kubectl logs -n cattle-resources-system -l app.kubernetes.io/name=rancher-backup -f
...
INFO[2025/06/26 10:07:48] Processing backup default-location-backup
INFO[2025/06/26 10:07:48] For backup CR default-location-backup, filename: default-location-backup-32d64f39-d3c7-4331-9101-8ca493bd9d2e-2025-06-26T10-07-48Z
...
INFO[2025/06/26 10:07:49] Done with backup

您还可以通过描述资源来查看其状态:

kubectl get backups
NAME                      LOCATION   TYPE       LATEST-BACKUP                                                                              RESOURCESET                 AGE    STATUS
default-location-backup   PV         One-time   default-location-backup-43f3ccb7-5624-4eed-9c3b-1c15d287080e-2025-06-26T15-53-27Z.tar.gz   rancher-resource-set-full   111s   Completed

请参阅 Rancher 文档以获取更多 备份示例

恢复

要从默认位置恢复未加密备份,请在显示备份资源时从 LATEST-BACKUP 列中获取文件名,以创建恢复资源:

kubectl apply -f - <<EOF
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
  name: restore-default
spec:
  backupFilename: default-location-backup-32d64f39-d3c7-4331-9101-8ca493bd9d2e-2025-06-26T10-07-48Z.tar.gz
EOF
restore.resources.cattle.io/restore-default created

kubectl get restores
NAME              BACKUP-SOURCE   BACKUP-FILE                                                                                AGE   STATUS
restore-default   PV              default-location-backup-43f3ccb7-5624-4eed-9c3b-1c15d287080e-2025-06-26T15-53-27Z.tar.gz   6s    Completed

请参阅 Rancher 文档以获取更多 恢复示例