×

您可以通过安装 OADP 运算符来安装用于 Google Cloud Platform (GCP) 的 OpenShift API for Data Protection (OADP)。该运算符将安装 Velero 1.14

从 OADP 1.0.4 开始,所有 OADP 1.0.z 版本只能用作容器迁移工具包运算符的依赖项,并且不能作为独立运算符使用。

您可以为 Velero 配置 GCP,创建一个默认的 Secret,然后安装数据保护应用程序。有关更多详细信息,请参阅 安装 OADP 运算符

要在受限网络环境中安装 OADP 运算符,您必须首先禁用默认的 OperatorHub 源并镜像运算符目录。有关详细信息,请参阅 在断开连接的环境中使用 Operator Lifecycle Manager

配置 Google Cloud Platform

您可以为 OpenShift API for Data Protection (OADP) 配置 Google Cloud Platform (GCP)。

先决条件
  • 您必须安装 gcloudgsutil CLI 工具。有关详细信息,请参阅 Google 云文档

步骤
  1. 登录 GCP

    $ gcloud auth login
  2. 设置 BUCKET 变量

    $ BUCKET=<bucket> (1)
    1 指定您的存储桶名称。
  3. 创建存储桶

    $ gsutil mb gs://$BUCKET/
  4. PROJECT_ID 变量设置为您的活动项目

    $ PROJECT_ID=$(gcloud config get-value project)
  5. 创建一个服务帐号

    $ gcloud iam service-accounts create velero \
        --display-name "Velero service account"
  6. 列出您的服务帐号

    $ gcloud iam service-accounts list
  7. 设置 SERVICE_ACCOUNT_EMAIL 变量以使其与 email 值匹配

    $ SERVICE_ACCOUNT_EMAIL=$(gcloud iam service-accounts list \
        --filter="displayName:Velero service account" \
        --format 'value(email)')
  8. 附加策略以向 velero 用户授予必要的最小权限

    $ ROLE_PERMISSIONS=(
        compute.disks.get
        compute.disks.create
        compute.disks.createSnapshot
        compute.snapshots.get
        compute.snapshots.create
        compute.snapshots.useReadOnly
        compute.snapshots.delete
        compute.zones.get
        storage.objects.create
        storage.objects.delete
        storage.objects.get
        storage.objects.list
        iam.serviceAccounts.signBlob
    )
  9. 创建 velero.server 自定义角色

    $ gcloud iam roles create velero.server \
        --project $PROJECT_ID \
        --title "Velero Server" \
        --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
  10. 向项目添加 IAM 策略绑定

    $ gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
        --role projects/$PROJECT_ID/roles/velero.server
  11. 更新 IAM 服务帐号

    $ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
  12. 将 IAM 服务帐号密钥保存到当前目录中的 credentials-velero 文件

    $ gcloud iam service-accounts keys create credentials-velero \
        --iam-account $SERVICE_ACCOUNT_EMAIL

    安装数据保护应用程序之前,您可以使用 credentials-velero 文件为 GCP 创建一个 Secret 对象。

关于备份和快照位置及其密钥

您可以在 DataProtectionApplication 自定义资源 (CR) 中指定备份和快照位置及其密钥。

备份位置

您可以指定与 AWS S3 兼容的对象存储作为备份位置,例如多云对象网关;Red Hat 容器存储;Ceph RADOS 网关(也称为 Ceph 对象网关);Red Hat OpenShift 数据基金会;或 MinIO。

Velero 将 OpenShift Container Platform 资源、Kubernetes 对象和内部映像作为对象存储上的存档文件备份。

快照位置

如果您使用云提供商的原生快照 API 来备份持久卷,则必须将云提供商指定为快照位置。

如果您使用容器存储接口 (CSI) 快照,则无需指定快照位置,因为您将创建 VolumeSnapshotClass CR 来注册 CSI 驱动程序。

如果您使用文件系统备份 (FSB),则无需指定快照位置,因为 FSB 会将文件系统备份到对象存储。

密钥

如果备份和快照位置使用相同的凭据,或者您不需要快照位置,则创建一个默认的 Secret

