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 :
true
La spécification relative à la mise en cache préalable est valide et cohérente.
false
La 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 :
true
TALM 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.
false
La 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 :
NotStarted
Il 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 ressourceManagedClusterView
pour l'espace de noms de mise en cache préalable des rayons afin de vérifier sa suppression dans l'étatPrecachePreparing
.PreparingToStart
Le nettoyage des ressources restantes des précédentes mises à jour incomplètes est en cours.
Starting
Les conditions préalables de la tâche de mise en cache et la tâche sont créées.
Active
L'emploi est en état "actif".
Succeeded
Le travail de pré-cache a réussi.
PrecacheTimeout
La mise en cache de l'artefact est partiellement réalisée.
UnrecoverableError
Le 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
ClusterGroupUpgrade
avec le champpreCaching
défini surtrue
dans le fichierclustergroupupgrades-group-du.yaml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le champ
preCaching
est 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
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 si le CR
ClusterGroupUpgrade
existe dans le cluster du concentrateur en exécutant la commande suivante :oc get cgu -A
$ oc get cgu -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
NAMESPACE NAME AGE STATE DETAILS ztp-group-du-sno du-upgrade-4918 10s InProgress Precaching is required and not done
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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}'
$ 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 - 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-cache
$ oc get jobs,pods -n openshift-talo-pre-cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple 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 3m10s
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 3m10s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vérifiez l'état de
ClusterGroupUpgrade
CR 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 - 1
- Les tâches de pré-cache sont terminées.