4.9. Dépannage des problèmes de l’opérateur


Lorsque vous rencontrez des problèmes d’opérateur, vérifiez l’état de l’abonnement de l’opérateur. Consultez la santé de la pod de l’opérateur à travers le cluster et rassemblez les journaux de l’opérateur pour le diagnostic.

4.9.1. Conditions d’abonnement à l’opérateur

Les abonnements peuvent signaler les types d’état suivants:

Expand
Tableau 4.2. Conditions d’abonnement
État de l’étatDescription

CatalogueSourcesUnsanté

Certaines ou toutes les sources de catalogue à utiliser en résolution sont malsaines.

InstallPlanMissing

Il manque un plan d’installation pour un abonnement.

InstallPlanPending

Le plan d’installation d’un abonnement est en attente d’installation.

InstallPlanFailed

Le plan d’installation d’un abonnement a échoué.

La RésolutionFailed

La résolution de dépendance pour un abonnement a échoué.

Note

Les opérateurs de clusters AWS sont gérés par l’opérateur de version CVO (Cluster Version Operator) et n’ont pas d’objet d’abonnement. Les opérateurs d’applications sont gérés par Operator Lifecycle Manager (OLM) et ils ont un objet d’abonnement.

En utilisant le CLI, vous pouvez voir l’état de l’abonnement à l’opérateur.

Conditions préalables

  • En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
  • L’OpenShift CLI (oc) a été installé.

Procédure

  1. Abonnements à l’opérateur de liste:

    $ oc get subs -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  2. Consultez la commande de description d’oc pour inspecter une ressource d’abonnement:

    $ oc describe sub <subscription_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  3. Dans la sortie de commande, trouvez la section Conditions pour l’état des types de condition d’abonnement Opérateur. Dans l’exemple suivant, le type de condition de CatalogSourcesUnsanté a un statut de faux parce que toutes les sources de catalogue disponibles sont saines:

    Exemple de sortie

    Name:         cluster-logging
    Namespace:    openshift-logging
    Labels:       operators.coreos.com/cluster-logging.openshift-logging=
    Annotations:  <none>
    API Version:  operators.coreos.com/v1alpha1
    Kind:         Subscription
    # ...
    Conditions:
       Last Transition Time:  2019-07-29T13:42:57Z
       Message:               all available catalogsources are healthy
       Reason:                AllCatalogSourcesHealthy
       Status:                False
       Type:                  CatalogSourcesUnhealthy
    # ...
    Copy to Clipboard Toggle word wrap

Note

Les opérateurs de clusters AWS sont gérés par l’opérateur de version CVO (Cluster Version Operator) et n’ont pas d’objet d’abonnement. Les opérateurs d’applications sont gérés par Operator Lifecycle Manager (OLM) et ils ont un objet d’abonnement.

Il est possible d’afficher l’état d’une source de catalogue de l’opérateur à l’aide du CLI.

Conditions préalables

  • En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
  • L’OpenShift CLI (oc) a été installé.

