17.9. Dépannage du gestionnaire de cycle de vie Topology Aware
Le Topology Aware Lifecycle Manager (TALM) est un opérateur de OpenShift Container Platform qui remédie aux politiques RHACM. Lorsque des problèmes surviennent, utilisez la commande oc adm must-gather
pour recueillir des détails et des journaux et pour prendre des mesures de débogage.
Pour plus d'informations sur les sujets connexes, voir la documentation suivante :
- Matrice de prise en charge de Red Hat Advanced Cluster Management for Kubernetes 2.4
- Dépannage de Red Hat Advanced Cluster Management
- La section "Troubleshooting Operator issues" (dépannage des problèmes de l'opérateur)
17.9.1. Dépannage général
Vous pouvez déterminer la cause du problème en répondant aux questions suivantes :
La configuration que vous appliquez est-elle prise en charge ?
- Les versions du RHACM et de l'OpenShift Container Platform sont-elles compatibles ?
- Les versions du TALM et du RHACM sont-elles compatibles ?
Parmi les composants suivants, lequel est à l'origine du problème ?
Pour vous assurer que la configuration de ClusterGroupUpgrade
est fonctionnelle, vous pouvez procéder comme suit :
-
Créez le CR
ClusterGroupUpgrade
avec le champspec.enable
défini surfalse
. - Attendez que le statut soit mis à jour et répondez aux questions de dépannage.
-
Si tout se passe comme prévu, réglez le champ
spec.enable
surtrue
dans le CRClusterGroupUpgrade
.
Après avoir attribué la valeur true
au champ spec.enable
dans la CR ClusterUpgradeGroup
, la procédure de mise à jour commence et vous ne pouvez plus modifier les champs spec
de la CR.
17.9.2. Impossible de modifier le CR ClusterUpgradeGroup
- Enjeu
-
Vous ne pouvez pas modifier le CR
ClusterUpgradeGroup
après avoir activé la mise à jour. - Résolution
Relancez la procédure en procédant comme suit :
Supprimez l'ancien
ClusterGroupUpgrade
CR en exécutant la commande suivante :$ oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
Vérifier et résoudre les problèmes existants avec les clusters et les politiques gérés.
- Assurez-vous que tous les clusters sont gérés et disponibles.
-
Assurez-vous que toutes les politiques existent et que le champ
spec.remediationAction
est défini surinform
.
Créez un nouveau CR
ClusterGroupUpgrade
avec les configurations correctes.oc apply -f <ClusterGroupUpgradeCR_YAML>
17.9.3. Politiques gérées
Vérification des politiques gérées sur le système
- Enjeu
- Vous voulez vérifier si vous avez les bonnes stratégies gérées sur le système.
- Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -ojsonpath='{.spec.managedPolicies}'
Exemple de sortie
["group-du-sno-validator-du-validator-policy", "policy2-common-nto-sub-policy", "policy3-common-ptp-sub-policy"]
Vérification du mode de remédiationAction
- Enjeu
-
Vous voulez vérifier si le champ
remediationAction
est défini surinform
dans lespec
des politiques gérées. - Résolution
Exécutez la commande suivante :
$ oc get policies --all-namespaces
Exemple de sortie
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default policy1-common-cluster-version-policy inform NonCompliant 5d21h default policy2-common-nto-sub-policy inform Compliant 5d21h default policy3-common-ptp-sub-policy inform NonCompliant 5d21h default policy4-common-sriov-sub-policy inform NonCompliant 5d21h
Vérification de l'état de conformité de la politique
- Enjeu
- Vous souhaitez vérifier l'état de conformité des politiques.
- Résolution
Exécutez la commande suivante :
$ oc get policies --all-namespaces
Exemple de sortie
NAMESPACE NAME REMEDIATION ACTION COMPLIANCE STATE AGE default policy1-common-cluster-version-policy inform NonCompliant 5d21h default policy2-common-nto-sub-policy inform Compliant 5d21h default policy3-common-ptp-sub-policy inform NonCompliant 5d21h default policy4-common-sriov-sub-policy inform NonCompliant 5d21h
17.9.4. Clusters
Vérification de la présence de clusters gérés
- Enjeu
-
Vous voulez vérifier si les clusters dans le CR
ClusterGroupUpgrade
sont des clusters gérés. - Résolution
Exécutez la commande suivante :
$ oc get managedclusters
Exemple de sortie
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://api.hub.example.com:6443 True Unknown 13d spoke1 true https://api.spoke1.example.com:6443 True True 13d spoke3 true https://api.spoke3.example.com:6443 True True 27h
Vous pouvez également consulter les journaux du gestionnaire TALM :
Obtenez le nom du gestionnaire TALM en exécutant la commande suivante :
$ oc get pod -n openshift-operators
Exemple de sortie
NAME READY STATUS RESTARTS AGE cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp 2/2 Running 0 45m
Vérifiez les journaux du gestionnaire TALM en exécutant la commande suivante :
$ oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
Exemple de sortie
ERROR controller-runtime.manager.controller.clustergroupupgrade Reconciler error {"reconciler group": "ran.openshift.io", "reconciler kind": "ClusterGroupUpgrade", "name": "lab-upgrade", "namespace": "default", "error": "Cluster spoke5555 is not a ManagedCluster"} 1 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
- 1
- Le message d'erreur indique que le cluster n'est pas un cluster géré.
Vérification de la disponibilité des clusters gérés
- Enjeu
-
Vous voulez vérifier si les clusters gérés spécifiés dans le CR
ClusterGroupUpgrade
sont disponibles. - Résolution
Exécutez la commande suivante :
$ oc get managedclusters
Exemple de sortie
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://api.hub.testlab.com:6443 True Unknown 13d spoke1 true https://api.spoke1.testlab.com:6443 True True 13d 1 spoke3 true https://api.spoke3.testlab.com:6443 True True 27h 2
Vérification du clusterLabelSelector
- Enjeu
-
Vous voulez vérifier si le champ
clusterLabelSelector
spécifié dans le CRClusterGroupUpgrade
correspond à au moins un des clusters gérés. - Résolution
Exécutez la commande suivante :
oc get managedcluster --selector=upgrade=true 1
- 1
- L'étiquette des clusters que vous souhaitez mettre à jour est
upgrade:true
.
Exemple de sortie
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE spoke1 true https://api.spoke1.testlab.com:6443 True True 13d spoke3 true https://api.spoke3.testlab.com:6443 True True 27h
Vérification de la présence de grappes de canaris
- Enjeu
Vous voulez vérifier si les clusters canaris sont présents dans la liste des clusters.
Exemple
ClusterGroupUpgrade
CRspec: remediationStrategy: canaries: - spoke3 maxConcurrency: 2 timeout: 240 clusterLabelSelectors: - matchLabels: upgrade: true
- Résolution
Exécutez les commandes suivantes :
$ oc get cgu lab-upgrade -ojsonpath='{.spec.clusters}'
Exemple de sortie
["spoke1", "spoke3"]
Vérifiez si les clusters canaris sont présents dans la liste des clusters qui correspondent aux étiquettes
clusterLabelSelector
en exécutant la commande suivante :$ oc get managedcluster --selector=upgrade=true
Exemple de sortie
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE spoke1 true https://api.spoke1.testlab.com:6443 True True 13d spoke3 true https://api.spoke3.testlab.com:6443 True True 27h
Un groupe peut être présent sur le site spec.clusters
et correspondre à l'étiquette spec.clusterLabelSelector
.
Vérification de l'état de la mise en cache sur les clusters de rayons
Vérifiez l'état de la 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
17.9.5. Stratégie d'assainissement
Vérification de la présence de remediationStrategy dans le CR ClusterGroupUpgrade
- Enjeu
-
Vous voulez vérifier si le
remediationStrategy
est présent dans leClusterGroupUpgrade
CR. - Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy}'
Exemple de sortie
{"maxConcurrency":2, "timeout":240}
Vérification de la spécification de maxConcurrency dans le CR ClusterGroupUpgrade
- Enjeu
-
Vous voulez vérifier si le
maxConcurrency
est spécifié dans leClusterGroupUpgrade
CR. - Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -ojsonpath='{.spec.remediationStrategy.maxConcurrency}'
Exemple de sortie
2
17.9.6. Gestionnaire du cycle de vie tenant compte de la topologie
Vérification du message de condition et du statut dans le CR ClusterGroupUpgrade
- Enjeu
-
Vous voulez vérifier la valeur du champ
status.conditions
dans le CRClusterGroupUpgrade
. - Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -ojsonpath='{.status.conditions}'
Exemple de sortie
{"lastTransitionTime":"2022-02-17T22:25:28Z", "message":"Missing managed policies:[policyList]", "reason":"NotAllManagedPoliciesExist", "status":"False", "type":"Validated"}
Vérification des politiques copiées correspondantes
- Enjeu
-
Vous voulez vérifier si chaque politique de
status.managedPoliciesForUpgrade
a une politique correspondante dansstatus.copiedPolicies
. - Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -oyaml
Exemple de sortie
status: … copiedPolicies: - lab-upgrade-policy3-common-ptp-sub-policy managedPoliciesForUpgrade: - name: policy3-common-ptp-sub-policy namespace: default
Vérifier si status.remediationPlan a été calculé
- Enjeu
-
Vous voulez vérifier si
status.remediationPlan
est calculé. - Résolution
Exécutez la commande suivante :
$ oc get cgu lab-upgrade -ojsonpath='{.status.remediationPlan}'
Exemple de sortie
[["spoke2", "spoke3"]]
Erreurs dans le conteneur du gestionnaire TALM
- Enjeu
- Vous voulez vérifier les journaux du conteneur gestionnaire de TALM.
- Résolution
Exécutez la commande suivante :
$ oc logs -n openshift-operators \ cluster-group-upgrades-controller-manager-75bcc7484d-8k8xp -c manager
Exemple de sortie
ERROR controller-runtime.manager.controller.clustergroupupgrade Reconciler error {"reconciler group": "ran.openshift.io", "reconciler kind": "ClusterGroupUpgrade", "name": "lab-upgrade", "namespace": "default", "error": "Cluster spoke5555 is not a ManagedCluster"} 1 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
- 1
- Affiche l'erreur.
Les clusters ne sont pas conformes à certaines politiques après l'achèvement d'une CR ClusterGroupUpgrade
- Enjeu
L'état de conformité de la politique que TALM utilise pour décider si une remédiation est nécessaire n'a pas encore été complètement mis à jour pour tous les clusters. Cela peut s'expliquer par les raisons suivantes
- L'UGT a été lancée trop tôt après la création ou la mise à jour d'une politique.
-
La remédiation d'une politique affecte la conformité des politiques suivantes dans le CR
ClusterGroupUpgrade
.
- Résolution
-
Créez une nouvelle application
ClusterGroupUpdate
CR avec les mêmes spécifications.
Ressources supplémentaires
- Pour plus d'informations sur le dépannage, voir OpenShift Container Platform Troubleshooting Operator Issues.
- Pour plus d'informations sur l'utilisation de Topology Aware Lifecycle Manager dans le flux de travail ZTP, voir Mise à jour des politiques gérées avec Topology Aware Lifecycle Manager.
-
Pour plus d'informations sur le CRD
PolicyGenTemplate
, voir À propos du CRD PolicyGenTemplate