如果备份和快照位置使用不同的凭据,则创建两个密钥对象

  • 备份位置的自定义 Secret,您在 DataProtectionApplication CR 中指定。

  • 快照位置的默认 Secret,未在 DataProtectionApplication CR 中引用。

数据保护应用程序需要一个默认的 Secret。否则,安装将失败。

如果您不想在安装过程中指定备份或快照位置,您可以创建一个包含空 `credentials-velero` 文件的默认 `Secret`。

创建默认 Secret

如果您的备份和快照位置使用相同的凭据,或者您不需要快照位置,则可以创建一个默认的 `Secret`。

默认的 `Secret` 名称是 `cloud-credentials-gcp`。

`DataProtectionApplication` 自定义资源 (CR) 需要一个默认的 `Secret`。否则,安装将失败。如果未指定备份位置 `Secret` 的名称,则使用默认名称。

如果您不想在安装过程中使用备份位置凭据,您可以使用空 `credentials-velero` 文件创建一个具有默认名称的 `Secret`。

先决条件
  • 您的对象存储和云存储(如有)必须使用相同的凭据。

  • 您必须为 Velero 配置对象存储。

  • 您必须以适当的格式为对象存储创建一个 `credentials-velero` 文件。

步骤
  • 创建具有默认名称的 `Secret`

    $ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero

安装数据保护应用程序时,`Secret` 在 `DataProtectionApplication` CR 的 `spec.backupLocations.credential` 块中引用。

为不同的凭据创建 Secret

如果您的备份和快照位置使用不同的凭据,则必须创建两个 `Secret` 对象。

  • 具有自定义名称的备份位置 `Secret`。自定义名称在 `DataProtectionApplication` 自定义资源 (CR) 的 `spec.backupLocations` 块中指定。

  • 具有默认名称 `cloud-credentials-gcp` 的快照位置 `Secret`。此 `Secret` 未在 `DataProtectionApplication` CR 中指定。

步骤
  1. 为快照位置创建一个 `credentials-velero` 文件,该文件应采用适合您的云提供商的格式。

  2. 为快照位置创建一个具有默认名称的 `Secret`

    $ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
  3. 为备份位置创建一个 `credentials-velero` 文件,该文件应采用适合您的对象存储的格式。

  4. 为备份位置创建一个具有自定义名称的 `Secret`

    $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
  5. 将具有自定义名称的 `Secret` 添加到 `DataProtectionApplication` CR,如下例所示

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: openshift-adp
    spec:
    ...
      backupLocations:
        - velero:
            provider: gcp
            default: true
            credential:
              key: cloud
              name: <custom_secret> (1)
            objectStorage:
              bucket: <bucket_name>
              prefix: <prefix>
      snapshotLocations:
        - velero:
            provider: gcp
            default: true
            config:
              project: <project>
              snapshotLocation: us-west1
    1 具有自定义名称的备份位置 `Secret`。

配置数据保护应用程序

您可以通过设置 Velero 资源分配或启用自签名 CA 证书来配置数据保护应用程序。

设置 Velero CPU 和内存资源分配

您可以通过编辑 `DataProtectionApplication` 自定义资源 (CR) 清单来设置 `Velero` pod 的 CPU 和内存资源分配。

先决条件
  • 您必须已安装 OpenShift API for Data Protection (OADP) 运算符。

步骤
  • 编辑 `DataProtectionApplication` CR 清单中 `spec.configuration.velero.podConfig.ResourceAllocations` 块中的值,如下例所示

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    # ...
      configuration:
        velero:
          podConfig:
            nodeSelector: <node_selector> (1)
            resourceAllocations: (2)
              limits:
                cpu: "1"
                memory: 1024Mi
              requests:
                cpu: 200m
                memory: 256Mi
    1 指定要提供给 Velero podSpec 的节点选择器。
    2 列出的 `resourceAllocations` 用于平均使用情况。

Kopia 是 OADP 1.3 及更高版本中的一个选项。您可以使用 Kopia 进行文件系统备份,对于使用内置数据移动器的 Data Mover 案例,Kopia 是您的唯一选择。