Procédure

  1. Énumérez les sources du catalogue dans un espace de noms. À titre d’exemple, vous pouvez vérifier l’espace de noms openshift-marketplace, qui est utilisé pour les sources de catalogue à l’échelle du cluster:

    $ oc get catalogsources -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                  DISPLAY               TYPE   PUBLISHER   AGE
    certified-operators   Certified Operators   grpc   Red Hat     55m
    community-operators   Community Operators   grpc   Red Hat     55m
    example-catalog       Example Catalog       grpc   Example Org 2m25s
    redhat-marketplace    Red Hat Marketplace   grpc   Red Hat     55m
    redhat-operators      Red Hat Operators     grpc   Red Hat     55m
    Copy to Clipboard Toggle word wrap

  2. La commande oc described permet d’obtenir plus de détails et d’état sur une source de catalogue:

    $ oc describe catalogsource example-catalog -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:         example-catalog
    Namespace:    openshift-marketplace
    Labels:       <none>
    Annotations:  operatorframework.io/managed-by: marketplace-operator
                  target.workload.openshift.io/management: {"effect": "PreferredDuringScheduling"}
    API Version:  operators.coreos.com/v1alpha1
    Kind:         CatalogSource
    # ...
    Status:
      Connection State:
        Address:              example-catalog.openshift-marketplace.svc:50051
        Last Connect:         2021-09-09T17:07:35Z
        Last Observed State:  TRANSIENT_FAILURE
      Registry Service:
        Created At:         2021-09-09T17:05:45Z
        Port:               50051
        Protocol:           grpc
        Service Name:       example-catalog
        Service Namespace:  openshift-marketplace
    # ...
    Copy to Clipboard Toggle word wrap

    Dans l’exemple précédent, le dernier état observé est TRANSIENT_FAILURE. Cet état indique qu’il y a un problème à établir une connexion pour la source du catalogue.

  3. Énumérez les pods dans l’espace de noms où votre source de catalogue a été créée:

    $ oc get pods -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    NAME                                    READY   STATUS             RESTARTS   AGE
    certified-operators-cv9nn               1/1     Running            0          36m
    community-operators-6v8lp               1/1     Running            0          36m
    marketplace-operator-86bfc75f9b-jkgbc   1/1     Running            0          42m
    example-catalog-bwt8z                   0/1     ImagePullBackOff   0          3m55s
    redhat-marketplace-57p8c                1/1     Running            0          36m
    redhat-operators-smxx8                  1/1     Running            0          36m
    Copy to Clipboard Toggle word wrap

    Lorsqu’une source de catalogue est créée dans un espace de noms, un pod pour la source du catalogue est créé dans cet espace de noms. Dans l’exemple précédent, l’état de la pod example-catalog-bwt8z est ImagePullBackOff. Ce statut indique qu’il y a un problème à tirer l’image de l’index de la source du catalogue.

  4. Consultez la commande de description d’oc pour inspecter un pod pour obtenir des informations plus détaillées:

    $ oc describe pod example-catalog-bwt8z -n openshift-marketplace
    Copy to Clipboard Toggle word wrap

    Exemple de sortie

    Name:         example-catalog-bwt8z
    Namespace:    openshift-marketplace
    Priority:     0
    Node:         ci-ln-jyryyg2-f76d1-ggdbq-worker-b-vsxjd/10.0.128.2
    ...
    Events:
      Type     Reason          Age                From               Message
      ----     ------          ----               ----               -------
      Normal   Scheduled       48s                default-scheduler  Successfully assigned openshift-marketplace/example-catalog-bwt8z to ci-ln-jyryyf2-f76d1-fgdbq-worker-b-vsxjd
      Normal   AddedInterface  47s                multus             Add eth0 [10.131.0.40/23] from openshift-sdn
      Normal   BackOff         20s (x2 over 46s)  kubelet            Back-off pulling image "quay.io/example-org/example-catalog:v1"
      Warning  Failed          20s (x2 over 46s)  kubelet            Error: ImagePullBackOff
      Normal   Pulling         8s (x3 over 47s)   kubelet            Pulling image "quay.io/example-org/example-catalog:v1"
      Warning  Failed          8s (x3 over 47s)   kubelet            Failed to pull image "quay.io/example-org/example-catalog:v1": rpc error: code = Unknown desc = reading manifest v1 in quay.io/example-org/example-catalog: unauthorized: access to the requested resource is not authorized
      Warning  Failed          8s (x3 over 47s)   kubelet            Error: ErrImagePull
    Copy to Clipboard Toggle word wrap

    Dans l’exemple précédent, les messages d’erreur indiquent que l’image d’index de la source du catalogue ne parvient pas à tirer avec succès en raison d’un problème d’autorisation. À titre d’exemple, l’image d’index peut être stockée dans un registre qui nécessite des identifiants de connexion.

4.9.4. État de la pod de l’opérateur d’interrogation

Il est possible de répertorier les pods d’opérateur dans un cluster et leur statut. Il est également possible de recueillir un résumé détaillé de la pod de l’opérateur.

Conditions préalables

  • En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
  • Le service API est toujours fonctionnel.
  • L’OpenShift CLI (oc) a été installé.

