1.6. Installation et configuration d’OADP


1.6.1. Installation d’OADP

Il est possible d’utiliser l’API OpenShift pour la protection des données (OADP) avec Red Hat OpenShift Service sur AWS (ROSA) pour sauvegarder et restaurer les données des applications.

Avant d’installer l’API OpenShift pour la protection des données (OADP), vous devez configurer les informations d’identification des rôles et des politiques pour OADP afin qu’elle puisse utiliser l’API Amazon Web Services.

Ce processus se déroule en deux étapes:

  1. Créer des informations d’identification AWS
  2. Installez l’opérateur OADP et donnez-lui un rôle IAM

1.6.1.1. La préparation des identifiants AWS pour OADP

Le compte Amazon Web Services doit être préparé et configuré pour accepter une installation OpenShift API for Data Protection (OADP).

Procédure

  1. Créez les variables d’environnement suivantes en exécutant les commandes suivantes:

    Important

    Changez le nom du cluster pour correspondre à votre cluster ROSA et assurez-vous d’être connecté au cluster en tant qu’administrateur. Assurez-vous que tous les champs sont affichés correctement avant de continuer.

    $ export CLUSTER_NAME=my-cluster 
    1
    
      export ROSA_CLUSTER_ID=$(rosa describe cluster -c ${CLUSTER_NAME} --output json | jq -r .id)
      export REGION=$(rosa describe cluster -c ${CLUSTER_NAME} --output json | jq -r .region.id)
      export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster -o jsonpath='{.spec.serviceAccountIssuer}' | sed 's|^https://||')
      export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
      export CLUSTER_VERSION=$(rosa describe cluster -c ${CLUSTER_NAME} -o json | jq -r .version.raw_id | cut -f -2 -d '.')
      export ROLE_NAME="${CLUSTER_NAME}-openshift-oadp-aws-cloud-credentials"
      export SCRATCH="/tmp/${CLUSTER_NAME}/oadp"
      mkdir -p ${SCRATCH}
      echo "Cluster ID: ${ROSA_CLUSTER_ID}, Region: ${REGION}, OIDC Endpoint:
      ${OIDC_ENDPOINT}, AWS Account ID: ${AWS_ACCOUNT_ID}"
    Copy to Clipboard Toggle word wrap
    1
    Le nom de votre cluster ROSA est remplacé par mon cluster.
  2. Dans le compte AWS, créez une politique IAM pour permettre l’accès à AWS S3:

    1. Vérifiez si la stratégie existe en exécutant la commande suivante:

      $ POLICY_ARN=$(aws iam list-policies --query "Policies[?PolicyName=='RosaOadpVer1'].{ARN:Arn}" --output text) 
      1
      Copy to Clipboard Toggle word wrap
      1
      Remplacez RosaOadp par le nom de votre politique.
    2. Entrez la commande suivante pour créer le fichier JSON de stratégie, puis créez la stratégie dans ROSA:

      Note

      Lorsque la stratégie ARN n’est pas trouvée, la commande crée la stratégie. Dans le cas où la politique ARN existe déjà, la déclaration si elle saute intentionnellement la création de la politique.

      $ if [[ -z "${POLICY_ARN}" ]]; then
        cat << EOF > ${SCRATCH}/policy.json 
      1
      
        {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "s3:CreateBucket",
              "s3:DeleteBucket",
              "s3:PutBucketTagging",
              "s3:GetBucketTagging",
              "s3:PutEncryptionConfiguration",
              "s3:GetEncryptionConfiguration",
              "s3:PutLifecycleConfiguration",
              "s3:GetLifecycleConfiguration",
              "s3:GetBucketLocation",
              "s3:ListBucket",
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObject",
              "s3:ListBucketMultipartUploads",
              "s3:AbortMultipartUpload",
              "s3:ListMultipartUploadParts",
              "ec2:DescribeSnapshots",
              "ec2:DescribeVolumes",
              "ec2:DescribeVolumeAttribute",
              "ec2:DescribeVolumesModifications",
              "ec2:DescribeVolumeStatus",
              "ec2:CreateTags",
              "ec2:CreateVolume",
              "ec2:CreateSnapshot",
              "ec2:DeleteSnapshot"
            ],
            "Resource": "*"
          }
        ]}
      EOF
      
        POLICY_ARN=$(aws iam create-policy --policy-name "RosaOadpVer1" \
        --policy-document file:///${SCRATCH}/policy.json --query Policy.Arn \
        --tags Key=rosa_openshift_version,Value=${CLUSTER_VERSION} Key=rosa_role_prefix,Value=ManagedOpenShift Key=operator_namespace,Value=openshift-oadp Key=operator_name,Value=openshift-oadp \
        --output text)
        fi
      Copy to Clipboard Toggle word wrap
      1
      Le SCRATCH est un nom pour un répertoire temporaire créé pour les variables d’environnement.
    3. Consultez la stratégie ARN en exécutant la commande suivante:

      $ echo ${POLICY_ARN}
      Copy to Clipboard Toggle word wrap
  3. Créer une politique de confiance du rôle de l’IAM pour le cluster:

    1. Créez le fichier de stratégie de confiance en exécutant la commande suivante:

      $ cat <<EOF > ${SCRATCH}/trust-policy.json
        {
            "Version": "2012-10-17",
            "Statement": [{
              "Effect": "Allow",
              "Principal": {
                "Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_ENDPOINT}"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                "StringEquals": {
                  "${OIDC_ENDPOINT}:sub": [
                    "system:serviceaccount:openshift-adp:openshift-adp-controller-manager",
                    "system:serviceaccount:openshift-adp:velero"]
                }
              }
            }]
        }
      EOF
      Copy to Clipboard Toggle word wrap
    2. Créez le rôle en exécutant la commande suivante:

      $ ROLE_ARN=$(aws iam create-role --role-name \
        "${ROLE_NAME}" \
        --assume-role-policy-document file://${SCRATCH}/trust-policy.json \
        --tags Key=rosa_cluster_id,Value=${ROSA_CLUSTER_ID} \
               Key=rosa_openshift_version,Value=${CLUSTER_VERSION} \
               Key=rosa_role_prefix,Value=ManagedOpenShift \
               Key=operator_namespace,Value=openshift-adp \
               Key=operator_name,Value=openshift-oadp \
        --query Role.Arn --output text)
      Copy to Clipboard Toggle word wrap
    3. Afficher le rôle ARN en exécutant la commande suivante:

      $ echo ${ROLE_ARN}
      Copy to Clipboard Toggle word wrap
  4. Joindre la politique de l’IAM au rôle de l’IAM en exécutant la commande suivante:

    $ aws iam attach-role-policy --role-name "${ROLE_NAME}" \
      --policy-arn ${POLICY_ARN}
    Copy to Clipboard Toggle word wrap

1.6.1.2. Installation de l’opérateur OADP et rôle IAM

AWS Security Token Service (AWS STS) est un service Web mondial qui fournit des informations d’identification à court terme pour les utilisateurs IAM ou fédérés. Le Red Hat OpenShift Service sur AWS (ROSA) avec STS est le mode d’identification recommandé pour les clusters ROSA. Ce document décrit comment installer l’API OpenShift pour la protection des données (OADP) sur ROSA avec AWS STS.

Important

Le Restic n’est pas pris en charge.

La sauvegarde du système de fichiers Kopia (FSB) est prise en charge lors de la sauvegarde des systèmes de fichiers qui n’ont pas de prise en charge de l’interface de stockage de conteneurs (CSI).

Exemple de systèmes de fichiers comprennent ce qui suit:

  • Amazon Elastic File System (EFS)
  • Le système de fichiers réseau (NFS)
  • les volumes videDir
  • Les volumes locaux

En cas de sauvegarde des volumes, OADP sur ROSA avec AWS STS ne prend en charge que les snapshots natifs et les snapshots CSI (Container Storage Interface).

Dans un cluster Amazon ROSA qui utilise l’authentification STS, la restauration des données sauvegardées dans une autre région AWS n’est pas prise en charge.

La fonction Data Mover n’est pas actuellement prise en charge dans les clusters ROSA. Il est possible d’utiliser des outils AWS S3 natifs pour déplacer les données.

Conditions préalables

  • A Red Hat OpenShift Service sur AWS ROSA cluster avec l’accès et les jetons requis. Consultez la procédure précédente Préparation des informations d’identification AWS pour OADP. Lorsque vous prévoyez d’utiliser deux clusters différents pour sauvegarder et restaurer, vous devez préparer des identifiants AWS, y compris ROLE_ARN, pour chaque cluster.

Procédure

  1. Créez un service Red Hat OpenShift sur AWS secret à partir de votre fichier jeton AWS en entrant les commandes suivantes:

    1. Créer le fichier d’identification:

      $ cat <<EOF > ${SCRATCH}/credentials
        [default]
        role_arn = ${ROLE_ARN}
        web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
        region = <aws_region> 
      1
      
      EOF
      Copy to Clipboard Toggle word wrap
      1
      &lt;aws_region&gt; par la région AWS à utiliser pour le point d’extrémité STS.
    2. Créer un espace de noms pour OADP:

      $ oc create namespace openshift-adp
      Copy to Clipboard Toggle word wrap
    3. Créez le service Red Hat OpenShift sur AWS secret:

      $ oc -n openshift-adp create secret generic cloud-credentials \
        --from-file=${SCRATCH}/credentials
      Copy to Clipboard Toggle word wrap
      Note

      Dans Red Hat OpenShift Service sur AWS version 4.15 et ultérieure, l’opérateur OADP prend en charge un nouveau flux de travail STS standardisé via le gestionnaire de cycle de vie de l’opérateur (OLM) et Cloud Credentials Operator (CCO). Dans ce flux de travail, vous n’avez pas besoin de créer le secret ci-dessus, vous n’avez besoin que de fournir le rôle ARN lors de l’installation d’opérateurs gérés par OLM en utilisant le service OpenShift Red Hat sur la console Web AWS, pour plus d’informations voir Installation depuis OperatorHub à l’aide de la console Web.

      Le secret précédent est créé automatiquement par CCO.

  2. Installez l’opérateur OADP:

    1. Dans le Red Hat OpenShift Service sur la console web AWS, accédez aux opérateurs OperatorHub.
    2. Cherchez l’opérateur OADP.
    3. Dans le champ role_ARN, collez le rôle_arn que vous avez créé précédemment et cliquez sur Installer.
  3. Créez un stockage cloud AWS à l’aide de vos identifiants AWS en entrant la commande suivante:

    $ cat << EOF | oc create -f -
      apiVersion: oadp.openshift.io/v1alpha1
      kind: CloudStorage
      metadata:
        name: ${CLUSTER_NAME}-oadp
        namespace: openshift-adp
      spec:
        creationSecret:
          key: credentials
          name: cloud-credentials
        enableSharedConfig: true
        name: ${CLUSTER_NAME}-oadp
        provider: aws
        region: $REGION
    EOF
    Copy to Clipboard Toggle word wrap
  4. Consultez la classe de stockage par défaut de votre application en entrant la commande suivante:

    $ oc get pvc -n <namespace>
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    applog   Bound    pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8   1Gi        RWO            gp3-csi        4d19h
    mysql    Bound    pvc-16b8e009-a20a-4379-accc-bc81fedd0621   1Gi        RWO            gp3-csi        4d19h
    Copy to Clipboard Toggle word wrap

  5. Bénéficiez de la classe de stockage en exécutant la commande suivante:

    $ oc get storageclass
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    gp2                 kubernetes.io/aws-ebs   Delete          WaitForFirstConsumer   true                   4d21h
    gp2-csi             ebs.csi.aws.com         Delete          WaitForFirstConsumer   true                   4d21h
    gp3                 ebs.csi.aws.com         Delete          WaitForFirstConsumer   true                   4d21h
    gp3-csi (default)   ebs.csi.aws.com         Delete          WaitForFirstConsumer   true                   4d21h
    Copy to Clipboard Toggle word wrap

    Note

    Les classes de stockage suivantes fonctionneront:

    • gp3-csi
    • gp2-csi
    • Gp3
    • Gp2

    Lorsque l’application ou les applications en cours de sauvegarde sont toutes utilisant des volumes persistants (PV) avec Container Storage Interface (CSI), il est conseillé d’inclure le plugin CSI dans la configuration OADP DPA.

  6. Créez la ressource DataProtectionApplication pour configurer la connexion au stockage où les sauvegardes et les instantanés de volume sont stockés:

    1. Lorsque vous utilisez uniquement des volumes CSI, déployez une application de protection des données en entrant la commande suivante:

      $ cat << EOF | oc create -f -
        apiVersion: oadp.openshift.io/v1alpha1
        kind: DataProtectionApplication
        metadata:
          name: ${CLUSTER_NAME}-dpa
          namespace: openshift-adp
        spec:
          backupImages: true 
      1
      
          features:
            dataMover:
              enable: false
          backupLocations:
          - bucket:
              cloudStorageRef:
                name: ${CLUSTER_NAME}-oadp
              credential:
                key: credentials
                name: cloud-credentials
              prefix: velero
              default: true
              config:
                region: ${REGION}
          configuration:
            velero:
              defaultPlugins:
              - openshift
              - aws
              - csi
            nodeAgent:  
      2
      
              enable: false
              uploaderType: kopia 
      3
      
      EOF
      Copy to Clipboard Toggle word wrap
      1
      La ROSA prend en charge la sauvegarde interne d’image. Définissez ce champ sur false si vous ne voulez pas utiliser la sauvegarde d’image.
      2
      Consultez la note importante concernant l’attribut nodeAgent.
      3
      Le type de téléchargeur. Les valeurs possibles sont restiques ou kopia. Le Mover de données intégré utilise Kopia comme mécanisme de téléchargement par défaut, quelle que soit la valeur du champ uploaderType.
  1. Lorsque vous utilisez des volumes CSI ou non CSI, déployez une application de protection des données en entrant la commande suivante:

    $ cat << EOF | oc create -f -
      apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        name: ${CLUSTER_NAME}-dpa
        namespace: openshift-adp
      spec:
        backupImages: true 
    1
    
        backupLocations:
        - bucket:
            cloudStorageRef:
              name: ${CLUSTER_NAME}-oadp
            credential:
              key: credentials
              name: cloud-credentials
            prefix: velero
            default: true
            config:
              region: ${REGION}
        configuration:
          velero:
            defaultPlugins:
            - openshift
            - aws
          nodeAgent: 
    2
    
            enable: false
            uploaderType: restic
        snapshotLocations:
          - velero:
              config:
                credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials 
    3
    
                enableSharedConfig: "true" 
    4
    
                profile: default 
    5
    
                region: ${REGION} 
    6
    
              provider: aws
    EOF
    Copy to Clipboard Toggle word wrap
    1
    La ROSA prend en charge la sauvegarde interne d’image. Définissez ce champ sur false si vous ne voulez pas utiliser la sauvegarde d’image.
    2
    Consultez la note importante concernant l’attribut nodeAgent.
    3
    Le champ CredentialsFile est l’emplacement monté de l’identifiant du seau sur le pod.
    4
    Le champ enableSharedConfig permet aux snapshotLocations de partager ou de réutiliser l’identifiant défini pour le seau.
    5
    Utilisez le nom de profil défini dans le fichier d’identification AWS.
    6
    Indiquez la région en tant que région AWS. Cela doit être le même que la région des clusters.

    Désormais, vous êtes prêt à sauvegarder et restaurer Red Hat OpenShift Service sur les applications AWS, comme décrit dans les applications de sauvegarde.

Important

Le paramètre d’activation de restic est défini sur false dans cette configuration, car OADP ne prend pas en charge Restic dans les environnements ROSA.

Lorsque vous utilisez OADP 1.2, remplacez cette configuration:

nodeAgent:
  enable: false
  uploaderType: restic
Copy to Clipboard Toggle word wrap

avec la configuration suivante:

restic:
  enable: false
Copy to Clipboard Toggle word wrap

Lorsque vous souhaitez utiliser deux clusters différents pour sauvegarder et restaurer, les deux clusters doivent avoir les mêmes noms de stockage AWS S3 dans le CR de stockage en nuage et dans la configuration OADP DataProtectionApplication.

Lors de l’installation de l’opérateur OADP sur un cluster ROSA Security Token Service (STS), si vous fournissez un rôle IAM incorrect Amazon Resource Name (ARN), le pod openshift-adp-controller donne une erreur. Les requêtes d’identification qui sont générées contiennent le mauvais rôle IAM ARN. Afin de mettre à jour l’objet de requêtes d’identification avec l’ARN du rôle IAM correct, vous pouvez modifier l’abonnement OADP Operator et corriger le rôle IAM ARN avec la valeur correcte. En modifiant l’abonnement OADP Operator, vous n’avez pas à désinstaller et réinstaller OADP pour mettre à jour le rôle IAM ARN.

Conditions préalables

  • Il existe un service Red Hat OpenShift sur le cluster AWS STS avec l’accès et les jetons requis.
  • Il a été installé OADP sur le cluster ROSA STS.

Procédure

  1. Afin de vérifier que l’abonnement OADP a le mauvais jeu de variable d’environnement ARN rôle IAM, exécutez la commande suivante:

    $ oc get sub -o yaml redhat-oadp-operator
    Copy to Clipboard Toggle word wrap

    Exemple d’abonnement

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      annotations:
      creationTimestamp: "2025-01-15T07:18:31Z"
      generation: 1
      labels:
        operators.coreos.com/redhat-oadp-operator.openshift-adp: ""
      name: redhat-oadp-operator
      namespace: openshift-adp
      resourceVersion: "77363"
      uid: 5ba00906-5ad2-4476-ae7b-ffa90986283d
    spec:
      channel: stable-1.4
      config:
        env:
        - name: ROLEARN
          value: arn:aws:iam::11111111:role/wrong-role-arn 
    1
    
      installPlanApproval: Manual
      name: redhat-oadp-operator
      source: prestage-operators
      sourceNamespace: openshift-marketplace
      startingCSV: oadp-operator.v1.4.2
    Copy to Clipboard Toggle word wrap

    1
    Vérifiez la valeur de ROLEARN que vous souhaitez mettre à jour.
  2. Actualisez le champ ROLEARN de l’abonnement avec le rôle correct ARN en exécutant la commande suivante:

    $ oc patch subscription redhat-oadp-operator -p '{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "<role_arn>"}]}}}' --type='merge'
    Copy to Clipboard Toggle word wrap

    là où:

    &lt;role_arn&gt;
    Indique le rôle IAM ARN à mettre à jour. Arn:aws:iam::160….6956:role/oadprosa…..8wlf.
  3. Assurez-vous que l’objet secret est mis à jour avec la valeur ARN du rôle correct en exécutant la commande suivante:

    $ oc get secret cloud-credentials -o jsonpath='{.data.credentials}' | base64 -d
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    [default]
    sts_regional_endpoints = regional
    role_arn = arn:aws:iam::160.....6956:role/oadprosa.....8wlf
    web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
    Copy to Clipboard Toggle word wrap

  4. Configurez le fichier de manifestation DataProtectionApplication (CR) comme indiqué dans l’exemple suivant:

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: test-rosa-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
      - bucket:
          config:
            region: us-east-1
          cloudStorageRef:
            name: <cloud_storage> 
    1
    
          credential:
            name: cloud-credentials
            key: credentials
          prefix: velero
          default: true
      configuration:
        velero:
          defaultPlugins:
          - aws
          - openshift
    Copy to Clipboard Toggle word wrap
    1
    Indiquez le CloudStorage CR.
  5. Créez la DataProtectionApplication CR en exécutant la commande suivante:

    $ oc create -f <dpa_manifest_file>
    Copy to Clipboard Toggle word wrap
  6. Assurez-vous que le DataProtectionApplication CR est réconcilié et que l’état est défini sur "True" en exécutant la commande suivante:

    $  oc get dpa -n openshift-adp -o yaml
    Copy to Clipboard Toggle word wrap

    Exemple d’application de DataProtectionApplication

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    ...
    status:
        conditions:
        - lastTransitionTime: "2023-07-31T04:48:12Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    Copy to Clipboard Toggle word wrap

  7. Assurez-vous que BackupStorageLocation CR est dans un état disponible en exécutant la commande suivante:

    $ oc get backupstoragelocations.velero.io -n openshift-adp
    Copy to Clipboard Toggle word wrap

    Exemple de BackupStorageLocation

    NAME       PHASE       LAST VALIDATED   AGE   DEFAULT
    ts-dpa-1   Available   3s               6s    true
    Copy to Clipboard Toggle word wrap

Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat