Rechercher

17.9. Dépannage du gestionnaire de cycle de vie Topology Aware

download PDF

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 :

17.9.1. Dépannage général

Vous pouvez déterminer la cause du problème en répondant aux questions suivantes :

Pour vous assurer que la configuration de ClusterGroupUpgrade est fonctionnelle, vous pouvez procéder comme suit :

  1. Créez le CR ClusterGroupUpgrade avec le champ spec.enable défini sur false.
  2. Attendez que le statut soit mis à jour et répondez aux questions de dépannage.
  3. Si tout se passe comme prévu, réglez le champ spec.enable sur true dans le CR ClusterGroupUpgrade.
Avertissement

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 :

  1. Supprimez l'ancien ClusterGroupUpgrade CR en exécutant la commande suivante :

    $ oc delete cgu -n <ClusterGroupUpgradeCR_namespace> <ClusterGroupUpgradeCR_name>
  2. Vérifier et résoudre les problèmes existants avec les clusters et les politiques gérés.

    1. Assurez-vous que tous les clusters sont gérés et disponibles.
    2. Assurez-vous que toutes les politiques existent et que le champ spec.remediationAction est défini sur inform.
  3. 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 sur inform dans le spec 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

  1. Vous pouvez également consulter les journaux du gestionnaire TALM :

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

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

1 2
La valeur du champ AVAILABLE est True pour les clusters gérés.
Vérification du clusterLabelSelector
Enjeu
Vous voulez vérifier si le champ clusterLabelSelector spécifié dans le CR ClusterGroupUpgrade 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 CR

spec:
    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"]

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

Note

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
  1. 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 le ClusterGroupUpgrade 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 le ClusterGroupUpgrade 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 CR ClusterGroupUpgrade.
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 dans status.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

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.