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.
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 Copier lienLien copié sur presse-papiers!
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).
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 :
Procédure
Enregistrez le contenu du CR
ClusterGroupUpgrade
avec les champsbackup
etenable
définis surtrue
dans le fichierclustergroupupgrades-group-du.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour lancer la mise à jour, appliquez le CR
ClusterGroupUpgrade
en exécutant la commande suivante :oc apply -f clustergroupupgrades-group-du.yaml
$ oc apply -f clustergroupupgrades-group-du.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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}'
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
17.7.2. Récupération d'un cluster après l'échec d'une mise à niveau Copier lienLien copié sur presse-papiers!
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
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
$ oc delete cgu/du-upgrade-4918 -n ztp-group-du-sno
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Connectez-vous au cluster que vous souhaitez récupérer.
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
$ ostree admin status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemples de résultats
ostree admin status
[root@lab-test-spoke2-node-0 core]# ostree admin status * rhcos c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9.0 Version: 49.84.202202230006-0 Pinned: yes
1 origin refspec: c038a8f08458bbed83a77ece033ad3c55597e3f64edad66ea12fda18cbdceaf9
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ rpm-ostree rollback -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ /var/recovery/upgrade-recovery.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque vous y êtes invité, redémarrez le cluster en exécutant la commande suivante :
systemctl reboot
$ systemctl reboot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Après le redémarrage, relancez la récupération en exécutant la commande suivante :
/var/recovery/upgrade-recovery.sh --resume
$ /var/recovery/upgrade-recovery.sh --resume
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Si l'utilitaire de récupération échoue, vous pouvez réessayer avec l'option --restart
:
/var/recovery/upgrade-recovery.sh --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
$ oc get clusterversion,nodes,clusteroperator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow