1.20.5.3. 使用备份和恢复 Operator

完成以下步骤以调度和恢复备份:

  1. 使用备份和恢复 operator,backupschedule.cluster.open-cluster-management.iorestore.cluster.open-cluster-management.io 资源,使用 cluster_v1beta1_backupschedule.yaml 示例文件创建 backupschedule.cluster.open-cluster-management.io 资源。请参阅 cluster-backup-operator 示例。运行以下命令,使用 cluster_v1beta1_backupschedule.yaml 示例文件创建 backupschedule.cluster.open-cluster-management.io 资源:

    kubectl create -n <oadp-operator-ns> -f config/samples/cluster_v1beta1_backupschedule.yaml

    您的资源可能类似以下文件:

    apiVersion: cluster.open-cluster-management.io/v1beta1
    kind: BackupSchedule
    metadata:
      name: schedule-acm
    spec:
      maxBackups: 10 # maximum number of backups after which old backups should be removed
      veleroSchedule: 0 */6 * * * # Create a backup every 6 hours
      veleroTtl: 72h # deletes scheduled backups after 72h; optional, if not specified, the maximum default value set by velero is used - 720h

    查看 backupschedule.cluster.open-cluster-management.io spec 属性的描述:

    • maxBackup 是必需属性,表示在删除之前备份后的最大备份数。
    • veleroSchedule 是必需属性,定义用于调度备份的 cron 作业。
    • veleroTtl 是可选属性,定义调度的备份资源的过期时间。如果没有指定,则使用 Velero 设置的最大默认值,即 720h
  2. 检查 backupschedule.cluster.open-cluster-management.io 资源的状态,这会显示三个 schedule.velero.io 资源的定义。运行以下命令:

    oc get bsch -n <oadp-operator-ns>
  3. 提醒,恢复操作在不同的 hub 集群上运行,用于恢复场景。要启动恢复操作,请在要恢复备份的 hub 集群中创建一个 restore.cluster.open-cluster-management.io 资源。

    您可以使用集群备份和恢复 Operator,backupschedule.cluster.open-cluster-management.iorestore.cluster.open-cluster-management.io 资源来创建备份或恢复资源。请参阅 cluster-backup-operator 示例

  4. 运行以下命令,使用 cluster_v1beta1_restore.yaml 示例文件创建 restore.cluster.open-cluster-management.io 资源。确保将 oadp-operator-ns 替换为用于安装 OADP Operator 的命名空间名称。OADP Operator 安装命名空间的默认值为 oadp-operator

    kubectl create -n <oadp-operator-ns> -f config/samples/cluster_v1beta1_restore.yaml

    您的资源可能类似以下文件:

    apiVersion: cluster.open-cluster-management.io/v1beta1
    kind: Restore
    metadata:
      name: restore-acm
    spec:
      veleroManagedClustersBackupName: latest
      veleroCredentialsBackupName: latest
      veleroResourcesBackupName: latest

    查看以下 restore.cluster.open-cluster-management.io 的三个所需 spec 属性的描述:

    • veleroManagedClustersBackupName 用于为受管集群定义恢复选项。
    • veleroCredentialsBackupName 用于为用户凭证定义 restore 选项。
    • veleroResourcesBackupName 用于定义 hub 集群资源的 restore 选项(应用程序策略)。

      前面提到的属性的有效选项有以下值:

    • latest - 此属性恢复此类型的备份文件。
    • skip - 此属性不会尝试使用当前恢复操作恢复这种类型的备份。
    • backup_name - 此属性通过引用名称来恢复指定的备份。
  5. 运行以下命令来查看 Velero Restore 资源:

    oc get restore.velero.io -n <oadp-operator-ns>

    查看以下 YAML 示例以恢复不同类型的备份文件:

    • 恢复所有三种备份资源:

      apiVersion: cluster.open-cluster-management.io/v1beta1
      kind: Restore
      metadata:
        name: restore-acm
      spec:
        veleroManagedClustersBackupSchedule: latest
        veleroCredentialsBackupSchedule: latest
        veleroResourcesBackupSchedule: latest
    • 仅恢复受管集群资源:

      apiVersion: cluster.open-cluster-management.io/v1beta1
      kind: Restore
      metadata:
        name: restore-acm
      spec:
        veleroManagedClustersBackupName: latest
        veleroCredentialsBackupName: skip
        veleroResourcesBackupName: skip
    • 使用 acm-managed-clusters-schedule-20210902205438 备份只为受管集群恢复资源:

      apiVersion: cluster.open-cluster-management.io/v1beta1
      kind: Restore
      metadata:
        name: restore-acm
      spec:
        veleroManagedClustersBackupName: acm-managed-clusters-schedule-20210902205438
        veleroCredentialsBackupName: skip
        veleroResourcesBackupName: skip

有关所需规格属性和有效选项的说明,请参阅恢复备份restore.cluster.open-cluster-management.io 资源运行一次。恢复操作完成后,您可以选择在同一 hub 集群中运行另一个恢复操作。您必须创建新的 restore.cluster.open-cluster-management.io 资源才能运行新的恢复操作。