Kopia 比 Restic 更消耗资源,您可能需要相应地调整 CPU 和内存需求。

使用 `nodeSelector` 字段选择哪些节点可以运行节点代理。`nodeSelector` 字段是推荐的最简单的节点选择约束形式。指定的任何标签都必须与每个节点上的标签匹配。

更多详细信息,请参见 配置节点代理和节点标签

启用自签名 CA 证书

您必须通过编辑 `DataProtectionApplication` 自定义资源 (CR) 清单来启用对象存储的自签名 CA 证书,以防止出现 `certificate signed by unknown authority` 错误。

先决条件
  • 您必须已安装 OpenShift API for Data Protection (OADP) 运算符。

步骤
  • 编辑 `DataProtectionApplication` CR 清单的 `spec.backupLocations.velero.objectStorage.caCert` 参数和 `spec.backupLocations.velero.config` 参数

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
    spec:
    # ...
      backupLocations:
        - name: default
          velero:
            provider: aws
            default: true
            objectStorage:
              bucket: <bucket>
              prefix: <prefix>
              caCert: <base64_encoded_cert_string> (1)
            config:
              insecureSkipTLSVerify: "false" (2)
    # ...
    1 指定 Base64 编码的 CA 证书字符串。
    2 `insecureSkipTLSVerify` 配置可以设置为 `"true"` 或 `"false"`。如果设置为 `"true"`,则禁用 SSL/TLS 安全性。如果设置为 `"false"`,则启用 SSL/TLS 安全性。

将 CA 证书与为 Velero 部署创建别名的 velero 命令一起使用

您可能希望通过为其创建别名来使用 Velero CLI,而无需在系统上本地安装它。

先决条件
  • 您必须以具有 `cluster-admin` 角色的用户身份登录到 OpenShift Container Platform 集群。

  • 您必须已安装 OpenShift CLI ( `oc` )。

    1. 要使用别名 Velero 命令,请运行以下命令

      $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
    2. 通过运行以下命令检查别名是否正常工作

      示例
      $ velero version
      Client:
      	Version: v1.12.1-OADP
      	Git commit: -
      Server:
      	Version: v1.12.1-OADP
    3. 要将 CA 证书与该命令一起使用,您可以通过运行以下命令将证书添加到 Velero 部署中

      $ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}')
      
      $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
      $ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt
    4. 要获取备份日志,请运行以下命令

      $ velero backup logs  <backup_name>  --cacert /tmp/<your_cacert.txt>

      您可以使用这些日志查看无法备份的资源的失败和警告。

    5. 如果 Velero pod 重启,则 `/tmp/your-cacert.txt` 文件将消失,您必须通过重新运行上一步中的命令来重新创建 `/tmp/your-cacert.txt` 文件。

    6. 您可以通过运行以下命令检查 `/tmp/your-cacert.txt` 文件是否仍然存在于您存储它的文件位置中

      $ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt"
      /tmp/your-cacert.txt

在 OpenShift API for Data Protection (OADP) 的未来版本中,我们计划将证书挂载到 Velero pod,以便不需要此步骤。

Google 工作负载身份联合云身份验证

在 Google Cloud 外部运行的应用程序使用服务帐户密钥(例如用户名和密码)来访问 Google Cloud 资源。如果未正确管理这些服务帐户密钥,它们可能会成为安全风险。

借助 Google 的工作负载身份联合,您可以使用身份和访问管理 (IAM) 为外部身份提供 IAM 角色,包括模拟服务帐户的能力。这消除了与服务帐户密钥相关的维护和安全风险。

工作负载身份联合处理证书的加密和解密、提取用户属性和验证。身份联合将身份验证外部化,将其传递给安全令牌服务 (STS),并减少对各个开发人员的需求。授权和控制对资源的访问仍然是应用程序的责任。

Google 工作负载身份联合适用于 OADP 1.3.x 及更高版本。

备份卷时,使用 Google 工作负载身份联合身份验证的 GCP 上的 OADP 仅支持 CSI 快照。

使用 Google 工作负载身份联合身份验证的 GCP 上的 OADP 不支持卷快照位置 (VSL) 备份。更多详细信息,请参见 Google 工作负载身份联合已知问题

如果您不使用 Google 工作负载身份联合云身份验证,请继续执行“安装数据保护应用程序”。

先决条件
  • 您已使用 已配置 GCP 工作负载身份 以手动模式安装了集群。

  • 您可以访问 Cloud Credential Operator 实用程序 ( `ccoctl` ) 和关联的工作负载身份池。

步骤
  1. 运行以下命令创建oadp-credrequest目录:

    $ mkdir -p oadp-credrequest
  2. 创建CredentialsRequest.yaml文件,内容如下:

    echo 'apiVersion: cloudcredential.openshift.io/v1
    kind: CredentialsRequest
    metadata:
      name: oadp-operator-credentials
      namespace: openshift-cloud-credential-operator
    spec:
      providerSpec:
        apiVersion: cloudcredential.openshift.io/v1
        kind: GCPProviderSpec
        permissions:
        - compute.disks.get
        - compute.disks.create
        - compute.disks.createSnapshot
        - compute.snapshots.get
        - compute.snapshots.create
        - compute.snapshots.useReadOnly
        - compute.snapshots.delete
        - compute.zones.get
        - storage.objects.create
        - storage.objects.delete
        - storage.objects.get
        - storage.objects.list
        - iam.serviceAccounts.signBlob
        skipServiceCheck: true
      secretRef:
        name: cloud-credentials-gcp
        namespace: <OPERATOR_INSTALL_NS>
      serviceAccountNames:
      - velero
    ' > oadp-credrequest/credrequest.yaml
  3. 运行以下命令,使用ccoctl工具处理oadp-credrequest目录中的CredentialsRequest对象:

    $ ccoctl gcp create-service-accounts \
        --name=<name> \
        --project=<gcp_project_id> \
        --credentials-requests-dir=oadp-credrequest \
        --workload-identity-pool=<pool_id> \
        --workload-identity-provider=<provider_id>

    现在可以使用manifests/openshift-adp-cloud-credentials-gcp-credentials.yaml文件进行后续步骤。

  4. 运行以下命令创建一个命名空间:

    $ oc create namespace <OPERATOR_INSTALL_NS>
  5. 运行以下命令将凭据应用到命名空间:

    $ oc apply -f manifests/openshift-adp-cloud-credentials-gcp-credentials.yaml

Google工作负载身份联合已知问题

  • 配置Google工作负载身份联合后,卷快照位置 (VSL) 备份将以PartiallyFailed状态结束。Google工作负载身份联合身份验证不支持VSL备份。

安装数据保护应用程序

您可以通过创建DataProtectionApplication API实例来安装数据保护应用程序 (DPA)。

先决条件
  • 您必须安装OADP Operator。

  • 您必须配置对象存储作为备份位置。

  • 如果您使用快照备份PV,您的云提供商必须支持原生快照API或容器存储接口 (CSI) 快照。

  • 如果备份和快照位置使用相同的凭据,则必须创建一个名为cloud-credentials-gcpSecret

  • 如果备份和快照位置使用不同的凭据,则必须创建两个Secret

    • 一个自定义名称的Secret用于备份位置。您需要将此Secret添加到DataProtectionApplication CR中。

    • 另一个自定义名称的Secret用于快照位置。您需要将此Secret添加到DataProtectionApplication CR中。

    如果您不想在安装过程中指定备份或快照位置,您可以创建一个包含空credentials-velero文件的默认Secret。如果没有默认Secret,安装将失败。

步骤
  1. 点击OperatorsInstalled Operators并选择OADP Operator。

  2. Provided APIs下,点击DataProtectionApplication框中的Create instance

  3. 点击YAML View并更新DataProtectionApplication清单的参数。

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: <dpa_sample>
      namespace: <OPERATOR_INSTALL_NS> (1)
    spec:
      configuration:
        velero:
          defaultPlugins:
            - gcp
            - openshift (2)
          resourceTimeout: 10m (3)
        nodeAgent: (4)
          enable: true (5)
          uploaderType: kopia (6)
          podConfig:
            nodeSelector: <node_selector> (7)
      backupLocations:
        - velero:
            provider: gcp
            default: true
            credential:
              key: cloud (8)
              name: cloud-credentials-gcp (9)
            objectStorage:
              bucket: <bucket_name> (10)
              prefix: <prefix> (11)
      snapshotLocations: (12)
        - velero:
            provider: gcp
            default: true
            config:
              project: <project>
              snapshotLocation: us-west1 (13)
            credential:
              key: cloud
              name: cloud-credentials-gcp (14)
      backupImages: true (15)
    1 OADP的默认命名空间是openshift-adp。命名空间是一个变量,可以配置。
    2 openshift插件是必需的。
    3 指定在超时发生之前等待多个Velero资源(例如Velero CRD可用性、卷快照删除和备份存储库可用性)的分钟数。默认为10分钟。
    4 将管理请求路由到服务器的管理代理。
    5 如果您想启用nodeAgent并执行文件系统备份,请将此值设置为true
    6 输入kopiarestic作为您的上传器。安装后无法更改选择。对于内置DataMover,您必须使用Kopia。nodeAgent部署了一个DaemonSet,这意味着nodeAgent Pod在每个工作节点上运行。您可以通过向Backup CR添加spec.defaultVolumesToFsBackup: true来配置文件系统备份。
    7 指定Kopia或Restic可用的节点。默认情况下,Kopia或Restic在所有节点上运行。
    8 包含凭据的密钥。对于Google工作负载身份联合云身份验证,请使用service_account.json
    9 包含凭据的密钥名称。如果您未指定此值,则使用默认名称cloud-credentials-gcp
    10 指定一个bucket作为备份存储位置。如果该bucket不是Velero备份的专用bucket,则必须指定一个前缀。
    11 为Velero备份指定一个前缀,例如velero,如果该bucket用于多种用途。
    12 指定快照位置,除非您使用CSI快照或Restic备份PV。
    13 快照位置必须与PV位于同一区域。
    14 指定您创建的Secret对象的名称。如果您未指定此值,则使用默认名称cloud-credentials-gcp。如果您指定自定义名称,则自定义名称将用于备份位置。
    15 Google工作负载身份联合支持内部镜像备份。如果您不想使用镜像备份,请将此字段设置为false
  4. 点击创建

验证
  1. 运行以下命令,通过查看OpenShift API for Data Protection (OADP)资源来验证安装:

    $ oc get all -n openshift-adp
    示例输出
    NAME                                                     READY   STATUS    RESTARTS   AGE
    pod/oadp-operator-controller-manager-67d9494d47-6l8z8    2/2     Running   0          2m8s
    pod/node-agent-9cq4q                                     1/1     Running   0          94s
    pod/node-agent-m4lts                                     1/1     Running   0          94s
    pod/node-agent-pv4kr                                     1/1     Running   0          95s
    pod/velero-588db7f655-n842v                              1/1     Running   0          95s
    
    NAME                                                       TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    service/oadp-operator-controller-manager-metrics-service   ClusterIP   172.30.70.140    <none>        8443/TCP   2m8s
    service/openshift-adp-velero-metrics-svc                   ClusterIP   172.30.10.0      <none>        8085/TCP   8h
    
    NAME                        DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
    daemonset.apps/node-agent    3         3         3       3            3           <none>          96s
    
    NAME                                                READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/oadp-operator-controller-manager    1/1     1            1           2m9s
    deployment.apps/velero                              1/1     1            1           96s
    
    NAME                                                           DESIRED   CURRENT   READY   AGE
    replicaset.apps/oadp-operator-controller-manager-67d9494d47    1         1         1       2m9s
    replicaset.apps/velero-588db7f655                              1         1         1       96s
  2. 运行以下命令,验证DataProtectionApplication (DPA) 是否已协调:

    $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'
    示例输出
    {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}
  3. 验证type是否设置为Reconciled

  4. 运行以下命令,验证备份存储位置并确认PHASEAvailable

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    示例输出
    NAME           PHASE       LAST VALIDATED   AGE     DEFAULT
    dpa-sample-1   Available   1s               3d16h   true