Procédure

  1. Liste Opérateurs fonctionnant dans le cluster. La sortie comprend la version de l’opérateur, la disponibilité et les informations de disponibilité:

    $ oc get clusteroperators
    Copy to Clipboard Toggle word wrap
  2. Liste Les pods d’opérateur s’exécutant dans l’espace de noms de l’opérateur, plus le statut du pod, le redémarrage et l’âge:

    $ oc get pod -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  3. Afficher un résumé détaillé de la pod de l’opérateur:

    $ oc describe pod <operator_pod_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap

4.9.5. Collecte des journaux de l’opérateur

Lorsque vous rencontrez des problèmes d’opérateur, vous pouvez recueillir des informations de diagnostic détaillées à partir des journaux de pod de l’opérateur.

Conditions préalables

  • En tant qu’utilisateur, vous avez accès au cluster avec le rôle d’administrateur dédié.
  • Le service API est toujours fonctionnel.
  • L’OpenShift CLI (oc) a été installé.
  • Les noms de domaine entièrement qualifiés des machines de plan de contrôle ou de contrôle sont disponibles.

Procédure

  1. Énumérez les pods d’opérateur qui s’exécutent dans l’espace de noms de l’opérateur, ainsi que le statut, le redémarrage et l’âge du pod:

    $ oc get pods -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  2. Journaux d’examen pour une pod d’opérateur:

    $ oc logs pod/<pod_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap

    Dans le cas où une pod d’opérateur a plusieurs conteneurs, la commande précédente produira une erreur qui inclut le nom de chaque conteneur. Journal de requête à partir d’un conteneur individuel:

    $ oc logs pod/<operator_pod_name> -c <container_name> -n <operator_namespace>
    Copy to Clipboard Toggle word wrap
  3. Lorsque l’API n’est pas fonctionnelle, examinez la pod et le conteneur de l’opérateur sur chaque nœud de plan de contrôle en utilisant SSH à la place. &lt;master-node&gt;.&lt;cluster_name&gt;.&lt;base_domain&gt; par des valeurs appropriées.

    1. Liste des gousses sur chaque nœud de plan de contrôle:

      $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl pods
      Copy to Clipboard Toggle word wrap
    2. Dans le cas de n’importe quelle gousse d’opérateur qui ne montre pas d’état prêt, inspectez en détail l’état de la gousse. &lt;operator_pod_id&gt; par l’ID du pod de l’opérateur listé dans la sortie de la commande précédente:

      $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspectp <operator_pod_id>
      Copy to Clipboard Toggle word wrap
    3. Liste des conteneurs liés à une pod d’opérateur:

      $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl ps --pod=<operator_pod_id>
      Copy to Clipboard Toggle word wrap
    4. Dans le cas d’un conteneur de l’opérateur qui ne montre pas d’état prêt, inspectez en détail l’état du conteneur. &lt;container_id&gt; par un identifiant de conteneur listé dans la sortie de la commande précédente:

      $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspect <container_id>
      Copy to Clipboard Toggle word wrap
    5. Examinez les journaux pour tous les conteneurs de l’opérateur qui ne montrent pas d’état prêt. &lt;container_id&gt; par un identifiant de conteneur listé dans la sortie de la commande précédente:

      $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
      Copy to Clipboard Toggle word wrap
      Note

      Le service OpenShift Red Hat sur les nœuds de cluster AWS 4 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) est immuable et compte sur les opérateurs pour appliquer des modifications de cluster. L’accès aux nœuds de cluster en utilisant SSH n’est pas recommandé. Avant d’essayer de recueillir des données diagnostiques sur SSH, vérifiez si les données recueillies en exécutant oc adm doivent recueillir et si d’autres commandes oc sont suffisantes à la place. Cependant, si le service OpenShift Red Hat sur AWS API n’est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations oc seront affectées. Dans de telles situations, il est possible d’accéder à des nœuds en utilisant ssh core@&lt;node&gt;.&lt;cluster_name&gt;.&lt;base_domain&gt;.

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat