首页 / 平台管理 / 集群管理 / 备份恢复 / 备份管理 / 创建应用备份策略

创建应用备份策略

您可通过创建应用备份策略,指定需要备份的应用数据范围(以命名空间为单位)、备份数据存储位置、备份方式等信息,每基于策略执行一次备份,即可生成一个新的备份记录,方便您随时或周期性地自动备份运行在集群命名空间下的应用等业务资源数据。

前提条件

注意事项

操作步骤

基本信息

  1. 在左侧导航栏中,单击 集群管理 > 备份恢复

  2. 切换至 备份管理 页签。

  3. 单击 创建备份策略 > 创建应用备份,参考以下说明,配置相关参数。

    • 备份资源类型Kubernetes 资源 包括用户创建的命名空间中所有 Kubernetes 资源文件;持久卷声明 为平台中用户创建的持久卷声明,用于备份与之绑定的持久卷中的应用数据,且不支持备份与 hostpath 类型持久卷绑定的持久卷声明。

      提示

      • 若您的持久卷声明使用的存储资源 回收策略保留,则仅需备份 Kubernetes 资源即可。

      • 若您的持久卷声明使用的存储资源 回收策略删除,则需备份 Kubernetes 资源和持久卷声明。

    • 备份仓库:选择连通性校验通过的备份仓库,或单击 创建备份仓库

      提示:创建备份仓库完成后可单击 确定并创建应用备份,返回本页面继续创建;或单击 创建,返回备份仓库列表页查看已创建的备份仓库。

  4. 配置基本信息后,单击 下一步

备份资源

备份命名空间下的应用资源。

注意

  1. 单选或多选需要备份的 命名空间

    提示:当备份的资源类型选择 备份 Kubernetes 资源和持久卷声明 时,可在持久卷声明列查看命名空间下所有的持久卷声明。

  2. 单击 下一步

备份方式

配置备份数据的时间策略。

高级配置

自定义钩子程序(Hooks)是运行在集群容器中的扩展命令。通过自定义钩子程序,可以在备份、恢复过程中灵活执行一些自定义操作,若有特殊配置需求请联系技术支持人员。

执行备份任务过程中,当一个 Pod 在被备份时,您可以设置一条或多条命令在 Pod 内的容器上执行。这些命令可以在 Pod 备份前执行(pre),或 Pod 备份操作完成后执行(post)。

hook 可以在 schedule 资源的 .spec.template.spec.hooks 字段下或 backup 资源的 .spec.hooks 字段下进行配置。

配置示例及参数说明如下:

hooks:
    resources:
      -
        # Hook 的名称,会在日志内展示。
        name: my-hook
                # (可选)执行该 Hook 的命名空间名称列表(数组)。如果不设置,Hook 会在集群的所有命名空间下执行。
        includedNamespaces:
        - '*'
        # (可选)不执行该 Hook 的命名空间名称列表(数组)。
        excludedNamespaces:
        - some-namespace
                # 执行该 Hook 的资源列表。目前仅支持 pods。
        includedResources:
        - pods
            # (可选)用于匹配执行该 Hook 的资源的标签选择器,仅匹配到的资源会执行该 Hook。
        labelSelector:
          matchLabels:
            app: velero
            component: server
        # Pod 执行备份前执行的 Hook 的列表(数组)。仅支持 exec 类型的 Hook。
        pre:
          -
            exec:
                # (可选)执行命令的容器名。如果不设置,默认选择 Pod 内的第一个容器。
              container: my-container
              # 执行的命令,为数组,必须设置。
              command:
                - /bin/uname
                - -a
              # (可选)命令执行失败时的策略,有效值为 Continue 或 Fail,默认为 Fail。
              onError: Fail
              # (可选)等待命令执行完成的时长。默认为 30s。
              timeout: 10s
        # Pod 备份后执行的 Hook 的列表(数组),只支持 exec 类型的 Hook。
        post:
          # 请参考 pre 设置

备份恢复组件支持在恢复任务执行期间或之后通过 Hook 执行一些自定义的操作。

对于恢复任务,支持以下两种类型的 Hook:

恢复 Hook 可以在 restore 资源的 .spec.hooks 字段下设置。配置示例及参数说明如下:

hooks:
    resources:
    # hook 名称
    - name: restore-hook-1
            # (可选)执行该 Hook 的命名空间名称列表(数组)。如果不设置,Hook 会在集群的所有命名空间下执行。
      includedNamespaces:
      - ns1
      # (可选)不执行该 Hook 的命名空间名称列表(数组)。
      excludedNamespaces:
      - ns3
            # 执行该 Hook 的资源列表。目前仅支持 pods。
      includedResources:
      - pods
            # (可选)用于匹配执行该 Hook 的资源的标签选择器,仅匹配到的资源会执行该 Hook。
      labelSelector:
        matchLabels:
          app: velero
          component: server
      # Hook 列表,仅支持 init 和 exec 类型的 Hook。
      postHooks:
      - init:
                    # 容器列表,这些容器会被添加到该 Hook 会执行的 initContainers 内。
          initContainers:
          - name: restore-hook-init1
            image: alpine:latest
            volumeMounts:
            - mountPath: /restores/pvc1-vm
              name: pvc1-vm
            command:
            - /bin/ash
            - -c
            - echo -n "FOOBARBAZ" >> /restores/pvc1-vm/foobarbaz
          - name: restore-hook-init2
            image: alpine:latest
            volumeMounts:
            - mountPath: /restores/pvc2-vm
              name: pvc2-vm
            command:
            - /bin/ash
            - -c
            - echo -n "DEADFEED" >> /restores/pvc2-vm/deadfeed
      - exec:
                # (可选)执行命令的容器名。如果不设置,默认选择 Pod 内的第一个容器。
            container: my-container
            # 执行的命令,为数组,必须设置。
            command:
              - /bin/uname
              - -a
            # (可选)命令执行失败时的策略,有效值为 Continue 或 Fail,默认为 Fail。
            onError: Fail
            # (可选)等待命令执行完成的时长。默认为 30s。
            timeout: 10s

相关操作

手动执行备份策略

手动执行已创建的备份策略(包括设置了定时备份规则的策略)进行数据备份。 每执行一次,会生成一条新的备份记录。

  1. 在左侧导航栏中,单击 集群管理 > 备份恢复

  2. 切换至 备份管理 页签。

  3. 单击待执行策略右侧的 > 执行备份,并确认。

导出备份任务日志

支持手动导出指定备份策略下备份任务日志。

提示:备份任务正在执行中时不支持导出日志。

操作步骤

  1. 在左侧导航栏中,单击 集群管理 > 备份恢复

  2. 切换至 备份管理 页签。

  3. 单击待删除备份记录的 备份策略名称

  4. 备份记录 区域,单击备份记录右侧的 > 导出日志