使用客户端突发和QPS设置配置DPA

突发设置决定在应用限制之前可以向velero服务器发送多少个请求。达到突发限制后,每秒查询数 (QPS) 设置决定每秒可以发送多少个额外请求。

您可以通过使用突发和QPS值配置数据保护应用程序 (DPA) 来设置velero服务器的突发和QPS值。您可以使用DPA的dpa.configuration.velero.client-burstdpa.configuration.velero.client-qps字段来设置突发和QPS值。

先决条件
  • 您已安装OADP Operator。

步骤
  • 如以下示例所示,配置DPA中的client-burstclient-qps字段:

    示例数据保护应用程序
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: test-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
        - name: default
          velero:
            config:
              insecureSkipTLSVerify: "true"
              profile: "default"
              region: <bucket_region>
              s3ForcePathStyle: "true"
              s3Url: <bucket_url>
            credential:
              key: cloud
              name: cloud-credentials
            default: true
            objectStorage:
              bucket: <bucket_name>
              prefix: velero
            provider: aws
      configuration:
        nodeAgent:
          enable: true
          uploaderType: restic
        velero:
          client-burst: 500 (1)
          client-qps: 300 (2)
          defaultPlugins:
            - openshift
            - aws
            - kubevirt
    1 指定client-burst值。在此示例中,client-burst字段设置为500。
    2 指定client-qps值。在此示例中,client-qps字段设置为300。

配置节点代理和节点标签

OADP的DPA使用nodeSelector字段来选择哪些节点可以运行节点代理。nodeSelector字段是推荐的节点选择约束的最简单形式。

指定的任何标签都必须与每个节点上的标签匹配。

在您选择的任何节点上运行节点代理的正确方法是使用自定义标签标记节点:

$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""

DPA.spec.configuration.nodeAgent.podConfig.nodeSelector中使用与用于标记节点相同的自定义标签。例如:

configuration:
  nodeAgent:
    enable: true
    podConfig:
      nodeSelector:
        node-role.kubernetes.io/nodeAgent: ""

以下示例是nodeSelector的反模式,除非节点上同时存在'node-role.kubernetes.io/infra: ""''node-role.kubernetes.io/worker: ""'这两个标签,否则无效。

    configuration:
      nodeAgent:
        enable: true
        podConfig:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
            node-role.kubernetes.io/worker: ""

在DataProtectionApplication CR中启用CSI

您可以在DataProtectionApplication自定义资源 (CR) 中启用容器存储接口 (CSI),以便使用CSI快照备份持久卷。

先决条件
  • 云提供商必须支持CSI快照。

步骤
  • 编辑DataProtectionApplication CR,例如:

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    ...
    spec:
      configuration:
        velero:
          defaultPlugins:
          - openshift
          - csi (1)
    1 添加csi默认插件。

在DataProtectionApplication中禁用节点代理

如果您没有使用ResticKopiaDataMover进行备份,则可以在DataProtectionApplication自定义资源 (CR) 中禁用nodeAgent字段。在禁用nodeAgent之前,请确保OADP Operator处于空闲状态且未运行任何备份。

步骤
  1. 要禁用nodeAgent,请将enable标志设置为false。请参见以下示例:

    示例DataProtectionApplication CR
    # ...
    configuration:
      nodeAgent:
        enable: false  (1)
        uploaderType: kopia
    # ...
    1 禁用节点代理。
  2. 要启用nodeAgent,请将enable标志设置为true。请参见以下示例:

    示例DataProtectionApplication CR
    # ...
    configuration:
      nodeAgent:
        enable: true  (1)
        uploaderType: kopia
    # ...
    1 启用节点代理。

您可以设置一个job来启用和禁用DataProtectionApplication CR中的nodeAgent字段。有关更多信息,请参见“使用job在Pod中运行任务”。