17.8. Utilisation de la fonction de pré-cache de l'image du conteneur
Les clusters OpenShift à un seul nœud peuvent avoir une bande passante limitée pour accéder au registre des images de conteneurs, ce qui peut entraîner un dépassement de délai avant que les mises à jour ne soient terminées.
L'heure de la mise à jour n'est pas fixée par TALM. Vous pouvez appliquer le CR ClusterGroupUpgrade au début de la mise à jour par application manuelle ou par automatisation externe.
La mise en cache préalable de l'image du conteneur commence lorsque le champ preCaching est défini sur true dans le CR ClusterGroupUpgrade.
TALM utilise la condition PrecacheSpecValid pour signaler les informations d'état comme suit :
trueLa spécification relative à la mise en cache préalable est valide et cohérente.
falseLa spécification relative à la mise en cache préalable est incomplète.
TALM utilise la condition PrecachingSucceeded pour signaler les informations d'état comme suit :
trueTALM a terminé le processus de pré-mise en cache. Si le pré-caching échoue pour un cluster, la mise à jour échoue pour ce cluster mais se poursuit pour tous les autres clusters. Un message vous informe de l'échec de la mise en cache pour l'un des clusters.
falseLa mise en cache est toujours en cours pour un ou plusieurs clusters ou a échoué pour tous les clusters.
Une fois que le processus de mise en cache préalable a réussi, vous pouvez commencer à remédier aux politiques. Les actions de remédiation commencent lorsque le champ enable est défini sur true. En cas d'échec de la mise en cache préalable sur un cluster, la mise à niveau échoue pour ce cluster. Le processus de mise à niveau se poursuit pour tous les autres clusters dont le pré-cache a réussi.
Le processus de pré-cache peut se trouver dans les états suivants :
NotStartedIl s'agit de l'état initial auquel tous les clusters sont automatiquement assignés lors du premier passage de réconciliation du CR
ClusterGroupUpgrade. Dans cet état, le TALM supprime tout espace de noms de pré-mise en cache et les ressources de vue du hub des clusters de rayons qui restent des mises à jour incomplètes précédentes. Le TALM crée ensuite une nouvelle ressourceManagedClusterViewpour l'espace de noms de mise en cache préalable des rayons afin de vérifier sa suppression dans l'étatPrecachePreparing.PreparingToStartLe nettoyage des ressources restantes des précédentes mises à jour incomplètes est en cours.
StartingLes conditions préalables de la tâche de mise en cache et la tâche sont créées.
ActiveL'emploi est en état "actif".
SucceededLe travail de pré-cache a réussi.
PrecacheTimeoutLa mise en cache de l'artefact est partiellement réalisée.
UnrecoverableErrorLe travail se termine avec un code de sortie non nul.
17.8.1. Création d'un ClusterGroupUpgrade CR avec mise en cache préalable Copier lienLien copié sur presse-papiers!
Pour OpenShift à nœud unique, la fonction de pré-cache permet aux images de conteneurs requises d'être présentes sur le cluster de rayons avant que la mise à jour ne commence.
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.
Procédure
Enregistrez le contenu du CR
ClusterGroupUpgradeavec le champpreCachingdéfini surtruedans le fichierclustergroupupgrades-group-du.yaml:apiVersion: ran.openshift.io/v1alpha1 kind: ClusterGroupUpgrade metadata: name: du-upgrade-4918 namespace: ztp-group-du-sno spec: preCaching: true1 clusters: - cnfdb1 - cnfdb2 enable: false managedPolicies: - du-upgrade-platform-upgrade remediationStrategy: maxConcurrency: 2 timeout: 240- 1
- Le champ
preCachingest défini surtrue, ce qui permet à TALM d'extraire les images des conteneurs avant de lancer la mise à jour.
Lorsque vous voulez commencer la mise en cache, appliquez le CR
ClusterGroupUpgradeen exécutant la commande suivante :$ oc apply -f clustergroupupgrades-group-du.yaml
Vérification
Vérifiez si le CR
ClusterGroupUpgradeexiste dans le cluster du concentrateur en exécutant la commande suivante :$ oc get cgu -AExemple de sortie
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done1 - 1
- Le CR est créé.
Vérifiez l'état de la tâche de mise en cache en exécutant la commande suivante :
$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'Exemple de sortie
{ "conditions": [ { "lastTransitionTime": "2022-01-27T19:07:24Z", "message": "Precaching is required and not done", "reason": "InProgress", "status": "False", "type": "PrecachingSucceeded" }, { "lastTransitionTime": "2022-01-27T19:07:34Z", "message": "Pre-caching spec is valid and consistent", "reason": "PrecacheSpecIsWellFormed", "status": "True", "type": "PrecacheSpecValid" } ], "precaching": { "clusters": [ "cnfdb1"1 "cnfdb2" ], "spec": { "platformImage": "image.example.io"}, "status": { "cnfdb1": "Active" "cnfdb2": "Succeeded"} } }- 1
- Affiche la liste des clusters identifiés.
Vérifiez l'état de la tâche de mise en cache préalable en exécutant la commande suivante sur le cluster de rayons :
$ oc get jobs,pods -n openshift-talo-pre-cacheExemple de sortie
NAME COMPLETIONS DURATION AGE job.batch/pre-cache 0/1 3m10s 3m10s NAME READY STATUS RESTARTS AGE pod/pre-cache--1-9bmlr 1/1 Running 0 3m10sVérifiez l'état de
ClusterGroupUpgradeCR en exécutant la commande suivante :$ oc get cgu -n ztp-group-du-sno du-upgrade-4918 -o jsonpath='{.status}'Exemple de sortie
"conditions": [ { "lastTransitionTime": "2022-01-27T19:30:41Z", "message": "The ClusterGroupUpgrade CR has all clusters compliant with all the managed policies", "reason": "UpgradeCompleted", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2022-01-27T19:28:57Z", "message": "Precaching is completed", "reason": "PrecachingCompleted", "status": "True", "type": "PrecachingSucceeded"1 }- 1
- Les tâches de pré-cache sont terminées.