17.7. Création d'une sauvegarde des ressources du cluster avant la mise à niveau


Pour OpenShift à nœud unique, le Topology Aware Lifecycle Manager (TALM) peut créer une sauvegarde d'un déploiement avant une mise à niveau. Si la mise à niveau échoue, vous pouvez récupérer la version précédente et restaurer un cluster à un état fonctionnel sans nécessiter un reprovisionnement des applications.

Pour utiliser la fonction de sauvegarde, vous devez d'abord créer un CR ClusterGroupUpgrade avec le champ backup défini sur true. Pour garantir que le contenu de la sauvegarde est à jour, la sauvegarde n'est pas effectuée tant que vous n'avez pas défini le champ enable dans le CR ClusterGroupUpgrade sur true.

TALM utilise la condition BackupSucceeded pour signaler l'état et les raisons comme suit :

  • true

    La sauvegarde est terminée pour tous les clusters ou l'exécution de la sauvegarde s'est terminée mais a échoué pour un ou plusieurs clusters. Si la sauvegarde échoue pour un cluster, la mise à jour ne se fait pas pour ce cluster.

  • false

    La sauvegarde est toujours en cours pour un ou plusieurs clusters ou a échoué pour tous les clusters. Le processus de sauvegarde s'exécutant dans les clusters de rayons peut avoir les statuts suivants :

    • PreparingToStart

      La première passe de réconciliation est en cours. Le TALM supprime toutes les ressources d'espace de noms de sauvegarde de rayon et de vue de hub qui ont été créées lors d'une tentative de mise à niveau qui a échoué.

    • Starting

      Les conditions préalables à la sauvegarde et la tâche de sauvegarde sont en cours de création.

    • Active

      La sauvegarde est en cours.

    • Succeeded

      La sauvegarde a réussi.

    • BackupTimeout

      La sauvegarde des artefacts est partiellement effectuée.

    • UnrecoverableError

      La sauvegarde s'est terminée avec un code de sortie non nul.

Note

Si la sauvegarde d'un cluster échoue et entre dans l'état BackupTimeout ou UnrecoverableError, la mise à jour du cluster ne se fait pas pour ce cluster. Les mises à jour des autres clusters ne sont pas affectées et se poursuivent.

17.7.1. Création d'un ClusterGroupUpgrade CR avec sauvegarde

Vous pouvez créer une sauvegarde d'un déploiement avant une mise à niveau sur des clusters OpenShift à nœud unique. Si la mise à niveau échoue, vous pouvez utiliser le script upgrade-recovery.sh généré par Topology Aware Lifecycle Manager (TALM) pour ramener le système à son état avant la mise à niveau. La sauvegarde se compose des éléments suivants :

Sauvegarde de la grappe
Un instantané de etcd et des manifestes de pods statiques.
Sauvegarde du contenu
Sauvegardes de dossiers, par exemple, /etc, /usr/local, /var/lib/kubelet.
Sauvegarde des fichiers modifiés
Tous les fichiers gérés par machine-config qui ont été modifiés.
Déploiement
Déploiement d'une épingle ostree.
Images (optionnel)
Toutes les images de conteneurs utilisées.

Conditions préalables

  • Installez le gestionnaire de cycle de vie Topology Aware (TALM).
  • Provisionner un ou plusieurs clusters gérés.
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  • Installez Red Hat Advanced Cluster Management (RHACM).
Note

Il est fortement recommandé de créer une partition de récupération. Voici un exemple de ressource personnalisée (CR) SiteConfig pour une partition de récupération de 50 Go :

nodes:
    - hostName: "snonode.sno-worker-0.e2e.bos.redhat.com"
    role: "master"
    rootDeviceHints:
        hctl: "0:2:0:0"
        deviceName: /dev/sda
........
........
    #Disk /dev/sda: 893.3 GiB, 959119884288 bytes, 1873281024 sectors
    diskPartition:
        - device: /dev/sda
        partitions:
        - mount_point: /var/recovery
            size: 51200
            start: 800000

Procédure

  1. Enregistrez le contenu du CR ClusterGroupUpgrade avec les champs backup et enable définis sur true dans le fichier clustergroupupgrades-group-du.yaml:

    apiVersion: ran.openshift.io/v1alpha1
    kind: ClusterGroupUpgrade
    metadata:
      name: du-upgrade-4918
      namespace: ztp-group-du-sno
    spec:
      preCaching: true
      backup: true
      clusters:
      - cnfdb1
      - cnfdb2
      enable: true
      managedPolicies:
      - du-upgrade-platform-upgrade
      remediationStrategy:
        maxConcurrency: 2
        timeout: 240
  2. Pour lancer la mise à jour, appliquez le CR ClusterGroupUpgrade en exécutant la commande suivante :

    $ oc apply -f clustergroupupgrades-group-du.yaml

Vérification

  • Vérifiez l'état de la mise à niveau dans le cluster du concentrateur en exécutant la commande suivante :

    $ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'

    Exemple de sortie

    {
        "backup": {
            "clusters": [
                "cnfdb2",
                "cnfdb1"
        ],
        "status": {
            "cnfdb1": "Succeeded",
            "cnfdb2": "Failed" 1
        }
    },
    "computedMaxConcurrency": 1,
    "conditions": [
        {
            "lastTransitionTime": "2022-04-05T10:37:19Z",
            "message": "Backup failed for 1 cluster", 2
            "reason": "PartiallyDone", 3
            "status": "True", 4
            "type": "Succeeded"
        }
    ],
    "precaching": {
        "spec": {}
    },
    "status": {}

    1
    La sauvegarde a échoué pour un cluster.
    2
    Le message confirme que la sauvegarde a échoué pour un cluster.
    3
    La sauvegarde a été partiellement réussie.
    4
    Le processus de sauvegarde est terminé.

17.7.2. Récupération d'un cluster après l'échec d'une mise à niveau

Si la mise à niveau d'un cluster échoue, vous pouvez vous connecter manuellement au cluster et utiliser la sauvegarde pour remettre le cluster dans l'état où il se trouvait avant la mise à niveau. Il y a deux étapes :

Retour en arrière
Si la tentative de mise à niveau comprenait une modification du déploiement du système d'exploitation de la plate-forme, vous devez revenir à la version précédente avant d'exécuter le script de récupération.
Récupération
La récupération arrête les conteneurs et utilise les fichiers de la partition de sauvegarde pour relancer les conteneurs et restaurer les clusters.

Conditions préalables

  • Installez le gestionnaire de cycle de vie Topology Aware (TALM).
  • Provisionner un ou plusieurs clusters gérés.
  • Installez Red Hat Advanced Cluster Management (RHACM).
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.
  • Exécuter une mise à niveau configurée pour la sauvegarde.

Procédure

  1. Supprimez la ressource personnalisée (CR) ClusterGroupUpgrade créée précédemment en exécutant la commande suivante :

    $ oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
  2. Connectez-vous au cluster que vous souhaitez récupérer.
  3. Vérifiez l'état du déploiement du système d'exploitation de la plate-forme en exécutant la commande suivante :

    $ ostree admin status

    Exemples de résultats

    [root@lab-test-spoke2-node-0 core]# ostree admin status
    * rhcos c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9.0
        Version: 49.84.202202230006-0
        Pinned: yes 1
        origin refspec: c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9

    1
    Le déploiement actuel est verrouillé. Il n'est pas nécessaire de revenir sur le déploiement du système d'exploitation de la plate-forme.
    [root@lab-test-spoke2-node-0 core]# ostree admin status
    * rhcos f750ff26f2d5550930ccbe17af61af47daafc8018cd9944f2a3a6269af26b0fa.0
        Version: 410.84.202204050541-0
        origin refspec: f750ff26f2d5550930ccbe17af61af47daafc8018cd9944f2a3a6269af26b0fa
    rhcos ad8f159f9dc4ea7e773fd9604c9a16be0fe9b266ae800ac8470f63abc39b52ca.0 (rollback) 1
        Version: 410.84.202203290245-0
        Pinned: yes 2
        origin refspec: ad8f159f9dc4ea7e773fd9604c9a16be0fe9b266ae800ac8470f63abc39b52ca
    1
    Le déploiement du système d'exploitation de cette plate-forme est marqué pour un retour en arrière.
    2
    Le déploiement précédent est épinglé et peut être annulé.
  4. Pour déclencher un rollback du déploiement du système d'exploitation de la plate-forme, exécutez la commande suivante :

    $ rpm-ostree rollback -r
  5. La première phase de la récupération arrête les conteneurs et restaure les fichiers de la partition de sauvegarde dans les répertoires ciblés. Pour commencer la récupération, exécutez la commande suivante :

    $ /var/recovery/upgrade-recovery.sh
  6. Lorsque vous y êtes invité, redémarrez le cluster en exécutant la commande suivante :

    $ systemctl reboot
  7. Après le redémarrage, relancez la récupération en exécutant la commande suivante :

    $ /var/recovery/upgrade-recovery.sh  --resume
Note

Si l'utilitaire de récupération échoue, vous pouvez réessayer avec l'option --restart:

$ /var/recovery/upgrade-recovery.sh --restart

Vérification

  • Pour vérifier l'état de la récupération, exécutez la commande suivante :

    $ oc get clusterversion,nodes,clusteroperator

    Exemple de sortie

    NAME                                         VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
    clusterversion.config.openshift.io/version   4.9.23    True        False         86d     Cluster version is 4.9.23 1
    
    
    NAME                          STATUS   ROLES           AGE   VERSION
    node/lab-test-spoke1-node-0   Ready    master,worker   86d   v1.22.3+b93fd35 2
    
    NAME                                                                           VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    clusteroperator.config.openshift.io/authentication                             4.9.23    True        False         False      2d7h    3
    clusteroperator.config.openshift.io/baremetal                                  4.9.23    True        False         False      86d
    
    
    ..............

    1
    La version du cluster est disponible et contient la bonne version.
    2
    L'état du nœud est Ready.
    3
    La disponibilité de l'objet ClusterOperator est True.
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.

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 leBlog 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.

© 2024 Red Hat, Inc.