Soutien
Obtenir la prise en charge d'OpenShift Container Platform
Résumé
Chapitre 1. Vue d'ensemble du soutien
Red Hat propose aux administrateurs de clusters des outils permettant de collecter des données pour votre cluster, de le surveiller et de le dépanner.
1.1. Obtenir de l'aide
Obtenir de l'aide: Visitez le portail client de Red Hat pour consulter les articles de la base de connaissances, soumettre un cas d'assistance et consulter la documentation et les ressources supplémentaires sur les produits.
1.2. Questions relatives à la télésurveillance médicale
Problèmes de surveillance de la santé à distance: OpenShift Container Platform collecte des données de télémétrie et de configuration sur votre cluster et les rapporte à Red Hat en utilisant le Telemeter Client et l'Insights Operator. Red Hat utilise ces données pour comprendre et résoudre les problèmes sur connected cluster. Comme pour les clusters connectés, vous pouvez utiliser la surveillance de la santé à distance dans un réseau restreint. OpenShift Container Platform collecte des données et surveille la santé à l'aide des éléments suivants :
Telemetry: Le client de télémétrie rassemble et télécharge les valeurs des métriques vers Red Hat toutes les quatre minutes et trente secondes. Red Hat utilise ces données pour :
- Surveiller les grappes d'entreprises.
- Déployer les mises à jour d'OpenShift Container Platform.
- Améliorer l'expérience de mise à niveau.
Insight Operator: Par défaut, OpenShift Container Platform installe et active l'Insight Operator, qui signale toutes les deux heures l'état de la configuration et des défaillances des composants. L'Insight Operator aide à :
- Identifier de manière proactive les problèmes potentiels liés aux grappes d'entreprises.
- Fournir une solution et une action préventive dans Red Hat OpenShift Cluster Manager.
Vous pouvez examiner les informations de télémétrie.
Si vous avez activé les rapports de santé à distance, utilisez Insights pour identifier les problèmes. Vous pouvez, si vous le souhaitez, désactiver les rapports de santé à distance.
1.3. Recueillir des données sur votre cluster
Rassemblez des données sur votre cluster: Red Hat recommande de rassembler vos informations de débogage lors de l'ouverture d'un dossier d'assistance. Cela permet à l'équipe d'assistance de Red Hat d'effectuer une analyse des causes profondes. Un administrateur de cluster peut utiliser les éléments suivants pour collecter des données sur votre cluster :
-
The must-gather tool: Utilisez l'outil
must-gather
pour collecter des informations sur votre cluster et pour déboguer les problèmes. -
sosreport: Utilisez l'outil
sosreport
pour collecter des détails de configuration, des informations sur le système et des données de diagnostic à des fins de débogage. - Cluster ID: Obtenez l'identifiant unique de votre cluster lorsque vous fournissez des informations à l'assistance Red Hat.
-
Bootstrap node journal logs: Rassembler
bootkube.service
journald
les journaux des unités et des conteneurs du nœud d'amorçage pour résoudre les problèmes liés à l'amorçage. -
Cluster node journal logs: Rassembler les journaux de l'unité
journald
et les journaux de/var/log
sur les différents nœuds du cluster afin de résoudre les problèmes liés aux nœuds. - A network trace: Fournir un tracé de paquets réseau à partir d'un nœud de cluster OpenShift Container Platform spécifique ou d'un conteneur à l'assistance Red Hat pour aider à dépanner les problèmes liés au réseau.
-
Diagnostic data: Utilisez la commande
redhat-support-tool
pour recueillir ( ?) des données de diagnostic sur votre cluster.
1.4. Résolution des problèmes
Un administrateur de cluster peut surveiller et dépanner les problèmes suivants liés aux composants d'OpenShift Container Platform :
Problèmes d'installation: L'installation d'OpenShift Container Platform se déroule en plusieurs étapes. Vous pouvez effectuer les opérations suivantes :
- Contrôler les étapes de l'installation.
- Déterminer à quel stade les problèmes d'installation surviennent.
- Examiner les problèmes liés à l'installation multiple.
- Rassembler les journaux d'une installation qui a échoué.
Problèmes liés aux nœuds : Un administrateur de cluster peut vérifier et dépanner les problèmes liés aux nœuds en examinant l'état, l'utilisation des ressources et la configuration d'un nœud. Vous pouvez interroger les éléments suivants :
- Statut du Kubelet sur un nœud.
- Journaux des nœuds de cluster.
Problèmes liés à Crio: Un administrateur de cluster peut vérifier l'état du moteur d'exécution des conteneurs CRI-O sur chaque nœud du cluster. Si vous rencontrez des problèmes d'exécution de conteneurs, procédez comme suit :
- Rassembler les journaux des unités du CRI-O.
- Nettoyage de l'entrepôt CRI-O.
Problèmes liés au système d'exploitation: OpenShift Container Platform fonctionne sous Red Hat Enterprise Linux CoreOS. Si vous rencontrez des problèmes liés au système d'exploitation, vous pouvez étudier les procédures de crash du noyau. Assurez-vous de ce qui suit :
- Activer kdump.
- Testez la configuration de kdump.
- Analyser un core dump.
Problèmes de réseau: Pour résoudre les problèmes liés à l'Open vSwitch, un administrateur de cluster peut effectuer les opérations suivantes :
- Configurez temporairement le niveau de log d'Open vSwitch.
- Configurer le niveau de log d'Open vSwitch de manière permanente.
- Afficher les journaux d'Open vSwitch.
Problèmes liés à l'opérateur: Un administrateur de cluster peut procéder comme suit pour résoudre les problèmes de l'opérateur :
- Vérifier l'état de l'abonnement de l'opérateur.
- Vérifier l'état de santé de la capsule de l'opérateur.
- Rassembler les registres de l'opérateur.
Problèmes liés aux modules : Un administrateur de cluster peut résoudre les problèmes liés aux pods en examinant l'état d'un pod et en effectuant les opérations suivantes :
- Examiner les journaux des cosses et des conteneurs.
- Démarrer les pods de débogage avec un accès root.
Problèmes source-image: Un administrateur de cluster peut observer les étapes du processus S2I pour déterminer à quel moment du processus S2I une défaillance s'est produite. Rassemblez les éléments suivants pour résoudre les problèmes Source-to-Image (S2I) :
- Données de diagnostic source-image.
- Données de diagnostic de l'application permettant d'enquêter sur les défaillances de l'application.
Problèmes de stockage: Une erreur de stockage multi-attaches se produit lorsque le montage d'un volume sur un nouveau nœud n'est pas possible parce que le nœud défaillant ne peut pas démonter le volume attaché. Un administrateur de cluster peut procéder comme suit pour résoudre les problèmes de stockage multi-attaches :
- Permettre des pièces jointes multiples en utilisant des volumes RWX.
- Récupérer ou supprimer le nœud défaillant lors de l'utilisation d'un volume RWO.
Problèmes de surveillance: Un administrateur de cluster peut suivre les procédures de la page de dépannage pour la surveillance. Si les métriques de vos projets définis par l'utilisateur ne sont pas disponibles ou si Prometheus consomme beaucoup d'espace disque, vérifiez les points suivants :
- Cherchez à savoir pourquoi les mesures définies par l'utilisateur ne sont pas disponibles.
- Déterminer pourquoi Prometheus consomme beaucoup d'espace disque.
Problèmes de journalisation: Un administrateur de cluster peut suivre les procédures de la page de dépannage pour les problèmes de journalisation d'OpenShift. Vérifiez les points suivants pour résoudre les problèmes de journalisation :
- Problèmes liés à OpenShift CLI (oc) : Examinez les problèmes liés à OpenShift CLI (oc) en augmentant le niveau de journalisation.
Chapitre 2. Gestion des ressources de la grappe
Vous pouvez appliquer des options de configuration globales dans OpenShift Container Platform. Les opérateurs appliquent ces paramètres de configuration à l'ensemble du cluster.
2.1. Interagir avec les ressources de votre cluster
Vous pouvez interagir avec les ressources du cluster en utilisant l'outil OpenShift CLI (oc
) dans OpenShift Container Platform. Les ressources de cluster que vous voyez après avoir exécuté la commande oc api-resources
peuvent être modifiées.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez accès à la console web ou vous avez installé l'outil CLI
oc
.
Procédure
Pour voir quels opérateurs de configuration ont été appliqués, exécutez la commande suivante :
$ oc api-resources -o name | grep config.openshift.io
Pour voir quelles ressources de cluster vous pouvez configurer, exécutez la commande suivante :
oc explain <nom_de_la_ressource>.config.openshift.io
Pour voir la configuration des objets de définition des ressources personnalisées (CRD) dans le cluster, exécutez la commande suivante :
oc get <resource_name>.config -o yaml
Pour modifier la configuration des ressources de la grappe, exécutez la commande suivante :
oc edit <resource_name>.config -o yaml
Chapitre 3. Obtenir de l'aide
3.1. Obtenir de l'aide
Si vous rencontrez des difficultés avec une procédure décrite dans cette documentation, ou avec OpenShift Container Platform en général, visitez le portail client de Red Hat. À partir du portail client, vous pouvez :
- Recherchez ou parcourez la base de connaissances de Red Hat qui contient des articles et des solutions relatifs aux produits Red Hat.
- Soumettre un cas d'assistance à Red Hat Support.
- Accéder à d'autres documents sur les produits.
Pour identifier les problèmes liés à votre cluster, vous pouvez utiliser Insights dans OpenShift Cluster Manager Hybrid Cloud Console. Insights fournit des détails sur les problèmes et, le cas échéant, des informations sur la manière de les résoudre.
Si vous avez une suggestion pour améliorer cette documentation ou si vous avez trouvé une erreur, soumettez un problème Jira pour le composant de documentation le plus pertinent. Veuillez fournir des détails spécifiques, tels que le nom de la section et la version d'OpenShift Container Platform.
3.2. À propos de la base de connaissances de Red Hat
La base de connaissances de Red Hat fournit un contenu riche destiné à vous aider à tirer le meilleur parti des produits et des technologies de Red Hat. La base de connaissances de Red Hat comprend des articles, de la documentation sur les produits et des vidéos décrivant les meilleures pratiques en matière d'installation, de configuration et d'utilisation des produits Red Hat. En outre, vous pouvez rechercher des solutions à des problèmes connus, chacune d'entre elles fournissant des descriptions concises de la cause première et des mesures correctives.
3.3. Recherche dans la base de connaissances de Red Hat
En cas de problème lié à OpenShift Container Platform, vous pouvez effectuer une recherche initiale pour déterminer si une solution existe déjà dans la base de connaissances de Red Hat.
Conditions préalables
- Vous disposez d'un compte Red Hat Customer Portal.
Procédure
- Connectez-vous au portail client de Red Hat.
Dans le champ de recherche principal du portail client de Red Hat, saisissez des mots-clés et des chaînes de caractères relatifs au problème, y compris :
- Composants de la plateforme OpenShift Container (tels que etcd)
- Procédure connexe (telle que installation)
- Avertissements, messages d'erreur et autres résultats liés à des défaillances explicites
- Cliquez sur Search.
- Sélectionnez le filtre de produit OpenShift Container Platform.
- Sélectionnez le filtre de type de contenu Knowledgebase.
3.4. Soumettre un dossier d'assistance
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous disposez d'un compte Red Hat Customer Portal.
- Vous avez un abonnement standard ou premium Red Hat.
Procédure
- Connectez-vous au portail client de Red Hat et sélectionnez SUPPORT CASES → Open a case.
- Sélectionnez la catégorie appropriée pour votre problème (telle que Defect / Bug), le produit (OpenShift Container Platform) et la version du produit (4.12, si elle n'est pas déjà remplie automatiquement).
- Examinez la liste des solutions suggérées dans la base de connaissances de Red Hat afin de trouver une correspondance potentielle avec le problème signalé. Si les articles suggérés ne répondent pas au problème, cliquez sur Continue.
- Saisissez un résumé concis mais descriptif du problème et des détails supplémentaires sur les symptômes ressentis, ainsi que vos attentes.
- Examinez la liste mise à jour des solutions suggérées dans la base de connaissances de Red Hat afin de trouver une correspondance potentielle avec le problème signalé. La liste est affinée au fur et à mesure que vous fournissez des informations supplémentaires au cours du processus de création du cas. Si les articles suggérés ne répondent pas au problème, cliquez sur Continue.
- S'assurer que les informations sur le compte présentées sont conformes aux attentes et, si ce n'est pas le cas, les modifier en conséquence.
Vérifiez que l'identifiant de cluster OpenShift Container Platform rempli automatiquement est correct. Si ce n'est pas le cas, obtenez manuellement votre ID de cluster.
Pour obtenir manuellement votre ID de cluster à l'aide de la console web d'OpenShift Container Platform :
- Naviguez vers Home → Dashboards → Overview.
- Trouvez la valeur dans le champ Cluster ID de la section Details.
Il est également possible d'ouvrir un nouveau dossier de support via la console web d'OpenShift Container Platform et de faire en sorte que l'identifiant de votre cluster soit rempli automatiquement.
- Dans la barre d'outils, naviguez vers (?) Help → Open Support Case.
- La valeur Cluster ID est remplie automatiquement.
Pour obtenir l'ID de votre cluster à l'aide de l'OpenShift CLI (
oc
), exécutez la commande suivante :$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
Répondez aux questions suivantes lorsque vous y êtes invité, puis cliquez sur Continue:
- Où expérimentez-vous ce comportement ? Dans quel environnement ?
- Quand le comportement se produit-il ? A quelle fréquence ? De manière répétée ? A certains moments ?
- Quelles informations pouvez-vous fournir sur les délais et l'impact commercial ?
-
Téléchargez les fichiers de données de diagnostic pertinents et cliquez sur Continue. Il est recommandé d'inclure les données recueillies à l'aide de la commande
oc adm must-gather
comme point de départ, ainsi que toutes les données spécifiques au problème qui ne sont pas recueillies par cette commande. - Saisissez les informations relatives à la gestion du dossier et cliquez sur Continue.
- Prévisualisez les détails du cas et cliquez sur Submit.
3.5. Ressources supplémentaires
- Pour plus d'informations sur l'identification des problèmes liés à votre cluster, voir Utilisation de Insights pour identifier les problèmes liés à votre cluster.
Chapitre 4. Surveillance de la santé à distance avec des grappes connectées
4.1. À propos de la télésurveillance médicale
OpenShift Container Platform collecte des données de télémétrie et de configuration sur votre cluster et les rapporte à Red Hat en utilisant le Telemeter Client et l'Insights Operator. Les données fournies à Red Hat permettent de bénéficier des avantages décrits dans ce document.
Un cluster qui rapporte des données à Red Hat via Telemetry et Insights Operator est considéré comme connected cluster.
Telemetry est le terme utilisé par Red Hat pour décrire les informations envoyées à Red Hat par le client Telemeter d'OpenShift Container Platform. Des attributs légers sont envoyés par les clusters connectés à Red Hat pour permettre l'automatisation de la gestion des abonnements, surveiller la santé des clusters, aider au support et améliorer l'expérience client.
Le site Insights Operator rassemble les données de configuration d'OpenShift Container Platform et les envoie à Red Hat. Les données sont utilisées pour produire des informations sur les problèmes potentiels auxquels un cluster peut être exposé. Ces informations sont communiquées aux administrateurs de clusters sur OpenShift Cluster Manager Hybrid Cloud Console.
Le présent document fournit de plus amples informations sur ces deux processus.
Avantages pour l'opérateur de télémétrie et d'analyse
La télémétrie et l'opérateur Insights offrent les avantages suivants aux utilisateurs finaux :
- Enhanced identification and resolution of issues. Les événements qui peuvent sembler normaux pour un utilisateur final peuvent être observés par Red Hat d'un point de vue plus large à travers une flotte de clusters. Certains problèmes peuvent être identifiés plus rapidement de ce point de vue et résolus sans qu'un utilisateur final n'ait besoin d'ouvrir un dossier d'assistance ou de déposer une question Jira.
-
Advanced release management. OpenShift Container Platform propose les canaux de diffusion
candidate
,fast
, etstable
, qui vous permettent de choisir une stratégie de mise à jour. La graduation d'une version defast
àstable
dépend du taux de réussite des mises à jour et des événements observés pendant les mises à niveau. Grâce aux informations fournies par les clusters connectés, Red Hat peut améliorer la qualité des versions des canauxstable
et réagir plus rapidement aux problèmes trouvés dans les canauxfast
. - Targeted prioritization of new features and functionality. Les données collectées permettent de savoir quelles zones d'OpenShift Container Platform sont les plus utilisées. Grâce à ces informations, Red Hat peut se concentrer sur le développement des nouvelles caractéristiques et fonctionnalités qui ont le plus d'impact pour nos clients.
- A streamlined support experience. Vous pouvez fournir un ID de cluster pour un cluster connecté lorsque vous créez un ticket d'assistance sur le portail client de Red Hat. Cela permet à Red Hat de fournir une expérience d'assistance rationalisée qui est spécifique à votre cluster, en utilisant les informations connectées. Ce document fournit plus d'informations sur cette expérience d'assistance améliorée.
- Predictive analytics. Les informations affichées pour votre cluster sur OpenShift Cluster Manager Hybrid Cloud Console sont activées par les informations collectées à partir des clusters connectés. Red Hat investit dans l'application de l'apprentissage profond, de l'apprentissage automatique et de l'automatisation de l'intelligence artificielle pour aider à identifier les problèmes auxquels les clusters OpenShift Container Platform sont exposés.
4.1.1. À propos de la télémétrie
Telemetry envoie à Red Hat un sous-ensemble soigneusement choisi de métriques de surveillance du cluster. Le client Telemeter récupère les valeurs des métriques toutes les quatre minutes et trente secondes et télécharge les données vers Red Hat. Ces mesures sont décrites dans ce document.
Ce flux de données est utilisé par Red Hat pour surveiller les clusters en temps réel et pour réagir si nécessaire aux problèmes qui ont un impact sur nos clients. Il permet également à Red Hat de déployer les mises à niveau d'OpenShift Container Platform auprès des clients afin de minimiser l'impact sur le service et d'améliorer continuellement l'expérience de mise à niveau.
Ces informations de débogage sont disponibles pour les équipes d'assistance et d'ingénierie de Red Hat avec les mêmes restrictions que l'accès aux données signalées par les cas d'assistance. Toutes les informations sur les clusters connectés sont utilisées par Red Hat pour améliorer OpenShift Container Platform et rendre son utilisation plus intuitive.
Ressources supplémentaires
- Voir la documentation de mise à jour d'OpenShift Container Platform pour plus d'informations sur la mise à jour ou la mise à niveau d'un cluster.
4.1.1.1. Informations collectées par la télémétrie
Les informations suivantes sont collectées par Telemetry :
4.1.1.1.1. Informations sur le système
- Informations sur la version, y compris la version du cluster OpenShift Container Platform et les détails de la mise à jour installée qui sont utilisés pour déterminer la disponibilité de la version de la mise à jour
- Informations sur les mises à jour, y compris le nombre de mises à jour disponibles par cluster, le canal et le référentiel d'images utilisés pour une mise à jour, les informations sur la progression de la mise à jour et le nombre d'erreurs survenues lors d'une mise à jour
- L'identifiant aléatoire unique qui est généré lors d'une installation
- Détails de configuration qui aident le support Red Hat à fournir une assistance bénéfique aux clients, y compris la configuration des nœuds au niveau de l'infrastructure cloud, les noms d'hôtes, les adresses IP, les noms de pods Kubernetes, les espaces de noms et les services
- Les composants du framework OpenShift Container Platform installés dans un cluster, ainsi que leur état et leur statut
- Événements pour tous les espaces de noms répertoriés comme "objets apparentés" pour un opérateur dégradé
- Informations sur les logiciels dégradés
- Informations sur la validité des certificats
- Le nom de la plateforme du fournisseur sur laquelle OpenShift Container Platform est déployée et l'emplacement du centre de données
4.1.1.1.2. Information sur la taille
- Informations sur le dimensionnement des grappes, des types de machines et des machines, y compris le nombre de cœurs de CPU et la quantité de RAM utilisée pour chacun d'entre eux
- Le nombre de membres etcd et le nombre d'objets stockés dans le cluster etcd
- Nombre d'applications construites par type de stratégie de construction
4.1.1.1.3. Informations sur l'utilisation
- Informations sur l'utilisation des composants, des fonctionnalités et des extensions
- Détails d'utilisation des aperçus technologiques et des configurations non prises en charge
La télémétrie ne collecte pas d'informations d'identification telles que les noms d'utilisateur ou les mots de passe. Le Chapeau Rouge n'a pas l'intention de collecter des informations personnelles. Si Red Hat découvre que des informations personnelles ont été reçues par inadvertance, Red Hat supprimera ces informations. Dans la mesure où les données de télémétrie constituent des données personnelles, veuillez vous référer à la Déclaration de confidentialité de Red Hat pour plus d'informations sur les pratiques de confidentialité de Red Hat.
Ressources supplémentaires
- Voir Showing data collected by Telemetry pour plus de détails sur la façon de lister les attributs que Telemetry collecte à partir de Prometheus dans OpenShift Container Platform.
- Voir le code source de cluster-monitoring-operator en amont pour une liste des attributs que Telemetry recueille de Prometheus.
- La télémétrie est installée et activée par défaut. Si vous devez désactiver les rapports de santé à distance, consultez la section Désactiver les rapports de santé à distance.
4.1.2. À propos de l'opérateur Insights
L'opérateur Insights recueille périodiquement l'état de la configuration et des défaillances des composants et, par défaut, rapporte ces données toutes les deux heures à Red Hat. Ces informations permettent à Red Hat d'évaluer la configuration et les données de défaillance plus profondes que celles rapportées par la télémétrie.
Les utilisateurs d'OpenShift Container Platform peuvent afficher le rapport de chaque cluster dans le service Insights Advisor sur Red Hat Hybrid Cloud Console. Si des problèmes ont été identifiés, Insights fournit des détails supplémentaires et, le cas échéant, des étapes pour résoudre un problème.
L'opérateur Insights ne collecte pas d'informations d'identification, telles que les noms d'utilisateur, les mots de passe ou les certificats. Voir Red Hat Insights Data & Application Security pour plus d'informations sur la collecte et les contrôles des données de Red Hat Insights.
Red Hat utilise toutes les informations de cluster connectées pour :
- Identifier les problèmes potentiels des clusters et fournir une solution et des actions préventives dans le service Insights Advisor sur Red Hat Hybrid Cloud Console
- Améliorer OpenShift Container Platform en fournissant des informations agrégées et critiques aux équipes produit et support
- Rendre OpenShift Container Platform plus intuitive
Ressources supplémentaires
- L'opérateur Insights est installé et activé par défaut. Si vous devez désactiver les rapports de santé à distance, voir Désactiver les rapports de santé à distance.
4.1.2.1. Informations collectées par l'opérateur Insights
Les informations suivantes sont collectées par l'opérateur Insights :
- Informations générales sur votre cluster et ses composants pour identifier les problèmes spécifiques à votre version et à votre environnement OpenShift Container Platform
- Les fichiers de configuration, tels que la configuration du registre d'images, de votre cluster afin de déterminer les paramètres incorrects et les problèmes spécifiques aux paramètres que vous avez définis
- Erreurs survenant dans les composants de la grappe
- Informations sur l'état d'avancement des mises à jour en cours et sur l'état des mises à niveau des composants
- Détails de la plateforme sur laquelle OpenShift Container Platform est déployée, comme Amazon Web Services, et la région dans laquelle le cluster est situé
- Les informations relatives à la charge de travail du cluster sont transformées en valeurs SHA (Secure Hash Algorithm) discrètes, ce qui permet à Red Hat d'évaluer les charges de travail en termes de sécurité et de vulnérabilités de version sans divulguer de détails sensibles
-
Si un opérateur signale un problème, des informations sont collectées sur les pods de la plate-forme OpenShift Container dans les projets
openshift-*
etkube-*
. Cela inclut l'état, la ressource, le contexte de sécurité, les informations sur le volume, et plus encore.
Ressources supplémentaires
- Voir Afficher les données collectées par l'Opérateur Insights pour plus de détails sur la manière d'examiner les données collectées par l'Opérateur Insights.
- Le code source d'Insights Operator est disponible pour révision et contribution. Voir le projet en amont Insights Operator pour une liste des éléments collectés par Insights Operator.
4.1.3. Comprendre le flux de données des opérateurs Telemetry et Insights
Le client Telemeter collecte des données de séries temporelles sélectionnées à partir de l'API Prometheus. Les données de la série temporelle sont téléchargées vers api.openshift.com toutes les quatre minutes et trente secondes pour être traitées.
L'opérateur Insights rassemble des données sélectionnées à partir de l'API Kubernetes et de l'API Prometheus dans une archive. L'archive est téléchargée vers OpenShift Cluster Manager Hybrid Cloud Console toutes les deux heures pour être traitée. L'opérateur Insights télécharge également la dernière analyse Insights depuis OpenShift Cluster Manager Hybrid Cloud Console. Cette analyse est utilisée pour remplir la fenêtre contextuelle Insights status qui est incluse dans la page Overview de la console Web d'OpenShift Container Platform.
Toutes les communications avec Red Hat se font sur des canaux cryptés en utilisant Transport Layer Security (TLS) et l'authentification mutuelle par certificat. Toutes les données sont cryptées en transit et au repos.
L'accès aux systèmes qui traitent les données des clients est contrôlé par une authentification multifactorielle et des contrôles d'autorisation stricts. L'accès est accordé en fonction du besoin d'en connaître et est limité aux opérations nécessaires.
Télémétrie et informations Flux de données de l'opérateur
Ressources supplémentaires
- Voir Aperçu de la surveillance pour plus d'informations sur la pile de surveillance de OpenShift Container Platform.
- Voir Configuration de votre pare-feu pour plus d'informations sur la configuration d'un pare-feu et l'activation des points d'extrémité pour Telemetry et Insights
4.1.4. Détails supplémentaires sur l'utilisation des données de télésurveillance de la santé
Les informations collectées pour permettre la surveillance de la santé à distance sont détaillées dans les sections Informations collectées par télémétrie et Informations collectées par l'opérateur Insights.
Comme décrit dans les sections précédentes de ce document, Red Hat recueille des données sur votre utilisation des produits Red Hat à des fins telles que la fourniture d'une assistance et de mises à jour, l'optimisation des performances ou de la configuration, la minimisation des impacts sur le service, l'identification et la correction des menaces, le dépannage, l'amélioration des offres et de l'expérience de l'utilisateur, la réponse aux problèmes et, le cas échéant, à des fins de facturation.
Sauvegarde de la collection
Red Hat utilise des mesures techniques et organisationnelles conçues pour protéger les données de télémétrie et de configuration.
Partage
Red Hat peut partager les données collectées par le biais de la télémétrie et de l'opérateur Insights en interne au sein de Red Hat afin d'améliorer votre expérience d'utilisateur. Red Hat peut partager les données de télémétrie et de configuration avec ses partenaires commerciaux sous une forme agrégée qui n'identifie pas les clients afin d'aider les partenaires à mieux comprendre leurs marchés et l'utilisation des offres Red Hat par leurs clients ou pour assurer l'intégration réussie des produits pris en charge conjointement par ces partenaires.
Tiers
Red Hat peut engager certains tiers pour aider à la collecte, à l'analyse et au stockage des données de télémétrie et de configuration.
Contrôle de l'utilisateur / activation et désactivation de la collecte des données de télémétrie et de configuration
Vous pouvez désactiver la télémétrie de OpenShift Container Platform et l'opérateur Insights en suivant les instructions de la section Désactiver les rapports de santé à distance.
4.2. Présentation des données collectées par la télésurveillance médicale
En tant qu'administrateur, vous pouvez examiner les mesures collectées par la télémétrie et l'opérateur Insights.
4.2.1. Afficher les données collectées par la télémétrie
Vous pouvez visualiser les données de séries temporelles du cluster et des composants capturées par Telemetry.
Conditions préalables
-
Vous avez installé le CLI OpenShift Container Platform (
oc
). -
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
oucluster-monitoring-view
.
Procédure
- Se connecter à un cluster.
Exécutez la commande suivante, qui interroge le service Prometheus d'un cluster et renvoie l'ensemble des données de séries temporelles capturées par Telemetry :
$ curl -G -k -H "Authorization: Bearer $(oc whoami -t)" \ https://$(oc get route prometheus-k8s-federate -n \ openshift-monitoring -o jsonpath="{.spec.host}")/federate \ --data-urlencode 'match[]={__name__=~"cluster:usage:.*"}' \ --data-urlencode 'match[]={__name__="count:up0"}' \ --data-urlencode 'match[]={__name__="count:up1"}' \ --data-urlencode 'match[]={__name__="cluster_version"}' \ --data-urlencode 'match[]={__name__="cluster_version_available_updates"}' \ --data-urlencode 'match[]={__name__="cluster_version_capability"}' \ --data-urlencode 'match[]={__name__="cluster_operator_up"}' \ --data-urlencode 'match[]={__name__="cluster_operator_conditions"}' \ --data-urlencode 'match[]={__name__="cluster_version_payload"}' \ --data-urlencode 'match[]={__name__="cluster_installer"}' \ --data-urlencode 'match[]={__name__="cluster_infrastructure_provider"}' \ --data-urlencode 'match[]={__name__="cluster_feature_set"}' \ --data-urlencode 'match[]={__name__="instance:etcd_object_counts:sum"}' \ --data-urlencode 'match[]={__name__="ALERTS",alertstate="firing"}' \ --data-urlencode 'match[]={__name__="code:apiserver_request_total:rate:sum"}' \ --data-urlencode 'match[]={__name__="cluster:capacity_cpu_cores:sum"}' \ --data-urlencode 'match[]={__name__="cluster:capacity_memory_bytes:sum"}' \ --data-urlencode 'match[]={__name__="cluster:cpu_usage_cores:sum"}' \ --data-urlencode 'match[]={__name__="cluster:memory_usage_bytes:sum"}' \ --data-urlencode 'match[]={__name__="openshift:cpu_usage_cores:sum"}' \ --data-urlencode 'match[]={__name__="openshift:memory_usage_bytes:sum"}' \ --data-urlencode 'match[]={__name__="workload:cpu_usage_cores:sum"}' \ --data-urlencode 'match[]={__name__="workload:memory_usage_bytes:sum"}' \ --data-urlencode 'match[]={__name__="cluster:virt_platform_nodes:sum"}' \ --data-urlencode 'match[]={__name__="cluster:node_instance_type_count:sum"}' \ --data-urlencode 'match[]={__name__="cnv:vmi_status_running:count"}' \ --data-urlencode 'match[]={__name__="cluster:vmi_request_cpu_cores:sum"}' \ --data-urlencode 'match[]={__name__="node_role_os_version_machine:cpu_capacity_cores:sum"}' \ --data-urlencode 'match[]={__name__="node_role_os_version_machine:cpu_capacity_sockets:sum"}' \ --data-urlencode 'match[]={__name__="subscription_sync_total"}' \ --data-urlencode 'match[]={__name__="olm_resolution_duration_seconds"}' \ --data-urlencode 'match[]={__name__="csv_succeeded"}' \ --data-urlencode 'match[]={__name__="csv_abnormal"}' \ --data-urlencode 'match[]={__name__="cluster:kube_persistentvolumeclaim_resource_requests_storage_bytes:provisioner:sum"}' \ --data-urlencode 'match[]={__name__="cluster:kubelet_volume_stats_used_bytes:provisioner:sum"}' \ --data-urlencode 'match[]={__name__="ceph_cluster_total_bytes"}' \ --data-urlencode 'match[]={__name__="ceph_cluster_total_used_raw_bytes"}' \ --data-urlencode 'match[]={__name__="ceph_health_status"}' \ --data-urlencode 'match[]={__name__="odf_system_raw_capacity_total_bytes"}' \ --data-urlencode 'match[]={__name__="odf_system_raw_capacity_used_bytes"}' \ --data-urlencode 'match[]={__name__="odf_system_health_status"}' \ --data-urlencode 'match[]={__name__="job:ceph_osd_metadata:count"}' \ --data-urlencode 'match[]={__name__="job:kube_pv:count"}' \ --data-urlencode 'match[]={__name__="job:odf_system_pvs:count"}' \ --data-urlencode 'match[]={__name__="job:ceph_pools_iops:total"}' \ --data-urlencode 'match[]={__name__="job:ceph_pools_iops_bytes:total"}' \ --data-urlencode 'match[]={__name__="job:ceph_versions_running:count"}' \ --data-urlencode 'match[]={__name__="job:noobaa_total_unhealthy_buckets:sum"}' \ --data-urlencode 'match[]={__name__="job:noobaa_bucket_count:sum"}' \ --data-urlencode 'match[]={__name__="job:noobaa_total_object_count:sum"}' \ --data-urlencode 'match[]={__name__="odf_system_bucket_count", system_type="OCS", system_vendor="Red Hat"}' \ --data-urlencode 'match[]={__name__="odf_system_objects_total", system_type="OCS", system_vendor="Red Hat"}' \ --data-urlencode 'match[]={__name__="noobaa_accounts_num"}' \ --data-urlencode 'match[]={__name__="noobaa_total_usage"}' \ --data-urlencode 'match[]={__name__="console_url"}' \ --data-urlencode 'match[]={__name__="cluster:ovnkube_master_egress_routing_via_host:max"}' \ --data-urlencode 'match[]={__name__="cluster:network_attachment_definition_instances:max"}' \ --data-urlencode 'match[]={__name__="cluster:network_attachment_definition_enabled_instance_up:max"}' \ --data-urlencode 'match[]={__name__="cluster:ingress_controller_aws_nlb_active:sum"}' \ --data-urlencode 'match[]={__name__="cluster:route_metrics_controller_routes_per_shard:min"}' \ --data-urlencode 'match[]={__name__="cluster:route_metrics_controller_routes_per_shard:max"}' \ --data-urlencode 'match[]={__name__="cluster:route_metrics_controller_routes_per_shard:avg"}' \ --data-urlencode 'match[]={__name__="cluster:route_metrics_controller_routes_per_shard:median"}' \ --data-urlencode 'match[]={__name__="cluster:openshift_route_info:tls_termination:sum"}' \ --data-urlencode 'match[]={__name__="insightsclient_request_send_total"}' \ --data-urlencode 'match[]={__name__="cam_app_workload_migrations"}' \ --data-urlencode 'match[]={__name__="cluster:apiserver_current_inflight_requests:sum:max_over_time:2m"}' \ --data-urlencode 'match[]={__name__="cluster:alertmanager_integrations:max"}' \ --data-urlencode 'match[]={__name__="cluster:telemetry_selected_series:count"}' \ --data-urlencode 'match[]={__name__="openshift:prometheus_tsdb_head_series:sum"}' \ --data-urlencode 'match[]={__name__="openshift:prometheus_tsdb_head_samples_appended_total:sum"}' \ --data-urlencode 'match[]={__name__="monitoring:container_memory_working_set_bytes:sum"}' \ --data-urlencode 'match[]={__name__="namespace_job:scrape_series_added:topk3_sum1h"}' \ --data-urlencode 'match[]={__name__="namespace_job:scrape_samples_post_metric_relabeling:topk3"}' \ --data-urlencode 'match[]={__name__="monitoring:haproxy_server_http_responses_total:sum"}' \ --data-urlencode 'match[]={__name__="rhmi_status"}' \ --data-urlencode 'match[]={__name__="status:upgrading:version:rhoam_state:max"}' \ --data-urlencode 'match[]={__name__="state:rhoam_critical_alerts:max"}' \ --data-urlencode 'match[]={__name__="state:rhoam_warning_alerts:max"}' \ --data-urlencode 'match[]={__name__="rhoam_7d_slo_percentile:max"}' \ --data-urlencode 'match[]={__name__="rhoam_7d_slo_remaining_error_budget:max"}' \ --data-urlencode 'match[]={__name__="cluster_legacy_scheduler_policy"}' \ --data-urlencode 'match[]={__name__="cluster_master_schedulable"}' \ --data-urlencode 'match[]={__name__="che_workspace_status"}' \ --data-urlencode 'match[]={__name__="che_workspace_started_total"}' \ --data-urlencode 'match[]={__name__="che_workspace_failure_total"}' \ --data-urlencode 'match[]={__name__="che_workspace_start_time_seconds_sum"}' \ --data-urlencode 'match[]={__name__="che_workspace_start_time_seconds_count"}' \ --data-urlencode 'match[]={__name__="cco_credentials_mode"}' \ --data-urlencode 'match[]={__name__="cluster:kube_persistentvolume_plugin_type_counts:sum"}' \ --data-urlencode 'match[]={__name__="visual_web_terminal_sessions_total"}' \ --data-urlencode 'match[]={__name__="acm_managed_cluster_info"}' \ --data-urlencode 'match[]={__name__="cluster:vsphere_vcenter_info:sum"}' \ --data-urlencode 'match[]={__name__="cluster:vsphere_esxi_version_total:sum"}' \ --data-urlencode 'match[]={__name__="cluster:vsphere_node_hw_version_total:sum"}' \ --data-urlencode 'match[]={__name__="openshift:build_by_strategy:sum"}' \ --data-urlencode 'match[]={__name__="rhods_aggregate_availability"}' \ --data-urlencode 'match[]={__name__="rhods_total_users"}' \ --data-urlencode 'match[]={__name__="instance:etcd_disk_wal_fsync_duration_seconds:histogram_quantile",quantile="0.99"}' \ --data-urlencode 'match[]={__name__="instance:etcd_mvcc_db_total_size_in_bytes:sum"}' \ --data-urlencode 'match[]={__name__="instance:etcd_network_peer_round_trip_time_seconds:histogram_quantile",quantile="0.99"}' \ --data-urlencode 'match[]={__name__="instance:etcd_mvcc_db_total_size_in_use_in_bytes:sum"}' \ --data-urlencode 'match[]={__name__="instance:etcd_disk_backend_commit_duration_seconds:histogram_quantile",quantile="0.99"}' \ --data-urlencode 'match[]={__name__="jaeger_operator_instances_storage_types"}' \ --data-urlencode 'match[]={__name__="jaeger_operator_instances_strategies"}' \ --data-urlencode 'match[]={__name__="jaeger_operator_instances_agent_strategies"}' \ --data-urlencode 'match[]={__name__="appsvcs:cores_by_product:sum"}' \ --data-urlencode 'match[]={__name__="nto_custom_profiles:count"}' \ --data-urlencode 'match[]={__name__="openshift_csi_share_configmap"}' \ --data-urlencode 'match[]={__name__="openshift_csi_share_secret"}' \ --data-urlencode 'match[]={__name__="openshift_csi_share_mount_failures_total"}' \ --data-urlencode 'match[]={__name__="openshift_csi_share_mount_requests_total"}' \ --data-urlencode 'match[]={__name__="cluster:velero_backup_total:max"}' \ --data-urlencode 'match[]={__name__="cluster:velero_restore_total:max"}' \ --data-urlencode 'match[]={__name__="eo_es_storage_info"}' \ --data-urlencode 'match[]={__name__="eo_es_redundancy_policy_info"}' \ --data-urlencode 'match[]={__name__="eo_es_defined_delete_namespaces_total"}' \ --data-urlencode 'match[]={__name__="eo_es_misconfigured_memory_resources_info"}' \ --data-urlencode 'match[]={__name__="cluster:eo_es_data_nodes_total:max"}' \ --data-urlencode 'match[]={__name__="cluster:eo_es_documents_created_total:sum"}' \ --data-urlencode 'match[]={__name__="cluster:eo_es_documents_deleted_total:sum"}' \ --data-urlencode 'match[]={__name__="pod:eo_es_shards_total:max"}' \ --data-urlencode 'match[]={__name__="eo_es_cluster_management_state_info"}' \ --data-urlencode 'match[]={__name__="imageregistry:imagestreamtags_count:sum"}' \ --data-urlencode 'match[]={__name__="imageregistry:operations_count:sum"}' \ --data-urlencode 'match[]={__name__="log_logging_info"}' \ --data-urlencode 'match[]={__name__="log_collector_error_count_total"}' \ --data-urlencode 'match[]={__name__="log_forwarder_pipeline_info"}' \ --data-urlencode 'match[]={__name__="log_forwarder_input_info"}' \ --data-urlencode 'match[]={__name__="log_forwarder_output_info"}' \ --data-urlencode 'match[]={__name__="cluster:log_collected_bytes_total:sum"}' \ --data-urlencode 'match[]={__name__="cluster:log_logged_bytes_total:sum"}' \ --data-urlencode 'match[]={__name__="cluster:kata_monitor_running_shim_count:sum"}' \ --data-urlencode 'match[]={__name__="platform:hypershift_hostedclusters:max"}' \ --data-urlencode 'match[]={__name__="platform:hypershift_nodepools:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_unhealthy_bucket_claims:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_buckets_claims:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_unhealthy_namespace_resources:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_namespace_resources:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_unhealthy_namespace_buckets:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_namespace_buckets:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_accounts:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_usage:max"}' \ --data-urlencode 'match[]={__name__="namespace:noobaa_system_health_status:max"}' \ --data-urlencode 'match[]={__name__="ocs_advanced_feature_usage"}' \ --data-urlencode 'match[]={__name__="os_image_url_override:sum"}'
4.2.2. Affichage des données collectées par l'opérateur Insights
Vous pouvez consulter les données collectées par l'opérateur Insights.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Rechercher le nom du module en cours d'exécution pour l'opérateur Insights :
$ INSIGHTS_OPERATOR_POD=$(oc get pods --namespace=openshift-insights -o custom-columns=:metadata.name --no-headers --field-selector=status.phase=Running)
Copier les archives de données récentes collectées par l'opérateur Insights :
$ oc cp openshift-insights/$INSIGHTS_OPERATOR_POD:/var/lib/insights-operator ./insights-data
Les archives récentes d'Insights Operator sont désormais disponibles dans le répertoire insights-data
.
4.3. Refuser les rapports de santé à distance
Vous pouvez choisir de ne pas communiquer les données relatives à l'état de santé et à l'utilisation de votre cluster.
Pour ne plus recevoir de rapports sur la santé à distance, vous devez
- Modifiez le secret d'extraction global du cluster pour désactiver les rapports de santé à distance.
- Mettre à jour le cluster pour utiliser ce secret modifié.
4.3.1. Conséquences de la désactivation des rapports de santé à distance
Dans OpenShift Container Platform, les clients peuvent choisir de ne pas communiquer d'informations sur l'utilisation. Cependant, les clusters connectés permettent à Red Hat de réagir plus rapidement aux problèmes et de mieux soutenir nos clients, ainsi que de mieux comprendre l'impact des mises à niveau de produits sur les clusters. Les clusters connectés contribuent également à simplifier le processus d'abonnement et d'attribution des droits et permettent au service OpenShift Cluster Manager de fournir une vue d'ensemble de vos clusters et de leur statut d'abonnement.
Red Hat recommande fortement de laisser les rapports de santé et d'utilisation activés pour les clusters de pré-production et de test, même s'il est nécessaire de les désactiver pour les clusters de production. Cela permet à Red Hat de participer à la qualification d'OpenShift Container Platform dans vos environnements et de réagir plus rapidement aux problèmes liés au produit.
Voici quelques-unes des conséquences du choix de ne pas disposer d'un groupe connecté :
- Red Hat ne sera pas en mesure de contrôler le succès des mises à jour du produit ou la santé de vos clusters sans l'ouverture d'un dossier d'assistance.
- Red Hat ne sera pas en mesure d'utiliser les données de configuration pour mieux trier les cas d'assistance à la clientèle et identifier les configurations que nos clients jugent importantes.
- OpenShift Cluster Manager n'affichera pas de données sur vos clusters, y compris des informations sur l'état de santé et l'utilisation.
- Les informations relatives à votre abonnement doivent être saisies manuellement via console.redhat.com, sans que vous puissiez bénéficier d'un rapport d'utilisation automatique.
Dans les réseaux restreints, les données Telemetry et Insights peuvent toujours être rapportées par le biais d'une configuration appropriée de votre proxy.
4.3.2. Modification du secret d'extraction du cluster global pour désactiver les rapports de santé à distance
Vous pouvez modifier le secret d'extraction de votre cluster global existant pour désactiver les rapports de santé à distance. Cela désactive à la fois la télémétrie et l'opérateur Insights.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Téléchargez le secret d'extraction du cluster global sur votre système de fichiers local.
$ oc extract secret/pull-secret -n openshift-config --to=.
-
Dans un éditeur de texte, modifiez le fichier
.dockerconfigjson
qui a été téléchargé. Supprimer l'entrée JSON
cloud.openshift.com
, par exemple :\N- "cloud.openshift.com":{"auth":\N"<hash>\N",\N "email":\N"<email_address>\N"}
- Enregistrer le fichier.
Vous pouvez maintenant mettre à jour votre cluster pour utiliser ce secret modifié.
4.3.3. Mise à jour du secret d'extraction du cluster global
Vous pouvez mettre à jour le secret d'extraction global pour votre cluster en remplaçant le secret d'extraction actuel ou en ajoutant un nouveau secret d'extraction.
Cette procédure est nécessaire lorsque les utilisateurs utilisent, pour stocker les images, un registre différent de celui utilisé lors de l'installation.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Facultatif : Pour ajouter un nouveau secret d'extraction au secret d'extraction existant, procédez comme suit :
Entrez la commande suivante pour télécharger le secret d'extraction :
$ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' ><pull_secret_location> 1
- 1
- Indiquer le chemin d'accès au fichier de secret d'extraction.
Entrez la commande suivante pour ajouter le nouveau secret d'extraction :
$ oc registry login --registry="<registry>" \ 1 --auth-basic="<username>:<password>" \ 2 --to=<pull_secret_location> 3
Vous pouvez également procéder à une mise à jour manuelle du fichier "pull secret".
Entrez la commande suivante pour mettre à jour le secret d'extraction global pour votre cluster :
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=<pull_secret_location> 1
- 1
- Indiquez le chemin d'accès au nouveau fichier de secret d'extraction.
Cette mise à jour est déployée sur tous les nœuds, ce qui peut prendre un certain temps en fonction de la taille de votre cluster.
NoteDepuis OpenShift Container Platform 4.7.4, les modifications apportées au secret de tirage global ne déclenchent plus la vidange ou le redémarrage d'un nœud.
4.4. Permettre l'établissement de rapports de santé à distance
Si vous ou votre organisation avez désactivé les rapports de santé à distance, vous pouvez réactiver cette fonctionnalité. Vous pouvez voir que les rapports de santé à distance sont désactivés à partir du message "Insights not available" dans la tuile Status sur la page OpenShift Container Platform Web Console Overview (Aperçu de la console Web OpenShift Container Platform).
Pour activer les rapports de santé à distance, vous devez modifier le secret d'extraction global du cluster avec un nouveau jeton d'autorisation.
L'activation des rapports de santé à distance permet à l'opérateur Insights et à la télémétrie de fonctionner.
4.4.1. Modifier le secret d'extraction de votre cluster global pour activer les rapports de santé à distance
Vous pouvez modifier votre secret d'extraction de cluster global existant pour activer les rapports de santé à distance. Si vous avez précédemment désactivé la surveillance de la santé à distance, vous devez d'abord télécharger un nouveau secret d'extraction avec votre jeton d'accès console.openshift.com
à partir de Red Hat OpenShift Cluster Manager.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Accès à OpenShift Cluster Manager.
Procédure
- Naviguez jusqu'à https://console.redhat.com/openshift/downloads.
Dans Tokens → Pull Secret, cliquez sur Download.
Le fichier
pull-secret.txt
contenant votre jeton d'accèscloud.openshift.com
au format JSON se télécharge :{ "auths": { "cloud.openshift.com": { "auth": "<your_token>", "email": "<email_address>" } }
Téléchargez le secret d'extraction du cluster global sur votre système de fichiers local.
$ oc get secret/pull-secret -n openshift-config --template='{{index .data ".dockerconfigjson" | base64decode}}' > pull-secret
Faites une copie de sauvegarde de votre secret de fabrication.
$ cp pull-secret pull-secret-backup
-
Ouvrez le fichier
pull-secret
dans un éditeur de texte. -
Ajouter l'entrée JSON
cloud.openshift.com
depull-secret.txt
àauths
. - Enregistrer le fichier.
Mettez à jour le secret dans votre cluster.
oc set data secret/pull-secret -n openshift-config --from-file=.dockerconfigjson=pull-secret
La mise à jour du secret peut prendre quelques minutes et votre cluster peut commencer à émettre des rapports.
Vérification
- Naviguez jusqu'à la page OpenShift Container Platform Web Console Overview (Aperçu de la console Web OpenShift Container Platform).
- Insights dans la tuile Status indique le nombre de problèmes trouvés.
4.5. Utiliser Insights pour identifier les problèmes de votre cluster
Insights analyse de manière répétée les données envoyées par Insights Operator. Les utilisateurs d'OpenShift Container Platform peuvent afficher le rapport dans le service Insights Advisor sur Red Hat Hybrid Cloud Console.
4.5.1. À propos de Red Hat Insights Advisor pour OpenShift Container Platform
Vous pouvez utiliser Insights Advisor pour évaluer et surveiller la santé de vos clusters OpenShift Container Platform. Que vous vous préoccupiez de clusters individuels ou de l'ensemble de votre infrastructure, il est important de connaître votre exposition aux problèmes qui peuvent affecter la disponibilité des services, la tolérance aux pannes, les performances ou la sécurité.
Insights analyse de manière répétée les données envoyées par Insights Operator à l'aide d'une base de données de recommendations, qui sont des ensembles de conditions pouvant mettre en danger vos clusters OpenShift Container Platform. Vos données sont ensuite téléchargées vers le service Insights Advisor sur Red Hat Hybrid Cloud Console où vous pouvez effectuer les actions suivantes :
- Voir les groupes concernés par une recommandation spécifique.
- Utilisez des fonctions de filtrage performantes pour affiner vos résultats en fonction de ces recommandations.
- Apprenez-en plus sur les recommandations individuelles, les détails sur les risques qu'elles présentent et obtenez des résolutions adaptées à vos groupes individuels.
- Partager les résultats avec les autres parties prenantes.
4.5.2. Comprendre Insights Recommandations du conseiller
Insights Advisor regroupe des informations sur les différents états des clusters et les configurations des composants qui peuvent avoir un impact négatif sur la disponibilité des services, la tolérance aux pannes, les performances ou la sécurité de vos clusters. Cet ensemble d'informations est appelé recommandation dans Insights Advisor et comprend les informations suivantes :
- Name: Une description concise de la recommandation
- Added: Date de publication de la recommandation dans les archives d'Insights Advisor
- Category: Si le problème est susceptible d'avoir une incidence négative sur la disponibilité des services, la tolérance aux pannes, les performances ou la sécurité
- Total risk: Une valeur dérivée de likelihood que la condition affectera négativement votre infrastructure, et de impact sur les opérations si cela devait se produire
- Clusters: Une liste de grappes sur lesquelles une recommandation est détectée
- Description: Un bref résumé de la question, y compris la manière dont elle affecte vos clusters
- Link to associated topics: Plus d'informations de la part de Red Hat sur ce problème
4.5.3. Affichage des problèmes potentiels de votre cluster
Cette section décrit comment afficher le rapport Insights à l'adresse Insights Advisor sur OpenShift Cluster Manager Hybrid Cloud Console.
Notez qu'Insights analyse votre cluster à plusieurs reprises et affiche les derniers résultats. Ces résultats peuvent changer, par exemple, si vous corrigez un problème ou si un nouveau problème a été détecté.
Conditions préalables
- Votre cluster est enregistré sur OpenShift Cluster Manager Hybrid Cloud Console.
- Les rapports de santé à distance sont activés, ce qui est la valeur par défaut.
- Vous êtes connecté à OpenShift Cluster Manager Hybrid Cloud Console.
Procédure
Naviguez vers Advisor → Recommendations sur OpenShift Cluster Manager Hybrid Cloud Console.
En fonction du résultat, Insights Advisor affiche l'un des éléments suivants :
- No matching recommendations foundsi Insights n'a pas identifié de problèmes.
- Liste des problèmes détectés par Insights, classés par risque (faible, modéré, important et critique).
- No clusters yetsi Insights n'a pas encore analysé le cluster. L'analyse commence peu après l'installation, l'enregistrement et la connexion à Internet de la grappe.
Si des problèmes sont affichés, cliquez sur l'icône > en face de l'entrée pour obtenir plus de détails.
En fonction du problème, les détails peuvent également contenir un lien vers plus d'informations de Red Hat sur le problème.
4.5.4. Affichage de toutes les recommandations du conseiller Insights
Par défaut, la vue Recommandations n'affiche que les recommandations détectées sur vos clusters. Cependant, vous pouvez visualiser toutes les recommandations dans l'archive des conseillers.
Conditions préalables
- Les rapports de santé à distance sont activés, ce qui est la valeur par défaut.
- Votre cluster est enregistré sur Red Hat Hybrid Cloud Console.
- Vous êtes connecté à OpenShift Cluster Manager Hybrid Cloud Console.
Procédure
- Naviguez vers Advisor → Recommendations sur OpenShift Cluster Manager Hybrid Cloud Console.
Cliquez sur les icônes X à côté des filtres Clusters Impacted et Status.
Vous pouvez maintenant parcourir toutes les recommandations potentielles pour votre cluster.
4.5.5. Désactiver les recommandations du conseiller Insights
Vous pouvez désactiver des recommandations spécifiques qui affectent vos clusters, afin qu'elles n'apparaissent plus dans vos rapports. Il est possible de désactiver une recommandation pour un seul cluster ou pour l'ensemble de vos clusters.
La désactivation d'une recommandation pour l'ensemble de vos clusters s'applique également à tous les clusters futurs.
Conditions préalables
- Les rapports de santé à distance sont activés, ce qui est la valeur par défaut.
- Votre cluster est enregistré sur OpenShift Cluster Manager Hybrid Cloud Console.
- Vous êtes connecté à OpenShift Cluster Manager Hybrid Cloud Console.
Procédure
- Naviguez vers Advisor → Recommendations sur OpenShift Cluster Manager Hybrid Cloud Console.
- Cliquez sur le nom de la recommandation à désactiver. Vous êtes redirigé vers la page de la recommandation unique.
Pour désactiver la recommandation pour un seul cluster :
-
Cliquez sur le menu Options
pour ce cluster, puis cliquez sur Disable recommendation for cluster.
- Saisissez une note de justification et cliquez sur Save.
-
Cliquez sur le menu Options
Pour désactiver la recommandation pour tous vos clusters :
- Cliquez sur Actions → Disable recommendation.
- Saisissez une note de justification et cliquez sur Save.
4.5.6. Activation d'une recommandation du conseiller Insights précédemment désactivée
Lorsqu'une recommandation est désactivée pour tous les clusters, vous ne verrez plus la recommandation dans Insights Advisor. Vous pouvez modifier ce comportement.
Conditions préalables
- Les rapports de santé à distance sont activés, ce qui est la valeur par défaut.
- Votre cluster est enregistré sur OpenShift Cluster Manager Hybrid Cloud Console.
- Vous êtes connecté à OpenShift Cluster Manager Hybrid Cloud Console.
Procédure
- Naviguez vers Advisor → Recommendations sur OpenShift Cluster Manager Hybrid Cloud Console.
- Filtrer les recommandations par Status → Disabled.
- Localisez la recommandation à activer.
-
Cliquez sur le menu Options
puis cliquez sur Enable recommendation.
4.5.7. Affichage de l'état d'Insights dans la console web
Insights analyse de manière répétée votre cluster et vous pouvez afficher le statut des problèmes potentiels identifiés de votre cluster dans la console web d'OpenShift Container Platform. Ce statut indique le nombre de problèmes dans les différentes catégories et, pour plus de détails, des liens vers les rapports dans OpenShift Cluster Manager Hybrid Cloud Console.
Conditions préalables
- Votre cluster est enregistré dans OpenShift Cluster Manager Hybrid Cloud Console.
- Les rapports de santé à distance sont activés, ce qui est la valeur par défaut.
- Vous êtes connecté à la console web de OpenShift Container Platform.
Procédure
- Naviguez vers Home → Overview dans la console web de OpenShift Container Platform.
Cliquez sur Insights sur la carte Status.
La fenêtre contextuelle répertorie les problèmes potentiels regroupés par risque. Cliquez sur les catégories individuelles ou sur View all recommendations in Insights Advisor pour afficher plus de détails.
4.6. Utilisation de l'opérateur Insights
L'opérateur Insights recueille périodiquement l'état de la configuration et des défaillances des composants et, par défaut, rapporte ces données toutes les deux heures à Red Hat. Ces informations permettent à Red Hat d'évaluer la configuration et les données de défaillance plus profondes que celles rapportées par Telemetry. Les utilisateurs d'OpenShift Container Platform peuvent afficher le rapport dans le service Insights Advisor sur Red Hat Hybrid Cloud Console.
Ressources supplémentaires
- L'opérateur Insights est installé et activé par défaut. Si vous devez désactiver les rapports de santé à distance, voir Désactiver les rapports de santé à distance.
- Pour plus d'informations sur l'utilisation d'Insights Advisor pour identifier les problèmes de votre cluster, voir Utilisation d'Insights pour identifier les problèmes de votre cluster.
4.6.1. Comprendre Insights Alertes de l'opérateur
Insights Operator déclare des alertes à Alertmanager via le système de surveillance Prometheus. Vous pouvez visualiser ces alertes dans l'interface utilisateur Alerting accessible via la perspective Administrator et la perspective Developer dans la console web OpenShift Container Platform.
Actuellement, Insights Operator envoie les alertes suivantes lorsque les conditions sont remplies :
Tableau 4.1. Alertes de l'opérateur Insights
Alerte | Description |
---|---|
| L'opérateur Insights est désactivé. |
| L'accès simple au contenu n'est pas activé dans Red Hat Subscription Management. |
| Insights a une recommandation active pour le cluster. |
4.6.2. Désactivation des alertes de l'opérateur Insights
Vous pouvez empêcher Insights Operator d'envoyer des alertes à l'instance Prometheus du cluster.
- Naviguez jusqu'à Workloads → Secrets.
- Sur la page Secrets, sélectionnez All Projects dans la liste Project, puis activez Show default projects.
- Sélectionnez le projet openshift-config dans la liste Projects.
- Recherchez le secret support dans le champ Search by name. Si le secret n'existe pas, cliquez sur Create → Key/value secret pour le créer.
-
Cliquez sur le menu Options
puis cliquez sur Edit Secret.
- Cliquez sur Add Key/Value.
-
Saisissez
disableInsightsAlerts
comme clé avec la valeurTrue
, et cliquez sur Save.
Une fois les modifications enregistrées, Insights Operator n'enverra plus d'alertes à l'instance Prometheus du cluster.
4.6.3. Téléchargement de l'archive d'Insights Operator
Insights Operator stocke les données recueillies dans une archive située dans l'espace de noms openshift-insights
de votre cluster. Vous pouvez télécharger et consulter les données collectées par Insights Operator.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Recherchez le nom du module en cours d'exécution pour l'opérateur Insights :
$ oc get pods --namespace=openshift-insights -o custom-columns=:metadata.name --no-headers --field-selector=status.phase=Running
Copier les archives de données récentes collectées par l'opérateur Insights :
oc cp openshift-insights/<insights_operator_pod_name>:/var/lib/insights-operator ./insights-data 1
- 1
- Remplacez
<insights_operator_pod_name>
par le nom du pod résultant de la commande précédente.
Les archives récentes d'Insights Operator sont désormais disponibles dans le répertoire insights-data
.
4.6.4. Visualisation des durées de collecte de l'opérateur Insights
Vous pouvez visualiser le temps nécessaire à l'opérateur Insights pour collecter les informations contenues dans l'archive. Cela vous aide à comprendre l'utilisation des ressources de l'opérateur Insights et les problèmes rencontrés par Insights Advisor.
Conditions préalables
- Une copie récente de votre archive Insights Operator.
Procédure
Depuis votre archive, ouvrez
/insights-operator/gathers.json
.Le fichier contient une liste des opérations de collecte de l'opérateur Insights :
{ "name": "clusterconfig/authentication", "duration_in_ms": 730, 1 "records_count": 1, "errors": null, "panic": null }
- 1
duration_in_ms
est le temps en millisecondes pour chaque opération de collecte.
- Vérifier que chaque opération de rassemblement ne présente pas d'anomalie.
4.6.5. Désactivation des opérations de collecte de l'opérateur Insights
Vous pouvez désactiver les opérations de collecte d'Insights Operator. La désactivation des opérations de collecte vous permet d'accroître la confidentialité de votre organisation, car Insights Operator ne collectera plus et n'enverra plus de rapports sur les clusters Insights à Red Hat. Cela désactivera l'analyse et les recommandations d'Insights pour votre cluster sans affecter les autres fonctions principales qui nécessitent une communication avec Red Hat, telles que les transferts de clusters. Vous pouvez consulter une liste des tentatives d'opérations de collecte pour votre cluster à partir du fichier /insights-operator/gathers.json
dans votre archive Insights Operator. Sachez que certaines opérations de collecte ne se produisent que lorsque certaines conditions sont remplies et peuvent ne pas apparaître dans votre archive la plus récente.
La ressource personnalisée InsightsDataGather
est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
Conditions préalables
-
Vous êtes connecté à la console web de OpenShift Container Platform en tant qu'utilisateur avec le rôle
cluster-admin
.
Procédure
- Naviguez jusqu'à Administration → CustomResourceDefinitions.
- Sur la page CustomResourceDefinitions, utilisez le champ Search by name pour trouver la définition de la ressource InsightsDataGather et cliquez dessus.
- Sur la page CustomResourceDefinition details, cliquez sur l'onglet Instances.
- Cliquez sur cluster, puis sur l'onglet YAML.
Pour désactiver toutes les opérations de collecte, modifiez le fichier de configuration
InsightsDataGather
:apiVersion: config.openshift.io/v1alpha1 kind: InsightsDataGather metadata: .... spec: 1 gatherConfig: disabledGatherers: - all 2
Pour désactiver certaines opérations de collecte, saisissez leur valeur sous la touche
disabledGatherers
:spec: gatherConfig: disabledGatherers: - clusterconfig/container_images 1 - clusterconfig/host_subnets - workloads/workload_info
- 1
- Exemple d'opération de collecte individuelle
Cliquez sur Save.
Après avoir enregistré les modifications, les configurations de rassemblement de l'opérateur Insights sont mises à jour et les opérations ne se produisent plus.
La désactivation des opérations de collecte dégrade la capacité d'Insights Advisor à proposer des recommandations efficaces pour votre cluster.
4.6.6. Configuration de l'opérateur Insights
Vous pouvez configurer Insights Operator pour répondre aux besoins de votre organisation. Insights Operator est configuré en utilisant une combinaison des configurations par défaut dans le fichier pod.yaml
dans le répertoire Insights Operator Config
et les configurations stockées dans le secret support
dans l'espace de noms openshift-config
. Le secret support
n'existe pas par défaut et doit être créé lors du premier ajout de configurations personnalisées. Les configurations contenues dans le secret support
remplacent les valeurs par défaut définies dans le fichier pod.yaml
.
Le tableau ci-dessous décrit les attributs de configuration disponibles :
Tableau 4.2. Attributs configurables de l'opérateur Insights
Nom de l'attribut | Description | Type de valeur | Valeur par défaut |
---|---|---|---|
|
Spécifie le nom d'utilisateur pour l'authentification de base avec | String | Non défini |
|
Spécifie le mot de passe pour l'authentification de base avec | String | Non défini |
| Active l'obscurcissement global des adresses IP et du nom de domaine du cluster | Booléen |
|
| Spécifie la fréquence de téléchargement des droits d'accès au contenu simple | Intervalle de temps |
|
| Désactive le téléchargement des droits d'accès au contenu simple | Booléen |
|
| Spécifie la fréquence à laquelle Insights Operator vérifie OpenShift Cluster Manager pour les transferts de clusters disponibles | Intervalle de temps |
|
| Désactive les alertes de l'opérateur Insights vers l'instance Prometheus du cluster | Booléen |
|
Cette procédure décrit comment définir des configurations personnalisées pour l'opérateur Insights.
Red Hat vous recommande de consulter l'assistance Red Hat avant d'apporter des modifications à la configuration par défaut d'Insights Operator.
Conditions préalables
-
Vous êtes connecté à la console web de OpenShift Container Platform en tant qu'utilisateur avec le rôle
cluster-admin
.
Procédure
- Naviguez jusqu'à Workloads → Secrets.
- Sur la page Secrets, sélectionnez All Projects dans la liste Project, puis activez Show default projects.
- Sélectionnez le projet openshift-config dans la liste Project.
- Recherchez le secret support dans le champ Search by name. S'il n'existe pas, cliquez sur Create → Key/value secret pour le créer.
-
Cliquez sur le menu Options
pour le secret, puis cliquez sur Edit Secret.
- Cliquez sur Add Key/Value.
- Saisissez un nom d'attribut avec une valeur appropriée (voir tableau ci-dessus) et cliquez sur Save.
- Répétez les étapes ci-dessus pour toute configuration supplémentaire.
4.7. Utilisation des rapports de santé à distance dans un réseau restreint
Vous pouvez collecter et télécharger manuellement les archives d'Insights Operator pour diagnostiquer les problèmes à partir d'un réseau restreint.
Pour utiliser l'Opérateur Insights dans un réseau restreint, vous devez
- Créez une copie de votre archive Insights Operator.
- Téléchargez l'archive Insights Operator sur console.redhat.com.
En outre, vous pouvez choisir d'obscurcir les données de l'opérateur Insights avant de les télécharger.
4.7.1. Exécution d'une opération de collecte par Insights Operator
Vous devez exécuter une opération de collecte pour créer une archive Insights Operator.
Conditions préalables
-
Vous êtes connecté à OpenShift Container Platform en tant que
cluster-admin
.
Procédure
Créez un fichier nommé
gather-job.yaml
en utilisant ce modèle :apiVersion: batch/v1 kind: Job metadata: name: insights-operator-job annotations: config.openshift.io/inject-proxy: insights-operator spec: backoffLimit: 6 ttlSecondsAfterFinished: 600 template: spec: restartPolicy: OnFailure serviceAccountName: operator nodeSelector: beta.kubernetes.io/os: linux node-role.kubernetes.io/master: "" tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 900 - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 900 volumes: - name: snapshots emptyDir: {} - name: service-ca-bundle configMap: name: service-ca-bundle optional: true initContainers: - name: insights-operator image: quay.io/openshift/origin-insights-operator:latest terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - name: snapshots mountPath: /var/lib/insights-operator - name: service-ca-bundle mountPath: /var/run/configmaps/service-ca-bundle readOnly: true ports: - containerPort: 8443 name: https resources: requests: cpu: 10m memory: 70Mi args: - gather - -v=4 - --config=/etc/insights-operator/server.yaml containers: - name: sleepy image: quay.io/openshift/origin-base:latest args: - /bin/sh - -c - sleep 10m volumeMounts: [{name: snapshots, mountPath: /var/lib/insights-operator}]
Copiez votre version de l'image
insights-operator
:$ oc get -n openshift-insights deployment insights-operator -o yaml
Collez votre version de l'image dans
gather-job.yaml
:initContainers: - name: insights-operator image: <your_insights_operator_image_version> terminationMessagePolicy: FallbackToLogsOnError volumeMounts:
Créer le travail de collecte :
$ oc apply -n openshift-insights -f gather-job.yaml
Recherchez le nom de l'unité d'emploi :
$ oc describe -n openshift-insights job/insights-operator-job
Exemple de sortie
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal SuccessfulCreate 7m18s job-controller Created pod: insights-operator-job-<your_job>
où
insights-operator-job-<your_job>
est le nom du module.Vérifiez que l'opération est terminée :
oc logs -n openshift-insights insights-operator-job-<your_job> insights-operator
Exemple de sortie
I0407 11:55:38.192084 1 diskrecorder.go:34] Wrote 108 records to disk in 33ms
Sauvegarder l'archive créée :
$ oc cp openshift-insights/insights-operator-job-<your_job>:/var/lib/insights-operator ./insights-data
Nettoyer le travail :
$ oc delete -n openshift-insights job insights-operator-job
4.7.2. Téléchargement d'une archive Insights Operator
Vous pouvez télécharger manuellement une archive Insights Operator vers console.redhat.com pour diagnostiquer les problèmes potentiels.
Conditions préalables
-
Vous êtes connecté à OpenShift Container Platform en tant que
cluster-admin
. - Vous disposez d'un poste de travail avec un accès illimité à l'internet.
- Vous avez créé une copie de l'archive Insights Operator.
Procédure
Téléchargez le fichier
dockerconfig.json
:$ oc extract secret/pull-secret -n openshift-config --to=.
Copiez votre jeton
"cloud.openshift.com"
"auth"
dans le fichierdockerconfig.json
:{ "auths": { "cloud.openshift.com": { "auth": "<your_token>", "email": "asd@redhat.com" } }
Téléchargez l'archive sur console.redhat.com:
$ curl -v -H \N "User-Agent : insights-operator/one10time200gather184a34f6a168926d93c330 cluster/<cluster_id>\N" -H "Authorization : Bearer <your_token>\N" -F \N "upload=@<path_to_archive>; type=application/vnd.redhat.openshift.periodic tar\N" https://console.redhat.com/api/ingress/v1/upload
où
<cluster_id>
est l'identifiant de votre cluster,<your_token>
est le jeton de votre secret d'extraction, et<path_to_archive>
est le chemin d'accès à l'archive Insights Operator.Si l'opération est réussie, la commande renvoie une adresse
"request_id"
et"account_number"
:Exemple de sortie
* Connection #0 to host console.redhat.com left intact {"request_id":"393a7cf1093e434ea8dd4ab3eb28884c","upload":{"account_number":"6274079"}}%
Verification steps
- Connectez-vous à https://console.redhat.com/openshift.
- Cliquez sur le menu Clusters dans le volet gauche.
- Pour afficher les détails du cluster, cliquez sur le nom du cluster.
Ouvrez l'onglet Insights Advisor du cluster.
Si le téléchargement a réussi, l'onglet affiche l'un des éléments suivants :
- Your cluster passed all recommendationssi le conseiller Insights n'a pas identifié de problème.
- Liste des problèmes détectés par Insights Advisor, classés par ordre de priorité en fonction du risque (faible, modéré, important et critique).
4.7.3. Permettre de comprendre L'obscurcissement des données de l'opérateur
Vous pouvez activer l'obscurcissement pour masquer les adresses IPv4 et les domaines de base de cluster sensibles et identifiables que l'opérateur Insights envoie à console.redhat.com.
Bien que cette fonctionnalité soit disponible, Red Hat recommande de laisser l'obscurcissement désactivé pour une expérience d'assistance plus efficace.
L'obscurcissement attribue des valeurs non identifiantes aux adresses IPv4 des clusters et utilise une table de traduction conservée en mémoire pour remplacer les adresses IP par leurs versions obscurcies dans l'ensemble de l'archive Insights Operator avant de télécharger les données vers console.redhat.com.
Pour les domaines de base des clusters, l'obscurcissement remplace le domaine de base par une sous-chaîne codée en dur. Par exemple, cluster-api.openshift.example.com
devient cluster-api.<CLUSTER_BASE_DOMAIN>
.
La procédure suivante permet l'obscurcissement à l'aide du secret support
dans l'espace de noms openshift-config
.
Conditions préalables
-
Vous êtes connecté à la console web de OpenShift Container Platform en tant que
cluster-admin
.
Procédure
- Naviguez jusqu'à Workloads → Secrets.
- Sélectionnez le projet openshift-config.
- Recherchez le secret support dans le champ Search by name. S'il n'existe pas, cliquez sur Create → Key/value secret pour le créer.
-
Cliquez sur le menu Options
puis cliquez sur Edit Secret.
- Cliquez sur Add Key/Value.
-
Créez une clé nommée
enableGlobalObfuscation
avec une valeur detrue
, et cliquez sur Save. - Naviguez vers Workloads → Pods
-
Sélectionnez le projet
openshift-insights
. -
Trouvez la nacelle
insights-operator
. -
Pour redémarrer le pod
insights-operator
, cliquez sur le menu Optionspuis cliquez sur Delete Pod.
Vérification
- Naviguez jusqu'à Workloads → Secrets.
- Sélectionnez le projet openshift-insights.
- Recherchez le secret obfuscation-translation-table en utilisant le champ Search by name.
Si le secret obfuscation-translation-table
existe, l'obscurcissement est activé et fonctionne.
Vous pouvez également rechercher la valeur "is_global_obfuscation_enabled": true
dans votre archive Insights Operator à l'adresse /insights-operator/gathers.json
.
Ressources supplémentaires
- Pour plus d'informations sur le téléchargement des archives de l'Opérateur Insights, voir Afficher les données collectées par l'Opérateur Insights.
4.8. Importer des droits d'accès à des contenus simples avec Insights Operator
Insights Operator importe périodiquement vos droits d'accès au contenu simple depuis OpenShift Cluster Manager Hybrid Cloud Console et les stocke dans le secret etc-pki-entitlement
dans l'espace de noms openshift-config-managed
. L'accès au contenu simple est une capacité des outils d'abonnement Red Hat qui simplifie le comportement de l'outil de droits. Cette fonctionnalité facilite la consommation du contenu fourni par vos abonnements Red Hat sans la complexité de la configuration de l'outil d'abonnement.
Insights Operator importe les droits d'accès au contenu simple toutes les huit heures, mais il peut être configuré ou désactivé à l'aide du secret support
dans l'espace de noms openshift-config
.
L'accès simple au contenu doit être activé dans Red Hat Subscription Management pour que l'importation fonctionne.
Ressources supplémentaires
- Voir À propos de l'accès simple au contenu dans la documentation de Red Hat Subscription Central, pour plus d'informations sur l'accès simple au contenu.
- Voir Utiliser les abonnements Red Hat dans les build s pour plus d'informations sur l'utilisation des droits d'accès au contenu simple dans les builds d'OpenShift Container Platform.
4.8.1. Configuration de l'intervalle d'importation de l'accès au contenu simple
Vous pouvez configurer la fréquence à laquelle l'opérateur Insights importe les droits d'accès au contenu simple à l'aide du secret support
dans l'espace de noms openshift-config
. L'importation des droits se produit normalement toutes les huit heures, mais vous pouvez raccourcir cet intervalle si vous mettez à jour votre configuration d'accès au contenu simple dans Red Hat Subscription Management.
Cette procédure décrit comment mettre à jour l'intervalle d'importation à une heure.
Conditions préalables
-
Vous êtes connecté à la console web de OpenShift Container Platform en tant que
cluster-admin
.
Procédure
- Naviguez jusqu'à Workloads → Secrets.
- Sélectionnez le projet openshift-config.
- Recherchez le secret support dans le champ Search by name. S'il n'existe pas, cliquez sur Create → Key/value secret pour le créer.
-
Cliquez sur le menu Options
puis cliquez sur Edit Secret.
- Cliquez sur Add Key/Value.
Créez une clé nommée
scaInterval
avec une valeur de1h
, et cliquez sur Save.NoteL'intervalle
1h
peut également être saisi comme60m
pour 60 minutes.
4.8.2. Désactivation de l'importation simple d'accès au contenu
Vous pouvez désactiver l'importation des droits d'accès au contenu simple en utilisant le secret support
dans l'espace de noms openshift-config
.
Conditions préalables
-
Vous êtes connecté à la console web de OpenShift Container Platform en tant que
cluster-admin
.
Procédure
- Naviguez jusqu'à Workloads → Secrets.
- Sélectionnez le projet openshift-config.
- Recherchez le secret support dans le champ Search by name. S'il n'existe pas, cliquez sur Create → Key/value secret pour le créer.
-
Cliquez sur le menu Options
puis cliquez sur Edit Secret.
- Cliquez sur Add Key/Value.
Créez une clé nommée
scaPullDisabled
avec une valeur detrue
, et cliquez sur Save.L'importation des droits d'accès au contenu simple est désormais désactivée.
NotePour réactiver l'importation de contenu simple, modifiez le secret
support
et supprimez la cléscaPullDisabled
.
Chapitre 5. Collecte de données sur votre cluster
Lorsque vous ouvrez un dossier d'assistance, il est utile de fournir des informations de débogage sur votre cluster à l'équipe d'assistance de Red Hat.
Il est recommandé de fournir :
5.1. À propos de l'outil de collecte obligatoire
La commande CLI oc adm must-gather
recueille les informations de votre cluster les plus susceptibles d'être nécessaires au débogage des problèmes, notamment
- Définitions des ressources
- Journaux de service
Par défaut, la commande oc adm must-gather
utilise l'image du plugin par défaut et écrit dans ./must-gather.local
.
Vous pouvez également recueillir des informations spécifiques en exécutant la commande avec les arguments appropriés, comme décrit dans les sections suivantes :
Pour collecter des données relatives à une ou plusieurs caractéristiques spécifiques, utilisez l'argument
--image
avec une image, comme indiqué dans la section suivante.Par exemple :
$ oc adm must-gather --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.12.0
Pour collecter les journaux d'audit, utilisez l'argument
-- /usr/bin/gather_audit_logs
, comme décrit dans la section suivante.Par exemple :
$ oc adm must-gather -- /usr/bin/gather_audit_logs
NoteLes journaux d'audit ne sont pas collectés dans le cadre de l'ensemble d'informations par défaut afin de réduire la taille des fichiers.
Lorsque vous exécutez oc adm must-gather
, un nouveau module portant un nom aléatoire est créé dans un nouveau projet sur le cluster. Les données sont collectées sur ce module et enregistrées dans un nouveau répertoire commençant par must-gather.local
. Ce répertoire est créé dans le répertoire de travail actuel.
Par exemple :
NAMESPACE NAME READY STATUS RESTARTS AGE ... openshift-must-gather-5drcj must-gather-bklx4 2/2 Running 0 72s openshift-must-gather-5drcj must-gather-s8sdh 2/2 Running 0 72s ...
5.1.1. Collecte de données sur votre cluster pour l'assistance Red Hat
Vous pouvez recueillir des informations de débogage sur votre cluster en utilisant la commande CLI oc adm must-gather
.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
L'OpenShift Container Platform CLI (
oc
) est installé.
Procédure
Accédez au répertoire dans lequel vous souhaitez stocker les données
must-gather
.NoteSi votre cluster utilise un réseau restreint, vous devez prendre des mesures supplémentaires. Si votre registre miroir dispose d'une autorité de certification approuvée, vous devez d'abord ajouter cette dernière au cluster. Pour tous les clusters sur des réseaux restreints, vous devez importer l'image par défaut
must-gather
en tant que flux d'images.$ oc import-image is/must-gather -n openshift
Exécutez la commande
oc adm must-gather
:$ oc adm must-gather
NoteComme cette commande choisit un nœud de plan de contrôle aléatoire par défaut, le pod peut être programmé sur un nœud de plan de contrôle qui se trouve dans l'état
NotReady
etSchedulingDisabled
.Si cette commande échoue, par exemple si vous ne pouvez pas planifier un pod sur votre cluster, utilisez la commande
oc adm inspect
pour recueillir des informations sur des ressources particulières.NoteContactez l'assistance de Red Hat pour connaître les ressources recommandées à rassembler.
Créez un fichier compressé à partir du répertoire
must-gather
qui vient d'être créé dans votre répertoire de travail. Par exemple, sur un ordinateur utilisant un système d'exploitation Linux, exécutez la commande suivante :$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ 1
- 1
- Veillez à remplacer
must-gather-local.5421342344627712289/
par le nom réel du répertoire.
- Joignez le fichier compressé à votre demande d'assistance sur le portail client de Red Hat.
5.1.2. Collecte de données sur des caractéristiques spécifiques
Vous pouvez obtenir des informations de débogage sur des fonctionnalités spécifiques en utilisant la commande CLI oc adm must-gather
avec l'argument --image
ou --image-stream
. L'outil must-gather
prend en charge plusieurs images, ce qui vous permet de recueillir des données sur plus d'une fonctionnalité en exécutant une seule commande.
Tableau 5.1. Images à collecter obligatoirement prises en charge
Image | Objectif |
---|---|
| Collecte de données pour OpenShift Virtualization. |
| Collecte de données pour OpenShift Serverless. |
| Collecte de données pour Red Hat OpenShift Service Mesh. |
| Collecte de données pour le Migration Toolkit for Containers. |
| Collecte de données pour Red Hat OpenShift Data Foundation. |
| Collecte de données pour OpenShift Logging. |
| Collecte de données pour OpenShift Shared Resource CSI Driver. |
| Collecte de données pour l'opérateur de stockage local. |
| Collecte de données pour les conteneurs OpenShift sandboxed. |
| Collecte de données pour l'opérateur d'auto-assainissement des nœuds (SNR) et l'opérateur de contrôle de l'état des nœuds (NHC). |
| Collecte de données pour l'opérateur de maintenance des nœuds (OMN). |
| Collecte de données pour Red Hat OpenShift Pipelines |
-
Pour collecter les données par défaut
must-gather
en plus des données relatives à des caractéristiques spécifiques, ajoutez l'argument--image-stream=openshift/must-gather
. - Pour plus d'informations sur la collecte de données concernant l'Autoscaler Custom Metrics, reportez-vous à la section Ressources supplémentaires ci-dessous.
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
L'OpenShift Container Platform CLI (
oc
) est installé.
Procédure
-
Accédez au répertoire dans lequel vous souhaitez stocker les données
must-gather
. Exécutez la commande
oc adm must-gather
avec un ou plusieurs arguments--image
ou--image-stream
. Par exemple, la commande suivante rassemble à la fois les données de cluster par défaut et les informations spécifiques à OpenShift Virtualization :$ oc adm must-gather \ --image-stream=openshift/must-gather \ 1 --image=registry.redhat.io/container-native-virtualization/cnv-must-gather-rhel8:v4.12.2 2
Vous pouvez utiliser l'outil
must-gather
avec des arguments supplémentaires pour rassembler des données qui sont spécifiquement liées à OpenShift Logging et à l'opérateur Red Hat OpenShift Logging dans votre cluster. Pour OpenShift Logging, exécutez la commande suivante :$ oc adm must-gather --image=$(oc -n openshift-logging get deployment.apps/cluster-logging-operator \ -o jsonpath='{.spec.template.spec.containers[?(@.name == "cluster-logging-operator")].image}')
Exemple 5.1. Exemple de sortie
must-gather
pour OpenShift Logging├── cluster-logging │ ├── clo │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ ├── clusterlogforwarder_cr │ │ ├── cr │ │ ├── csv │ │ ├── deployment │ │ └── logforwarding_cr │ ├── collector │ │ ├── fluentd-2tr64 │ ├── eo │ │ ├── csv │ │ ├── deployment │ │ └── elasticsearch-operator-7dc7d97b9d-jb4r4 │ ├── es │ │ ├── cluster-elasticsearch │ │ │ ├── aliases │ │ │ ├── health │ │ │ ├── indices │ │ │ ├── latest_documents.json │ │ │ ├── nodes │ │ │ ├── nodes_stats.json │ │ │ └── thread_pool │ │ ├── cr │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ └── logs │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ ├── install │ │ ├── co_logs │ │ ├── install_plan │ │ ├── olmo_logs │ │ └── subscription │ └── kibana │ ├── cr │ ├── kibana-9d69668d4-2rkvz ├── cluster-scoped-resources │ └── core │ ├── nodes │ │ ├── ip-10-0-146-180.eu-west-1.compute.internal.yaml │ └── persistentvolumes │ ├── pvc-0a8d65d9-54aa-4c44-9ecc-33d9381e41c1.yaml ├── event-filter.html ├── gather-debug.log └── namespaces ├── openshift-logging │ ├── apps │ │ ├── daemonsets.yaml │ │ ├── deployments.yaml │ │ ├── replicasets.yaml │ │ └── statefulsets.yaml │ ├── batch │ │ ├── cronjobs.yaml │ │ └── jobs.yaml │ ├── core │ │ ├── configmaps.yaml │ │ ├── endpoints.yaml │ │ ├── events │ │ │ ├── elasticsearch-im-app-1596020400-gm6nl.1626341a296c16a1.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-9l9n4.1626341a2af81bbd.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-v98tk.1626341a2d821069.yaml │ │ │ ├── elasticsearch-im-app-1596020400-cc5vc.1626341a3019b238.yaml │ │ │ ├── elasticsearch-im-audit-1596020400-s8d5s.1626341a31f7b315.yaml │ │ │ ├── elasticsearch-im-infra-1596020400-7mgv8.1626341a35ea59ed.yaml │ │ ├── events.yaml │ │ ├── persistentvolumeclaims.yaml │ │ ├── pods.yaml │ │ ├── replicationcontrollers.yaml │ │ ├── secrets.yaml │ │ └── services.yaml │ ├── openshift-logging.yaml │ ├── pods │ │ ├── cluster-logging-operator-74dd5994f-6ttgt │ │ │ ├── cluster-logging-operator │ │ │ │ └── cluster-logging-operator │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ └── cluster-logging-operator-74dd5994f-6ttgt.yaml │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff │ │ │ ├── cluster-logging-operator-registry │ │ │ │ └── cluster-logging-operator-registry │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── cluster-logging-operator-registry-6df49d7d4-mxxff.yaml │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── mutate-csv-and-generate-sqlite-db │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── elasticsearch-cdm-lp8l38m0-1-794d6dd989-4jxms │ │ ├── elasticsearch-im-app-1596030300-bpgcx │ │ │ ├── elasticsearch-im-app-1596030300-bpgcx.yaml │ │ │ └── indexmanagement │ │ │ └── indexmanagement │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── fluentd-2tr64 │ │ │ ├── fluentd │ │ │ │ └── fluentd │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── fluentd-2tr64.yaml │ │ │ └── fluentd-init │ │ │ └── fluentd-init │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ │ ├── kibana-9d69668d4-2rkvz │ │ │ ├── kibana │ │ │ │ └── kibana │ │ │ │ └── logs │ │ │ │ ├── current.log │ │ │ │ ├── previous.insecure.log │ │ │ │ └── previous.log │ │ │ ├── kibana-9d69668d4-2rkvz.yaml │ │ │ └── kibana-proxy │ │ │ └── kibana-proxy │ │ │ └── logs │ │ │ ├── current.log │ │ │ ├── previous.insecure.log │ │ │ └── previous.log │ └── route.openshift.io │ └── routes.yaml └── openshift-operators-redhat ├── ...
Exécutez la commande
oc adm must-gather
avec un ou plusieurs arguments--image
ou--image-stream
. Par exemple, la commande suivante rassemble à la fois les données du cluster par défaut et les informations spécifiques à KubeVirt :$ oc adm must-gather \ --image-stream=openshift/must-gather \ 1 --image=quay.io/kubevirt/must-gather 2
Créez un fichier compressé à partir du répertoire
must-gather
qui vient d'être créé dans votre répertoire de travail. Par exemple, sur un ordinateur utilisant un système d'exploitation Linux, exécutez la commande suivante :$ tar cvaf must-gather.tar.gz must-gather.local.5421342344627712289/ 1
- 1
- Veillez à remplacer
must-gather-local.5421342344627712289/
par le nom réel du répertoire.
- Joignez le fichier compressé à votre demande d'assistance sur le portail client de Red Hat.
5.2. Ressources supplémentaires
- Collecte de données de débogage pour le Custom Metrics Autoscaler.
5.2.1. Collecte des journaux d'audit
Vous pouvez collecter des journaux d'audit, qui sont un ensemble chronologique d'enregistrements relatifs à la sécurité documentant la séquence des activités qui ont affecté le système par des utilisateurs individuels, des administrateurs ou d'autres composants du système. Vous pouvez collecter des journaux d'audit pour :
- serveur etcd
- Serveur API Kubernetes
- Serveur OpenShift OAuth API
- Serveur API OpenShift
Procédure
Exécutez la commande
oc adm must-gather
avec-- /usr/bin/gather_audit_logs
:$ oc adm must-gather -- /usr/bin/gather_audit_logs
Créez un fichier compressé à partir du répertoire
must-gather
qui vient d'être créé dans votre répertoire de travail. Par exemple, sur un ordinateur utilisant un système d'exploitation Linux, exécutez la commande suivante :$ tar cvaf must-gather.tar.gz must-gather.local.472290403699006248 1
- 1
- Remplacez
must-gather-local.472290403699006248
par le nom du répertoire.
- Joignez le fichier compressé à votre demande d'assistance sur le portail client de Red Hat.
5.2.2. Collecte de journaux de réseau
Vous pouvez collecter des journaux de réseau sur tous les nœuds d'une grappe.
Procédure
Exécutez la commande
oc adm must-gather
avec-- gather_network_logs
:$ oc adm must-gather -- gather_network_logs
Créez un fichier compressé à partir du répertoire
must-gather
qui vient d'être créé dans votre répertoire de travail. Par exemple, sur un ordinateur utilisant un système d'exploitation Linux, exécutez la commande suivante :$ tar cvaf must-gather.tar.gz must-gather.local.472290403699006248 1
- 1
- Remplacez
must-gather-local.472290403699006248
par le nom du répertoire.
- Joignez le fichier compressé à votre demande d'assistance sur le portail client de Red Hat.
5.3. Obtention de l'identifiant du cluster
Lorsque vous fournissez des informations à l'assistance Red Hat, il est utile de fournir l'identifiant unique de votre cluster. Vous pouvez faire en sorte que l'identifiant de votre cluster soit rempli automatiquement en utilisant la console web d'OpenShift Container Platform. Vous pouvez également obtenir manuellement l'identifiant de votre cluster en utilisant la console Web ou l'OpenShift CLI (oc
).
Conditions préalables
-
Accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Accès à la console web ou à l'OpenShift CLI (
oc
) installé.
Procédure
Pour ouvrir un dossier d'assistance et faire remplir automatiquement votre ID de cluster à l'aide de la console web :
- Dans la barre d'outils, naviguez vers (?) Help → Open Support Case.
- La valeur Cluster ID est remplie automatiquement.
Pour obtenir manuellement votre ID de cluster à l'aide de la console web :
- Naviguez vers Home → Dashboards → Overview.
- La valeur est disponible dans le champ Cluster ID de la section Details.
Pour obtenir l'ID de votre cluster à l'aide de l'OpenShift CLI (
oc
), exécutez la commande suivante :$ oc get clusterversion -o jsonpath='{.items[].spec.clusterID}{"\n"}'
5.4. À propos de sosreport
sosreport
est un outil qui collecte des détails de configuration, des informations sur le système et des données de diagnostic à partir des systèmes Red Hat Enterprise Linux (RHEL) et Red Hat Enterprise Linux CoreOS (RHCOS). sosreport
fournit un moyen standardisé de collecter des informations de diagnostic relatives à un nœud, qui peuvent ensuite être fournies à l'assistance Red Hat pour le diagnostic des problèmes.
Dans certaines interactions d'assistance, l'assistance Red Hat peut vous demander de collecter une archive sosreport
pour un nœud OpenShift Container Platform spécifique. Par exemple, il peut parfois être nécessaire d'examiner les journaux du système ou d'autres données spécifiques au nœud qui ne sont pas incluses dans la sortie de oc adm must-gather
.
5.5. Générer une archive sosreport pour un nœud de cluster OpenShift Container Platform
La manière recommandée de générer un sosreport
pour un nœud de cluster OpenShift Container Platform 4.12 est à travers un pod de débogage.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Vous avez un accès SSH à vos hôtes.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un abonnement standard ou premium Red Hat.
- Vous disposez d'un compte Red Hat Customer Portal.
- Vous avez un numéro d'identification de dossier d'assistance Red Hat existant.
Procédure
Obtenir une liste des nœuds de la grappe :
$ oc get nodes
Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod de débogage appelé
<node_name>-debug
:$ oc debug node/my-cluster-node
Pour entrer dans une session de débogage sur le nœud cible entaché de l'effet
NoExecute
, ajoutez une tolérance à un espace de noms fictif et démarrez le module de débogage dans l'espace de noms fictif :$ oc new-project dummy
$ oc patch namespace dummy --type=merge -p '{"metadata": {"annotations": { "scheduler.alpha.kubernetes.io/defaultTolerations": "[{\"operator\": \"Exists\"}]"}}}'
$ oc debug node/my-cluster-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Démarrer un conteneur
toolbox
, qui contient les binaires et les plugins nécessaires à l'exécution desosreport
:# toolbox
NoteSi un pod
toolbox
est déjà en cours d'exécution, la commandetoolbox
produit'toolbox-' already exists. Trying to start…
. Supprimez le conteneur de boîte à outils en cours d'exécution avecpodman rm toolbox-
et créez un nouveau conteneur de boîte à outils, afin d'éviter tout problème avec les pluginssosreport
.Collecter des archives sur le site
sosreport
.Exécutez la commande
sosreport
et activez les pluginscrio.all
etcrio.logs
CRI-O container enginesosreport
:# sosreport -k crio.all=on -k crio.logs=on 1
- 1
-k
vous permet de définir les paramètres du pluginsosreport
en dehors des paramètres par défaut.
- Appuyez sur Enter lorsque vous y êtes invité, pour continuer.
-
Fournissez l'identifiant du dossier d'assistance de Red Hat.
sosreport
ajoute l'identifiant au nom de fichier de l'archive. La sortie
sosreport
indique l'emplacement de l'archive et la somme de contrôle. L'exemple de sortie suivant fait référence à l'identifiant de cas de support01234567
:Your sosreport has been generated and saved in: /host/var/tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz 1 The checksum is: 382ffc167510fd71b4f12a4f40b97a4e
- 1
- Le chemin d'accès au fichier de l'archive
sosreport
se trouve en dehors de l'environnementchroot
car le conteneur de la boîte à outils monte le répertoire racine de l'hôte à l'adresse/host
.
Fournissez l'archive
sosreport
à l'assistance Red Hat pour analyse, en utilisant l'une des méthodes suivantes.Téléchargez le fichier vers un cas d'assistance Red Hat existant directement à partir d'un cluster OpenShift Container Platform.
Depuis le conteneur de la boîte à outils, exécutez
redhat-support-tool
pour attacher l'archive directement à un dossier d'assistance Red Hat existant. Cet exemple utilise l'ID de cas d'assistance01234567
:# redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-sosreport.tar.xz 1
- 1
- Le conteneur Toolbox monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur Toolbox, y compris/host/
, lorsque vous spécifiez les fichiers à télécharger par le biais de la commanderedhat-support-tool
.
Téléchargez le fichier vers un dossier d'assistance Red Hat existant.
Concaténer l'archive
sosreport
en exécutant la commandeoc debug node/<node_name>
et rediriger la sortie vers un fichier. Cette commande suppose que vous avez quitté la sessionoc debug
précédente :$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz' > /tmp/sosreport-my-cluster-node-01234567-2020-05-28-eyjknxt.tar.xz 1
- 1
- Le conteneur de débogage monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur de débogage, y compris/host
, lorsque vous spécifiez les fichiers cibles pour la concaténation.
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. Le transfert d'une archive
sosreport
à partir d'un nœud de cluster en utilisantscp
n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible de copier une archivesosreport
à partir d'un nœud en exécutantscp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>
.- Accédez à un dossier d'assistance existant sur https://access.redhat.com/support/cases/.
- Sélectionnez Attach files et suivez les instructions pour télécharger le fichier.
5.6. Interrogation des journaux du nœud d'amorce
Si vous rencontrez des problèmes liés à l'amorçage, vous pouvez rassembler les journaux de l'unité bootkube.service
journald
et les journaux des conteneurs à partir du nœud d'amorçage.
Conditions préalables
- Vous avez un accès SSH à votre nœud d'amorçage.
- Vous avez le nom de domaine complet du nœud d'amorce.
Procédure
Interroger
bootkube.service
journald
unit logs from a bootstrap node during OpenShift Container Platform installation. Remplacez<bootstrap_fqdn>
par le nom de domaine complet du nœud d'amorçage :$ ssh core@<bootstrap_fqdn> journalctl -b -f -u bootkube.service
NoteThe
bootkube.service
log on the bootstrap node outputs etcdconnection refused
errors, indicating that the bootstrap server is unable to connect to etcd on control plane nodes. After etcd has started on each control plane node and the nodes have joined the cluster, the errors should stop.Collectez les journaux des conteneurs du nœud d'amorçage en utilisant
podman
sur le nœud d'amorçage. Remplacez<bootstrap_fqdn>
par le nom de domaine complet du nœud d'amorçage :$ ssh core@<bootstrap_fqdn> 'for pod in $(sudo podman ps -a -q) ; do sudo podman logs $pod ; done'
5.7. Interroger les journaux des nœuds de cluster
Vous pouvez rassembler les journaux de l'unité journald
et d'autres journaux dans /var/log
sur des nœuds de cluster individuels.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
Procédure
Requête
kubelet
journald
journaux d'unité des nœuds de cluster OpenShift Container Platform. L'exemple suivant interroge uniquement les nœuds du plan de contrôle :$ oc adm node-logs --role=master -u kubelet 1
- 1
- Remplacer
kubelet
le cas échéant pour interroger d'autres journaux d'unité.
Collecte des journaux à partir de sous-répertoires spécifiques sous
/var/log/
sur les nœuds de la grappe.Récupérer la liste des journaux contenus dans un sous-répertoire
/var/log/
. L'exemple suivant répertorie les fichiers de/var/log/openshift-apiserver/
sur tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver
Inspecter un journal spécifique dans un sous-répertoire
/var/log/
. L'exemple suivant affiche le contenu de/var/log/openshift-apiserver/audit.log
pour tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
Si l'API n'est pas fonctionnelle, examinez les journaux sur chaque nœud en utilisant SSH à la place. L'exemple suivant est une queue
/var/log/openshift-apiserver/audit.log
:$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
5.8. Méthodes de traçage des réseaux
La collecte de traces de réseau, sous la forme d'enregistrements de capture de paquets, peut aider l'assistance Red Hat à dépanner les problèmes de réseau.
OpenShift Container Platform prend en charge deux façons d'effectuer un traçage réseau. Consultez le tableau suivant et choisissez la méthode qui répond à vos besoins.
Tableau 5.2. Méthodes prises en charge pour la collecte d'une trace de réseau
Méthode | Avantages et capacités |
---|---|
Collecte d'une trace du réseau de l'hôte | Vous effectuez une capture de paquets pendant une durée que vous spécifiez sur un ou plusieurs nœuds en même temps. Les fichiers de capture de paquets sont transférés des nœuds vers la machine cliente lorsque la durée spécifiée est atteinte. Vous pouvez déterminer pourquoi une action spécifique déclenche des problèmes de communication réseau. Exécutez la capture de paquets, effectuez l'action qui déclenche le problème et utilisez les journaux pour diagnostiquer le problème. |
Collecte d'une trace réseau à partir d'un nœud ou d'un conteneur OpenShift Container Platform |
Vous effectuez une capture de paquets sur un nœud ou un conteneur. Vous exécutez la commande Vous pouvez lancer la capture de paquets manuellement, déclencher le problème de communication réseau, puis arrêter la capture de paquets manuellement.
Cette méthode utilise la commande |
5.9. Collecte d'une trace du réseau de l'hôte
Parfois, le dépannage d'un problème lié au réseau est simplifié par le traçage des communications réseau et la capture des paquets sur plusieurs nœuds en même temps.
Vous pouvez utiliser une combinaison de la commande oc adm must-gather
et de l'image conteneur registry.redhat.io/openshift4/network-tools-rhel8
pour collecter des captures de paquets à partir des nœuds. L'analyse des captures de paquets peut vous aider à résoudre les problèmes de communication du réseau.
La commande oc adm must-gather
est utilisée pour exécuter la commande tcpdump
dans des modules sur des nœuds spécifiques. La commande tcpdump
enregistre les captures de paquets dans les modules. Lorsque la commande tcpdump
se termine, la commande oc adm must-gather
transfère les fichiers contenant les captures de paquets des modules vers votre ordinateur client.
L'exemple de commande de la procédure suivante montre comment réaliser une capture de paquets à l'aide de la commande tcpdump
. Cependant, vous pouvez exécuter n'importe quelle commande dans l'image de conteneur spécifiée dans l'argument --image
pour recueillir des informations de dépannage à partir de plusieurs nœuds en même temps.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Effectuez une capture de paquets à partir du réseau hôte sur certains nœuds en exécutant la commande suivante :
$ oc adm must-gather \ --dest-dir /tmp/captures \ <.> --source-dir '/tmp/tcpdump/' \ <.> --image registry.redhat.io/openshift4/network-tools-rhel8:latest \ <.> --node-selector 'node-role.kubernetes.io/worker' \ <.> --host-network=true \ <.> --timeout 30s \ <.> -- \ tcpdump -i any \ <.> -w /tmp/tcpdump/%Y-%m-%dT%H:%M:%S.pcap -W 1 -G 300
<.> L'argument
--dest-dir
spécifie queoc adm must-gather
stocke les captures de paquets dans des répertoires relatifs à/tmp/captures
sur la machine cliente. Vous pouvez spécifier n'importe quel répertoire accessible en écriture. <.> Lorsquetcpdump
est exécuté dans le pod de débogage queoc adm must-gather
démarre, l'argument--source-dir
spécifie que les captures de paquets sont temporairement stockées dans le répertoire/tmp/tcpdump
sur le pod. <.> L'argument--image
spécifie une image de conteneur qui inclut la commandetcpdump
. <.> L'argument--node-selector
et la valeur de l'exemple spécifient d'effectuer les captures de paquets sur les nœuds de travail. Vous pouvez également spécifier l'argument--node-name
pour exécuter la capture de paquets sur un seul noeud. Si vous omettez les arguments--node-selector
et--node-name
, les captures de paquets sont effectuées sur tous les nœuds. <.> L'argument--host-network=true
est nécessaire pour que les captures de paquets soient effectuées sur les interfaces réseau du noeud. <.> L'argument--timeout
et la valeur spécifient l'exécution du pod de débogage pendant 30 secondes. Si vous ne spécifiez pas l'argument--timeout
et une durée, le module de débogage s'exécute pendant 10 minutes. <.> L'argument-i any
de la commandetcpdump
spécifie la capture des paquets sur toutes les interfaces réseau. Vous pouvez également spécifier un nom d'interface réseau.- Effectuez l'action, telle que l'accès à une application web, qui déclenche le problème de communication réseau pendant que la trace réseau capture les paquets.
Examinez les fichiers de capture de paquets que
oc adm must-gather
a transférés des pods à votre ordinateur client :tmp/captures ├── event-filter.html ├── ip-10-0-192-217-ec2-internal 1 │ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca... │ └── 2022-01-13T19:31:31.pcap ├── ip-10-0-201-178-ec2-internal 2 │ └── registry-redhat-io-openshift4-network-tools-rhel8-sha256-bca... │ └── 2022-01-13T19:31:30.pcap ├── ip-... └── timestamp
5.10. Collecte d'une trace réseau à partir d'un nœud ou d'un conteneur OpenShift Container Platform
Lors de l'investigation de problèmes potentiels liés au réseau dans OpenShift Container Platform, le support Red Hat peut demander une trace de paquet réseau à partir d'un nœud de cluster OpenShift Container Platform spécifique ou à partir d'un conteneur spécifique. La méthode recommandée pour capturer une trace de réseau dans OpenShift Container Platform est d'utiliser un pod de débogage.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un abonnement standard ou premium Red Hat.
- Vous disposez d'un compte Red Hat Customer Portal.
- Vous avez un numéro d'identification de dossier d'assistance Red Hat existant.
- Vous avez un accès SSH à vos hôtes.
Procédure
Obtenir une liste des nœuds de la grappe :
$ oc get nodes
Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod de débogage appelé
<node_name>-debug
:$ oc debug node/my-cluster-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Dans la console de l'environnement
chroot
, obtenez les noms des interfaces du nœud :# ip ad
Démarrer un conteneur
toolbox
, qui contient les binaires et les plugins nécessaires à l'exécution desosreport
:# toolbox
NoteSi un pod
toolbox
est déjà en cours d'exécution, la commandetoolbox
produit'toolbox-' already exists. Trying to start…
. Pour éviter les problèmes liés àtcpdump
, supprimez le conteneur de boîte à outils en cours d'exécution avecpodman rm toolbox-
et créez un nouveau conteneur de boîte à outils.Lancez une session
tcpdump
sur le nœud du cluster et redirigez la sortie vers un fichier de capture. Cet exemple utiliseens5
comme nom d'interface :$ tcpdump -nn -s 0 -i ens5 -w /host/var/tmp/my-cluster-node_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap 1
- 1
- Le chemin d'accès au fichier de capture
tcpdump
se trouve en dehors de l'environnementchroot
car le conteneur de la boîte à outils monte le répertoire racine de l'hôte à l'adresse/host
.
Si une capture
tcpdump
est requise pour un conteneur spécifique sur le nœud, procédez comme suit.Déterminez l'ID du conteneur cible. La commande
chroot host
précède la commandecrictl
dans cette étape car le conteneur toolbox monte le répertoire racine de l'hôte à l'adresse/host
:# chroot /host crictl ps
Déterminer l'ID du processus du conteneur. Dans cet exemple, l'ID du conteneur est
a7fe32346b120
:# chroot /host crictl inspect --output yaml a7fe32346b120 | grep 'pid' | awk '{print $2}'
Lancez une session
tcpdump
sur le conteneur et redirigez la sortie vers un fichier de capture. Cet exemple utilise49628
comme ID de processus du conteneur etens5
comme nom d'interface. La commandensenter
entre dans l'espace de noms d'un processus cible et exécute une commande dans son espace de noms. Comme le processus cible dans cet exemple est l'ID de processus d'un conteneur, la commandetcpdump
est exécutée dans l'espace de noms du conteneur à partir de l'hôte :# nsenter -n -t 49628 -- tcpdump -nn -i ens5 -w /host/var/tmp/my-cluster-node-my-container_$(date +%d_%m_%Y-%H_%M_%S-%Z).pcap.pcap 1
- 1
- Le chemin d'accès au fichier de capture
tcpdump
se trouve en dehors de l'environnementchroot
car le conteneur de la boîte à outils monte le répertoire racine de l'hôte à l'adresse/host
.
Fournissez le fichier de capture
tcpdump
à l'assistance technique de Red Hat pour analyse, en utilisant l'une des méthodes suivantes.Téléchargez le fichier vers un cas d'assistance Red Hat existant directement à partir d'un cluster OpenShift Container Platform.
Depuis le conteneur de la boîte à outils, exécutez
redhat-support-tool
pour joindre le fichier directement à un cas d'assistance Red Hat existant. Cet exemple utilise l'ID de cas d'assistance01234567
:# redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-tcpdump-capture-file.pcap 1
- 1
- Le conteneur Toolbox monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur Toolbox, y compris/host/
, lorsque vous spécifiez les fichiers à télécharger par le biais de la commanderedhat-support-tool
.
Téléchargez le fichier vers un dossier d'assistance Red Hat existant.
Concaténer l'archive
sosreport
en exécutant la commandeoc debug node/<node_name>
et rediriger la sortie vers un fichier. Cette commande suppose que vous avez quitté la sessionoc debug
précédente :$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-tcpdump-capture-file.pcap' > /tmp/my-tcpdump-capture-file.pcap 1
- 1
- Le conteneur de débogage monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur de débogage, y compris/host
, lorsque vous spécifiez les fichiers cibles pour la concaténation.
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. Le transfert d'un fichier de capture
tcpdump
à partir d'un nœud de cluster en utilisantscp
n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible de copier un fichier de capturetcpdump
à partir d'un nœud en exécutantscp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>
.- Accédez à un dossier d'assistance existant sur https://access.redhat.com/support/cases/.
- Sélectionnez Attach files et suivez les instructions pour télécharger le fichier.
5.11. Fournir des données de diagnostic au service d'assistance de Red Hat
Lors de l'investigation de problèmes liés à OpenShift Container Platform, l'assistance Red Hat peut vous demander de télécharger des données de diagnostic vers un dossier d'assistance. Les fichiers peuvent être téléchargés vers un dossier d'assistance via le portail client Red Hat, ou depuis un cluster OpenShift Container Platform directement à l'aide de la commande redhat-support-tool
.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Vous avez un accès SSH à vos hôtes.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un abonnement standard ou premium Red Hat.
- Vous disposez d'un compte Red Hat Customer Portal.
- Vous avez un numéro d'identification de dossier d'assistance Red Hat existant.
Procédure
Télécharger les données de diagnostic vers un cas d'assistance Red Hat existant via le portail client de Red Hat.
Concaténer un fichier de diagnostic contenu sur un nœud OpenShift Container Platform en utilisant la commande
oc debug node/<node_name>
et rediriger la sortie vers un fichier. L'exemple suivant copie/host/var/tmp/my-diagnostic-data.tar.gz
d'un conteneur de débogage vers/var/tmp/my-diagnostic-data.tar.gz
:$ oc debug node/my-cluster-node -- bash -c 'cat /host/var/tmp/my-diagnostic-data.tar.gz' > /var/tmp/my-diagnostic-data.tar.gz 1
- 1
- Le conteneur de débogage monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur de débogage, y compris/host
, lorsque vous spécifiez les fichiers cibles pour la concaténation.
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. Le transfert de fichiers depuis un nœud de cluster en utilisant
scp
n'est pas recommandé et les nœuds seront entachés comme accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible de copier les fichiers de diagnostic d'un nœud en exécutantscp core@<node>.<cluster_name>.<base_domain>:<file_path> <local_path>
.- Accédez à un dossier d'assistance existant sur https://access.redhat.com/support/cases/.
- Sélectionnez Attach files et suivez les instructions pour télécharger le fichier.
Télécharger des données de diagnostic vers un cas d'assistance Red Hat existant directement depuis un cluster OpenShift Container Platform.
Obtenir une liste des nœuds de la grappe :
$ oc get nodes
Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod de débogage appelé
<node_name>-debug
:$ oc debug node/my-cluster-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Démarrer un conteneur
toolbox
, qui contient les binaires nécessaires à l'exécution deredhat-support-tool
:# toolbox
NoteSi un pod
toolbox
est déjà en cours d'exécution, la commandetoolbox
produit'toolbox-' already exists. Trying to start…
. Supprimez le conteneur de boîte à outils en cours d'exécution avecpodman rm toolbox-
et créez un nouveau conteneur de boîte à outils, pour éviter tout problème.Exécutez
redhat-support-tool
pour joindre un fichier du pod de débogage directement à un cas d'assistance Red Hat existant. Cet exemple utilise l'ID de cas d'assistance '01234567' et le chemin d'accès du fichier d'exemple/host/var/tmp/my-diagnostic-data.tar.gz
:# redhat-support-tool addattachment -c 01234567 /host/var/tmp/my-diagnostic-data.tar.gz 1
- 1
- Le conteneur Toolbox monte le répertoire racine de l'hôte à l'adresse
/host
. Faites référence au chemin absolu du répertoire racine du conteneur Toolbox, y compris/host/
, lorsque vous spécifiez les fichiers à télécharger par le biais de la commanderedhat-support-tool
.
5.12. A propos de toolbox
toolbox
est un outil qui permet de démarrer un conteneur sur un système Red Hat Enterprise Linux CoreOS (RHCOS). L'outil est principalement utilisé pour démarrer un conteneur qui inclut les binaires et les plugins nécessaires à l'exécution de commandes telles que sosreport
et redhat-support-tool
.
L'objectif premier d'un conteneur toolbox
est de rassembler des informations de diagnostic et de les fournir à l'équipe d'assistance de Red Hat. Cependant, si des outils de diagnostic supplémentaires sont nécessaires, vous pouvez ajouter des paquets RPM ou exécuter une image qui est une alternative à l'image standard des outils de support.
Installation de paquets dans un conteneur toolbox
Par défaut, la commande toolbox
lance un conteneur avec l'image registry.redhat.io/rhel8/support-tools:latest
. Cette image contient les outils d'assistance les plus fréquemment utilisés. Si vous devez collecter des données spécifiques à un nœud nécessitant un outil d'assistance qui ne fait pas partie de l'image, vous pouvez installer des paquets supplémentaires.
Conditions préalables
-
Vous avez accédé à un nœud avec la commande
oc debug node/<node_name>
.
Procédure
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
Démarrer le conteneur de la boîte à outils :
# toolbox
Installez le paquet supplémentaire, tel que
wget
:# dnf install -y <nom_du_paquet>
Démarrage d'une image alternative avec toolbox
Par défaut, la commande toolbox
lance un conteneur avec l'image registry.redhat.io/rhel8/support-tools:latest
. Vous pouvez démarrer une autre image en créant un fichier .toolboxrc
et en spécifiant l'image à exécuter.
Conditions préalables
-
Vous avez accédé à un nœud avec la commande
oc debug node/<node_name>
.
Procédure
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
Créez un fichier
.toolboxrc
dans le répertoire personnel de l'utilisateur root :# vi ~/.toolboxrc
REGISTRY=quay.io 1 IMAGE=fedora/fedora:33-x86_64 2 TOOLBOX_NAME=toolbox-fedora-33 3
Démarrer un conteneur de boîte à outils avec l'image alternative :
# toolbox
NoteSi un pod
toolbox
est déjà en cours d'exécution, la commandetoolbox
produit'toolbox-' already exists. Trying to start…
. Supprimez le conteneur de boîte à outils en cours d'exécution avecpodman rm toolbox-
et créez un nouveau conteneur de boîte à outils, afin d'éviter tout problème avec les pluginssosreport
.
Chapitre 6. Résumé des spécifications des grappes d'entreprises
6.1. Résumer les spécifications des grappes d'entreprises grâce à clusterversion
Vous pouvez obtenir un résumé des spécifications des clusters OpenShift Container Platform en interrogeant la ressource clusterversion
.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Interroger la version du cluster, sa disponibilité, son temps de fonctionnement et son état général :
$ oc get clusterversion
Obtenir un résumé détaillé des spécifications de la grappe, de la disponibilité des mises à jour et de l'historique des mises à jour :
$ oc describe clusterversion
Chapitre 7. Résolution de problèmes
7.1. Dépannage des installations
7.1.1. Déterminer où se situent les problèmes d'installation
Lors du dépannage des problèmes d'installation d'OpenShift Container Platform, vous pouvez surveiller les journaux d'installation pour déterminer à quelle étape les problèmes surviennent. Vous pouvez ensuite récupérer les données de diagnostic correspondant à cette étape.
L'installation d'OpenShift Container Platform se déroule selon les étapes suivantes :
- Les fichiers de configuration d'Ignition sont créés.
- La machine d'amorçage démarre et commence à héberger les ressources distantes nécessaires au démarrage des machines du plan de contrôle.
- Les machines du plan de contrôle récupèrent les ressources distantes de la machine d'amorçage et terminent le démarrage.
- Les machines du plan de contrôle utilisent la machine bootstrap pour former un cluster etcd.
- La machine d'amorçage démarre un plan de contrôle Kubernetes temporaire en utilisant le nouveau cluster etcd.
- Le plan de contrôle temporaire planifie le plan de contrôle de production sur les machines du plan de contrôle.
- Le plan de contrôle temporaire s'arrête et passe le contrôle au plan de contrôle de production.
- La machine d'amorçage ajoute des composants OpenShift Container Platform dans le plan de contrôle de la production.
- Le programme d'installation arrête la machine de démarrage.
- Le plan de contrôle met en place les nœuds de travail.
- Le plan de contrôle installe des services supplémentaires sous la forme d'un ensemble d'opérateurs.
- Le cluster télécharge et configure les autres composants nécessaires au fonctionnement quotidien, y compris la création de machines de travail dans les environnements pris en charge.
7.1.2. Considérations relatives à l'installation de l'infrastructure fournie par l'utilisateur
La méthode d'installation par défaut utilise l'infrastructure fournie par l'installateur. Avec les clusters d'infrastructure provisionnés par l'installateur, OpenShift Container Platform gère tous les aspects du cluster, y compris le système d'exploitation lui-même. Si possible, utilisez cette fonctionnalité pour éviter d'avoir à provisionner et à maintenir l'infrastructure du cluster.
Vous pouvez également installer OpenShift Container Platform 4.12 sur une infrastructure que vous fournissez. Si vous utilisez cette méthode d'installation, suivez attentivement la documentation d'installation de l'infrastructure fournie par l'utilisateur. En outre, examinez les considérations suivantes avant l'installation :
- Consultez l'écosystème Red Hat Enterprise Linux (RHEL) pour déterminer le niveau de support de Red Hat Enterprise Linux CoreOS (RHCOS) fourni pour le matériel serveur ou la technologie de virtualisation que vous avez choisis.
- De nombreux environnements de virtualisation et de cloud nécessitent l'installation d'agents sur les systèmes d'exploitation invités. Veillez à ce que ces agents soient installés en tant que charge de travail conteneurisée déployée par l'intermédiaire d'un ensemble de démons.
Installez l'intégration des fournisseurs de cloud si vous souhaitez activer des fonctionnalités telles que le stockage dynamique, le routage de services à la demande, la résolution du nom d'hôte du nœud par rapport au nom d'hôte Kubernetes et la mise à l'échelle automatique du cluster.
NoteIl n'est pas possible d'activer l'intégration des fournisseurs de cloud dans les environnements OpenShift Container Platform qui mélangent des ressources provenant de différents fournisseurs de cloud, ou qui couvrent plusieurs plateformes physiques ou virtuelles. Le contrôleur du cycle de vie des nœuds ne permet pas d'ajouter à un cluster des nœuds externes au fournisseur existant, et il n'est pas possible de spécifier plus d'une intégration de fournisseur de cloud.
- Une implémentation de l'API Machine spécifique au fournisseur est nécessaire si vous souhaitez utiliser des ensembles de machines ou l'autoscaling pour provisionner automatiquement les nœuds de cluster de OpenShift Container Platform.
- Vérifiez si le fournisseur de cloud que vous avez choisi propose une méthode pour injecter les fichiers de configuration d'Ignition dans les hôtes dans le cadre de leur déploiement initial. Si ce n'est pas le cas, vous devrez héberger les fichiers de configuration Ignition en utilisant un serveur HTTP. Les étapes à suivre pour résoudre les problèmes liés aux fichiers de configuration d'Ignition diffèrent selon la méthode utilisée.
- Le stockage doit être provisionné manuellement si vous souhaitez exploiter des composants optionnels du framework tels que le registre de conteneurs intégré, Elasticsearch ou Prometheus. Les classes de stockage par défaut ne sont pas définies dans les installations d'infrastructure provisionnées par l'utilisateur, à moins qu'elles ne soient explicitement configurées.
- Un équilibreur de charge est nécessaire pour distribuer les demandes d'API sur tous les nœuds du plan de contrôle dans les environnements OpenShift Container Platform hautement disponibles. Vous pouvez utiliser n'importe quelle solution d'équilibrage de charge basée sur TCP qui répond aux exigences de routage DNS et de port de OpenShift Container Platform.
7.1.3. Vérifier la configuration d'un équilibreur de charge avant l'installation d'OpenShift Container Platform
Vérifiez la configuration de votre équilibreur de charge avant de commencer l'installation d'OpenShift Container Platform.
Conditions préalables
- Vous avez configuré un équilibreur de charge externe de votre choix, en préparation d'une installation d'OpenShift Container Platform. L'exemple suivant est basé sur un hôte Red Hat Enterprise Linux (RHEL) utilisant HAProxy pour fournir des services d'équilibrage de charge à un cluster.
- Vous avez configuré le DNS en vue de l'installation d'OpenShift Container Platform.
- Vous avez un accès SSH à votre équilibreur de charge.
Procédure
Vérifiez que le service
haproxy
systemd est actif :$ ssh <user_name>@<load_balancer> systemctl status haproxy
Vérifiez que l'équilibreur de charge écoute sur les ports requis. L'exemple suivant fait référence aux ports
80
,443
,6443
et22623
.Pour les instances HAProxy fonctionnant sous Red Hat Enterprise Linux (RHEL) 6, vérifiez l'état des ports à l'aide de la commande
netstat
:$ ssh <user_name>@<load_balancer> netstat -nltupe | grep -E ':80|:443|:6443|:22623'
Pour les instances HAProxy fonctionnant sous Red Hat Enterprise Linux (RHEL) 7 ou 8, vérifiez l'état des ports à l'aide de la commande
ss
:$ ssh <user_name>@<load_balancer> ss -nltupe | grep -E ':80|:443|:6443|:22623'
NoteRed Hat recommande la commande
ss
au lieu denetstat
dans Red Hat Enterprise Linux (RHEL) 7 ou une version ultérieure.ss
est fourni par le paquetage iproute. Pour plus d'informations sur la commandess
, consultez le Guide d'optimisation des performances de Red Hat Enterprise Linux (RHEL) 7.
Vérifiez que l'enregistrement DNS générique se résout vers l'équilibreur de charge :
$ dig <wildcard_fqdn> @<dns_server>
7.1.4. Spécifier les niveaux de journalisation du programme d'installation d'OpenShift Container Platform
Par défaut, le niveau de journalisation du programme d'installation d'OpenShift Container Platform est défini sur info
. Si une journalisation plus détaillée est nécessaire lors du diagnostic d'un échec de l'installation d'OpenShift Container Platform, vous pouvez augmenter le niveau de journalisation de openshift-install
à debug
lors du redémarrage de l'installation.
Conditions préalables
- You have access to the installation host.
Procédure
Définissez le niveau du journal d'installation sur
debug
lorsque vous lancez l'installation :$ ./openshift-install --dir <installation_directory> wait-for bootstrap-complete --log-level debug 1
- 1
- Les niveaux d'enregistrement possibles sont
info
,warn
,error,
etdebug
.
7.1.5. Résolution des problèmes liés à la commande openshift-install
Si vous rencontrez des problèmes lors de l'exécution de la commande openshift-install
, vérifiez les points suivants :
L'installation a été lancée dans les 24 heures suivant la création du fichier de configuration Ignition. Les fichiers Ignition sont créés lorsque la commande suivante est exécutée :
$ ./openshift-install create ignition-configs --dir=./install_dir
-
Le fichier
install-config.yaml
se trouve dans le même répertoire que le programme d'installation. Si un autre chemin d'installation est déclaré à l'aide de l'option./openshift-install --dir
, vérifiez que le fichierinstall-config.yaml
existe dans ce répertoire.
7.1.6. Suivi de l'avancement de l'installation
Vous pouvez surveiller les journaux d'installation de haut niveau, de bootstrap et de plan de contrôle au fur et à mesure que l'installation d'OpenShift Container Platform progresse. Cela permet d'avoir une meilleure visibilité sur la progression d'une installation et d'identifier l'étape à laquelle un échec d'installation se produit.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
Vous disposez des noms de domaine pleinement qualifiés des nœuds du plan d'amorçage et du plan de contrôle.
NoteLe mot de passe initial de
kubeadmin
se trouve dans<install_directory>/auth/kubeadmin-password
sur l'hôte d'installation.
Procédure
Observez le journal d'installation au fur et à mesure que l'installation progresse :
$ tail -f ~/<installation_directory>/.openshift_install.log
Surveillez le journal
bootkube.service
journald unit log sur le nœud d'amorçage, après qu'il ait démarré. Cela permet d'avoir une visibilité sur le démarrage du premier plan de contrôle. Remplacez<bootstrap_fqdn>
par le nom de domaine complet du nœud d'amorçage :$ ssh core@<bootstrap_fqdn> journalctl -b -f -u bootkube.service
NoteThe
bootkube.service
log on the bootstrap node outputs etcdconnection refused
errors, indicating that the bootstrap server is unable to connect to etcd on control plane nodes. After etcd has started on each control plane node and the nodes have joined the cluster, the errors should stop.Surveillez les journaux de l'unité
kubelet.service
journald sur les nœuds du plan de contrôle, après leur démarrage. Cela permet d'avoir une visibilité sur l'activité des agents des nœuds du plan de contrôle.Surveillez les journaux à l'aide de
oc
:$ oc adm node-logs --role=master -u kubelet
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<master-node>.<cluster_name>.<base_domain> journalctl -b -f -u kubelet.service
Surveillez les journaux de l'unité
crio.service
journald sur les nœuds du plan de contrôle, après leur démarrage. Cela permet d'avoir une visibilité sur l'activité d'exécution des conteneurs CRI-O sur les nœuds du plan de contrôle.Surveillez les journaux à l'aide de
oc
:$ oc adm node-logs --role=master -u crio
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@master-N.cluster_name.sub_domain.domain journalctl -b -f -u crio.service
7.1.7. Collecte des données de diagnostic du nœud d'amorçage
Lorsque vous rencontrez des problèmes liés au démarrage, vous pouvez rassembler les journaux de l'unité bootkube.service
journald
et les journaux des conteneurs à partir du nœud de démarrage.
Conditions préalables
- Vous avez un accès SSH à votre nœud d'amorçage.
- Vous avez le nom de domaine complet du nœud d'amorce.
- Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP, vous devez avoir le nom de domaine complet du serveur HTTP et le numéro de port. Vous devez également disposer d'un accès SSH à l'hôte HTTP.
Procédure
- Si vous avez accès à la console du nœud d'amorce, surveillez la console jusqu'à ce que le nœud atteigne l'invite de connexion.
Vérifier la configuration du fichier Ignition.
Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP.
Vérifier l'URL du fichier Ignition du nœud d'amorçage. Remplacer
<http_server_fqdn>
par le nom de domaine complet du serveur HTTP :$ curl -I http://<http_server_fqdn>:<port>/bootstrap.ign 1
- 1
- L'option
-I
renvoie uniquement l'en-tête. Si le fichier Ignition est disponible sur l'URL spécifiée, la commande renvoie l'état200 OK
. S'il n'est pas disponible, la commande renvoie l'état404 file not found
.
Pour vérifier que le fichier Ignition a été reçu par le nœud d'amorçage, interrogez les journaux du serveur HTTP sur l'hôte d'accueil. Par exemple, si vous utilisez un serveur web Apache pour servir les fichiers Ignition, entrez la commande suivante :
$ grep -is 'bootstrap.ign' /var/log/httpd/access_log
Si le fichier Ignition bootstrap est reçu, le message de journal
HTTP GET
associé inclura un état de réussite200 OK
, indiquant que la demande a réussi.- Si le fichier Ignition n'a pas été reçu, vérifiez que les fichiers Ignition existent et qu'ils disposent des autorisations de fichier et de serveur web appropriées sur l'hôte serveur directement.
Si vous utilisez un mécanisme de fournisseur de cloud pour injecter des fichiers de configuration Ignition dans les hôtes dans le cadre de leur déploiement initial.
- Examinez la console du nœud d'amorce pour déterminer si le mécanisme injecte correctement le fichier Ignition du nœud d'amorce.
- Vérifier la disponibilité de l'unité de stockage assignée au nœud d'amorce.
- Vérifiez qu'une adresse IP a été attribuée au nœud d'amorçage par le serveur DHCP.
Collecter les journaux de l'unité
bootkube.service
journald du nœud d'amorçage. Remplacez<bootstrap_fqdn>
par le nom de domaine complet du nœud d'amorçage :$ ssh core@<bootstrap_fqdn> journalctl -b -f -u bootkube.service
NoteThe
bootkube.service
log on the bootstrap node outputs etcdconnection refused
errors, indicating that the bootstrap server is unable to connect to etcd on control plane nodes. After etcd has started on each control plane node and the nodes have joined the cluster, the errors should stop.Collecter les journaux des conteneurs du nœud d'amorçage.
Collectez les journaux en utilisant
podman
sur le nœud d'amorçage. Remplacez<bootstrap_fqdn>
par le nom de domaine complet du nœud d'amorçage :$ ssh core@<bootstrap_fqdn> 'for pod in $(sudo podman ps -a -q) ; do sudo podman logs $pod ; done'
Si le processus d'amorçage échoue, vérifiez les points suivants.
-
Vous pouvez résoudre le problème
api.<cluster_name>.<base_domain>
à partir de l'hôte d'installation. - L'équilibreur de charge assure le proxy des connexions du port 6443 vers les nœuds d'amorçage et de plan de contrôle. Assurez-vous que la configuration du proxy est conforme aux exigences d'installation d'OpenShift Container Platform.
-
Vous pouvez résoudre le problème
7.1.8. Étude des problèmes d'installation des nœuds du plan de contrôle
Si vous rencontrez des problèmes d'installation du nœud du plan de contrôle, déterminez le réseau défini par logiciel (SDN) du nœud du plan de contrôle et l'état de l'opérateur réseau. Recueillez les journaux des unités kubelet.service
, crio.service
journald et les journaux des conteneurs du nœud du plan de contrôle pour avoir une visibilité sur l'agent du nœud du plan de contrôle, le temps d'exécution du conteneur CRI-O et l'activité du pod.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
- Vous disposez des noms de domaine pleinement qualifiés des nœuds du plan d'amorçage et du plan de contrôle.
Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP, vous devez avoir le nom de domaine complet du serveur HTTP et le numéro de port. Vous devez également disposer d'un accès SSH à l'hôte HTTP.
NoteLe mot de passe initial de
kubeadmin
se trouve dans<install_directory>/auth/kubeadmin-password
sur l'hôte d'installation.
Procédure
- Si vous avez accès à la console du nœud du plan de contrôle, surveillez la console jusqu'à ce que le nœud atteigne l'invite de connexion. Pendant l'installation, les messages du journal Ignition sont envoyés à la console.
Vérifier la configuration du fichier d'allumage.
Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP.
Vérifier l'URL du fichier Ignition du nœud du plan de contrôle. Remplacez
<http_server_fqdn>
par le nom de domaine complet du serveur HTTP :$ curl -I http://<http_server_fqdn>:<port>/master.ign 1
- 1
- L'option
-I
renvoie uniquement l'en-tête. Si le fichier Ignition est disponible sur l'URL spécifiée, la commande renvoie l'état200 OK
. S'il n'est pas disponible, la commande renvoie l'état404 file not found
.
Pour vérifier que le fichier Ignition a été reçu par le nœud du plan de contrôle, interrogez les journaux du serveur HTTP sur l'hôte serveur. Par exemple, si vous utilisez un serveur web Apache pour servir les fichiers Ignition :
$ grep -is 'master.ign' /var/log/httpd/access_log
Si le fichier maître Ignition est reçu, le message de journal
HTTP GET
associé inclura un état de réussite200 OK
, indiquant que la demande a réussi.- Si le fichier Ignition n'a pas été reçu, vérifiez qu'il existe directement sur l'hôte serveur. Assurez-vous que les autorisations appropriées pour les fichiers et le serveur web sont en place.
Si vous utilisez un mécanisme de fournisseur de cloud pour injecter des fichiers de configuration Ignition dans les hôtes dans le cadre de leur déploiement initial.
- Examinez la console du nœud du plan de contrôle pour déterminer si le mécanisme injecte correctement le fichier d'ignition du nœud du plan de contrôle.
- Vérifier la disponibilité de l'unité de stockage affectée au nœud du plan de contrôle.
- Vérifiez qu'une adresse IP a été attribuée au nœud du plan de contrôle par le serveur DHCP.
Déterminer l'état des nœuds du plan de contrôle.
Demande l'état des nœuds du plan de contrôle :
$ oc get nodes
Si l'un des nœuds du plan de contrôle n'atteint pas l'état
Ready
, récupérez une description détaillée du nœud :oc describe node <master_node>
NoteIl n'est pas possible d'exécuter les commandes
oc
si un problème d'installation empêche l'API OpenShift Container Platform de fonctionner ou si le kubelet ne fonctionne pas encore sur chaque nœud :
Déterminer le statut SDN de la plateforme OpenShift Container.
Examinez l'état des jeux de démons
sdn-controller
,sdn
etovs
dans l'espace de nomsopenshift-sdn
:$ oc get daemonsets -n openshift-sdn
Si ces ressources sont répertoriées comme
Not found
, examinez les pods dans l'espace de nomsopenshift-sdn
:$ oc get pods -n openshift-sdn
Examinez les journaux relatifs aux pods SDN de OpenShift Container Platform qui ont échoué dans l'espace de noms
openshift-sdn
:$ oc logs <sdn_pod> -n openshift-sdn
Déterminer l'état de la configuration du réseau de la grappe.
Vérifiez si la configuration du réseau de la grappe existe :
$ oc get network.config.openshift.io cluster -o yaml
Si le programme d'installation n'a pas réussi à créer la configuration réseau, générez à nouveau les manifestes Kubernetes et examinez les messages :
$ ./openshift-install create manifests
Examinez l'état du pod dans l'espace de noms
openshift-network-operator
pour déterminer si le Cluster Network Operator (CNO) est en cours d'exécution :$ oc get pods -n openshift-network-operator
Rassemble les journaux des pods de l'opérateur réseau de l'espace de noms
openshift-network-operator
:oc logs pod/<network_operator_pod_name> -n openshift-network-operator
Surveillez les journaux de l'unité
kubelet.service
journald sur les nœuds du plan de contrôle, après leur démarrage. Cela permet d'avoir une visibilité sur l'activité des agents des nœuds du plan de contrôle.Récupérez les journaux à l'aide de
oc
:$ oc adm node-logs --role=master -u kubelet
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<master-node>.<cluster_name>.<base_domain> journalctl -b -f -u kubelet.service
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
Récupérer les journaux de l'unité
crio.service
journald sur les nœuds du plan de contrôle, après leur démarrage. Cela permet de connaître l'activité d'exécution des conteneurs CRI-O sur les nœuds du plan de contrôle.Récupérez les journaux à l'aide de
oc
:$ oc adm node-logs --role=master -u crio
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant plutôt SSH :
$ ssh core@<master-node>.<cluster_name>.<base_domain> journalctl -b -f -u crio.service
Collecter les journaux dans des sous-répertoires spécifiques sous
/var/log/
sur les nœuds du plan de contrôle.Récupérer la liste des journaux contenus dans un sous-répertoire
/var/log/
. L'exemple suivant répertorie les fichiers de/var/log/openshift-apiserver/
sur tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver
Inspecter un journal spécifique dans un sous-répertoire
/var/log/
. L'exemple suivant affiche le contenu de/var/log/openshift-apiserver/audit.log
pour tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
Si l'API n'est pas fonctionnelle, examinez les journaux sur chaque nœud en utilisant SSH à la place. L'exemple suivant est une queue
/var/log/openshift-apiserver/audit.log
:$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log
Examiner les journaux des conteneurs du nœud du plan de contrôle à l'aide de SSH.
Dressez la liste des conteneurs :
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl ps -a
Récupérer les journaux d'un conteneur en utilisant
crictl
:$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
Si vous rencontrez des problèmes de configuration des nœuds du plan de contrôle, vérifiez que le MCO, le point de terminaison MCO et l'enregistrement DNS fonctionnent. Le MCO (Machine Config Operator) gère la configuration du système d'exploitation pendant la procédure d'installation. Vérifiez également l'exactitude de l'horloge du système et la validité du certificat.
Tester si le point de terminaison MCO est disponible. Remplacer
<cluster_name>
par les valeurs appropriées :$ curl https://api-int.<cluster_name>:22623/config/master
- Si le point d'accès ne répond pas, vérifiez la configuration de l'équilibreur de charge. Assurez-vous que le point d'accès est configuré pour fonctionner sur le port 22623.
Vérifiez que l'enregistrement DNS du point d'extrémité MCO est configuré et qu'il se résout vers l'équilibreur de charge.
Lancer une recherche DNS pour le nom du point de terminaison MCO défini :
$ dig api-int.<cluster_name> @<dns_server>
Effectuez une recherche inversée de l'adresse IP MCO attribuée sur l'équilibreur de charge :
$ dig -x <load_balancer_mco_ip_address> @<dns_server>
Vérifiez que le MCO fonctionne directement à partir du nœud de démarrage. Remplacez
<bootstrap_fqdn>
par le nom de domaine pleinement qualifié du nœud d'amorce :$ ssh core@<bootstrap_fqdn> curl https://api-int.<cluster_name>:22623/config/master
L'heure de l'horloge système doit être synchronisée entre les nœuds de démarrage, maître et subordonné. Vérifiez l'heure de référence de l'horloge système de chaque nœud et les statistiques de synchronisation du temps :
$ ssh core@<node>.<cluster_name>.<base_domain> chronyc tracking
Examiner la validité du certificat :
openssl s_client -connect api-int.<cluster_name>:22623 | openssl x509 -noout -text
7.1.9. Investigation des problèmes d'installation d'etcd
Si vous rencontrez des problèmes avec etcd pendant l'installation, vous pouvez vérifier l'état des pods etcd et collecter les journaux des pods etcd. Vous pouvez également vérifier les enregistrements DNS etcd et vérifier la disponibilité des DNS sur les nœuds du plan de contrôle.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
- Vous disposez des noms de domaine complets des nœuds du plan de contrôle.
Procédure
Vérifier l'état des pods etcd.
Examiner l'état des pods dans l'espace de noms
openshift-etcd
:$ oc get pods -n openshift-etcd
Examiner l'état des pods dans l'espace de noms
openshift-etcd-operator
:$ oc get pods -n openshift-etcd-operator
Si l'un des pods répertoriés par les commandes précédentes n'affiche pas un état
Running
ouCompleted
, recueillez des informations de diagnostic pour le pod.Examiner les événements pour le pod :
oc describe pod/<nom_du_pod> -n <espace_de_noms>
Inspecter les journaux de bord de la nacelle :
oc logs pod/<nom_du_pod> -n <espace-noms>
Si le pod a plus d'un conteneur, la commande précédente créera une erreur et les noms des conteneurs seront fournis dans le message d'erreur. Examinez les journaux de chaque conteneur :
oc logs pod/<nom_du_pod> -c <nom_du_conteneur> -n <espace_de_noms>
Si l'API n'est pas fonctionnelle, examinez les journaux des pods et des conteneurs etcd sur chaque nœud du plan de contrôle en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées.Liste des pods etcd sur chaque nœud du plan de contrôle :
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl pods --name=etcd-
Pour tout pod n'affichant pas l'état
Ready
, inspectez l'état du pod en détail. Remplacez<pod_id>
par l'ID du pod indiqué dans la sortie de la commande précédente :$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspectp <pod_id>
Liste des conteneurs liés à un pod :
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl ps | grep '<pod_id>'
Pour tous les conteneurs qui n'affichent pas le statut
Ready
, inspectez le statut du conteneur en détail. Remplacez<container_id>
par les ID des conteneurs répertoriés dans la sortie de la commande précédente :$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspect <container_id>
Examinez les journaux pour tous les conteneurs qui n'affichent pas le statut
Ready
. Remplacez<container_id>
par les ID des conteneurs répertoriés dans la sortie de la commande précédente :$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
- Valider la connectivité des serveurs DNS primaire et secondaire à partir des nœuds du plan de contrôle.
7.1.10. Investigation des problèmes liés aux nœuds du plan de contrôle, aux kubelets et au serveur API
Pour étudier les problèmes liés au nœud du plan de contrôle, au kubelet et au serveur API pendant l'installation, vérifiez le fonctionnement du DNS, du DHCP et de l'équilibreur de charge. Vérifiez également que les certificats n'ont pas expiré.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
- Vous disposez des noms de domaine complets des nœuds du plan de contrôle.
Procédure
-
Vérifiez que l'enregistrement DNS du serveur API dirige le kubelet sur les nœuds du plan de contrôle vers
https://api-int.<cluster_name>.<base_domain>:6443
. Assurez-vous que l'enregistrement fait référence à l'équilibreur de charge. - Assurez-vous que la définition du port 6443 de l'équilibreur de charge fait référence à chaque nœud du plan de contrôle.
- Vérifier que des noms d'hôtes uniques de nœuds de plan de contrôle ont été fournis par DHCP.
Inspectez les journaux de l'unité
kubelet.service
journald sur chaque nœud du plan de contrôle.Récupérez les journaux à l'aide de
oc
:$ oc adm node-logs --role=master -u kubelet
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<master-node>.<cluster_name>.<base_domain> journalctl -b -f -u kubelet.service
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
Vérifier les messages d'expiration des certificats dans les journaux des kubelets du nœud du plan de contrôle.
Récupérez le journal en utilisant
oc
:$ oc adm node-logs --role=master -u kubelet | grep -is 'x509: certificate has expired'
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<master-node>.<cluster_name>.<base_domain> journalctl -b -f -u kubelet.service | grep -is 'x509: certificate has expired'
7.1.11. Enquête sur les problèmes d'installation des nœuds de travail
Si vous rencontrez des problèmes lors de l'installation du nœud de travail, vous pouvez vérifier l'état du nœud de travail. Collectez les journaux des unités kubelet.service
, crio.service
journald et les journaux du conteneur du nœud ouvrier pour avoir une visibilité sur l'agent du nœud ouvrier, le temps d'exécution du conteneur CRI-O et l'activité du pod. En outre, vous pouvez vérifier le fichier Ignition et la fonctionnalité Machine API Operator. Si la configuration post-installation du nœud ouvrier échoue, vérifiez les fonctionnalités MCO (Machine Config Operator) et DNS. Vous pouvez également vérifier la synchronisation de l'horloge système entre les nœuds bootstrap, maître et travailleur, et valider les certificats.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
- Vous disposez des noms de domaine complets des nœuds de démarrage et des nœuds de travail.
Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP, vous devez avoir le nom de domaine complet du serveur HTTP et le numéro de port. Vous devez également disposer d'un accès SSH à l'hôte HTTP.
NoteLe mot de passe initial de
kubeadmin
se trouve dans<install_directory>/auth/kubeadmin-password
sur l'hôte d'installation.
Procédure
- Si vous avez accès à la console du nœud de travail, surveillez la console jusqu'à ce que le nœud atteigne l'invite de connexion. Pendant l'installation, les messages du journal Ignition sont envoyés à la console.
Vérifier la configuration du fichier d'allumage.
Si vous hébergez les fichiers de configuration d'Ignition en utilisant un serveur HTTP.
Vérifiez l'URL du fichier Ignition du nœud de travail. Remplacez
<http_server_fqdn>
par le nom de domaine complet du serveur HTTP :$ curl -I http://<http_server_fqdn>:<port>/worker.ign 1
- 1
- L'option
-I
renvoie uniquement l'en-tête. Si le fichier Ignition est disponible sur l'URL spécifiée, la commande renvoie l'état200 OK
. S'il n'est pas disponible, la commande renvoie l'état404 file not found
.
Pour vérifier que le fichier Ignition a été reçu par le nœud de travail, interrogez les journaux du serveur HTTP sur l'hôte HTTP. Par exemple, si vous utilisez un serveur web Apache pour servir les fichiers Ignition :
$ grep -is 'worker.ign' /var/log/httpd/access_log
Si le fichier Ignition du travailleur est reçu, le message de journal
HTTP GET
associé inclura un état de réussite200 OK
, indiquant que la demande a réussi.- Si le fichier Ignition n'a pas été reçu, vérifiez qu'il existe directement sur l'hôte serveur. Assurez-vous que les autorisations appropriées pour les fichiers et le serveur web sont en place.
Si vous utilisez un mécanisme de fournisseur de cloud pour injecter des fichiers de configuration Ignition dans les hôtes dans le cadre de leur déploiement initial.
- Examinez la console du nœud de travail pour déterminer si le mécanisme injecte correctement le fichier Ignition du nœud de travail.
- Vérifier la disponibilité de l'unité de stockage assignée au nœud de travail.
- Vérifiez qu'une adresse IP a été attribuée au nœud de travail par le serveur DHCP.
Déterminer l'état des nœuds de travail.
Demande l'état du nœud :
$ oc get nodes
Récupérer une description détaillée du nœud pour tout nœud de travailleur n'affichant pas l'état
Ready
:oc describe node <worker_node> $ oc describe node <worker_node>
NoteIl n'est pas possible d'exécuter les commandes
oc
si un problème d'installation empêche l'API OpenShift Container Platform de fonctionner ou si le kubelet ne fonctionne pas encore sur chaque nœud.
Contrairement aux nœuds du plan de contrôle, les nœuds de travailleur sont déployés et mis à l'échelle à l'aide de l'opérateur API Machine. Vérifiez l'état de l'opérateur API Machine.
Examiner le statut du pod de l'opérateur API de la machine :
$ oc get pods -n openshift-machine-api
Si le pod Opérateur API Machine n'a pas de statut
Ready
, détaillez les événements du pod :$ oc describe pod/<machine_api_operator_pod_name> -n openshift-machine-api
Inspecter les journaux du conteneur
machine-api-operator
. Le conteneur s'exécute dans le podmachine-api-operator
:oc logs pod/<machine_api_operator_pod_name> -n openshift-machine-api -c machine-api-operator
Inspectez également les journaux du conteneur
kube-rbac-proxy
. Le conteneur s'exécute également dans le podmachine-api-operator
:oc logs pod/<machine_api_operator_pod_name> -n openshift-machine-api -c kube-rbac-proxy
Surveillez les journaux de l'unité
kubelet.service
journald sur les nœuds de travail, après leur démarrage. Cela permet d'avoir une visibilité sur l'activité des agents des nœuds de travail.Récupérez les journaux à l'aide de
oc
:$ oc adm node-logs --role=worker -u kubelet
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<worker-node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<worker-node>.<cluster_name>.<base_domain> journalctl -b -f -u kubelet.service
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
Récupérer les journaux de l'unité
crio.service
journald sur les noeuds de travail, après qu'ils aient démarré. Cela permet d'avoir une visibilité sur l'activité d'exécution des conteneurs CRI-O sur les nœuds de travail.Récupérez les journaux à l'aide de
oc
:$ oc adm node-logs --role=worker -u crio
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant plutôt SSH :
$ ssh core@<worker-node>.<cluster_name>.<base_domain> journalctl -b -f -u crio.service
Collecte des journaux à partir de sous-répertoires spécifiques sous
/var/log/
sur les nœuds de travail.Récupérer la liste des journaux contenus dans un sous-répertoire
/var/log/
. L'exemple suivant répertorie les fichiers contenus dans/var/log/sssd/
sur tous les nœuds de travail :$ oc adm node-logs --role=worker --path=sssd
Inspecter un journal spécifique dans un sous-répertoire
/var/log/
. L'exemple suivant affiche le contenu de/var/log/sssd/audit.log
à partir de tous les nœuds de travail :$ oc adm node-logs --role=worker --path=sssd/sssd.log
Si l'API n'est pas fonctionnelle, examinez les journaux sur chaque nœud en utilisant SSH à la place. L'exemple suivant est une queue
/var/log/sssd/sssd.log
:$ ssh core@<worker-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/sssd/sssd.log
Examinez les journaux des conteneurs des nœuds de travail à l'aide de SSH.
Dressez la liste des conteneurs :
$ ssh core@<worker-node>.<cluster_name>.<base_domain> sudo crictl ps -a
Récupérer les journaux d'un conteneur en utilisant
crictl
:$ ssh core@<worker-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
Si vous rencontrez des problèmes de configuration des nœuds de travail, vérifiez que le MCO, le point de terminaison MCO et l'enregistrement DNS fonctionnent. Le MCO (Machine Config Operator) gère la configuration du système d'exploitation pendant la procédure d'installation. Vérifiez également l'exactitude de l'horloge du système et la validité du certificat.
Tester si le point de terminaison MCO est disponible. Remplacer
<cluster_name>
par les valeurs appropriées :$ curl https://api-int.<cluster_name>:22623/config/worker
- Si le point d'accès ne répond pas, vérifiez la configuration de l'équilibreur de charge. Assurez-vous que le point d'accès est configuré pour fonctionner sur le port 22623.
Vérifiez que l'enregistrement DNS du point d'extrémité MCO est configuré et qu'il se résout vers l'équilibreur de charge.
Lancer une recherche DNS pour le nom du point de terminaison MCO défini :
$ dig api-int.<cluster_name> @<dns_server>
Effectuez une recherche inversée de l'adresse IP MCO attribuée sur l'équilibreur de charge :
$ dig -x <load_balancer_mco_ip_address> @<dns_server>
Vérifiez que le MCO fonctionne directement à partir du nœud de démarrage. Remplacez
<bootstrap_fqdn>
par le nom de domaine pleinement qualifié du nœud d'amorce :$ ssh core@<bootstrap_fqdn> curl https://api-int.<cluster_name>:22623/config/worker
L'heure de l'horloge système doit être synchronisée entre les nœuds de démarrage, maître et subordonné. Vérifiez l'heure de référence de l'horloge système de chaque nœud et les statistiques de synchronisation du temps :
$ ssh core@<node>.<cluster_name>.<base_domain> chronyc tracking
Examiner la validité du certificat :
openssl s_client -connect api-int.<cluster_name>:22623 | openssl x509 -noout -text
7.1.12. Interroger le statut de l'opérateur après l'installation
Vous pouvez vérifier l'état de l'opérateur à la fin d'une installation. Récupérer les données de diagnostic pour les opérateurs qui ne sont pas disponibles. Examiner les journaux pour tous les pods d'opérateurs qui sont répertoriés comme Pending
ou qui ont un statut d'erreur. Valider les images de base utilisées par les modules problématiques.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Vérifier que les opérateurs de cluster sont tous disponibles à la fin d'une installation.
$ oc get clusteroperators
Vérifiez que toutes les demandes de signature de certificat (CSR) requises sont approuvées. Certains nœuds peuvent ne pas passer à l'état
Ready
et certains opérateurs de cluster peuvent ne pas être disponibles s'il y a des CSR en attente.Vérifiez l'état des CSR et assurez-vous que vous voyez une requête client et serveur avec l'état
Pending
ouApproved
pour chaque machine que vous avez ajoutée au cluster :$ oc get csr
Exemple de sortie
NAME AGE REQUESTOR CONDITION csr-8b2br 15m system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending 1 csr-8vnps 15m system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending csr-bfd72 5m26s system:node:ip-10-0-50-126.us-east-2.compute.internal Pending 2 csr-c57lv 5m26s system:node:ip-10-0-95-157.us-east-2.compute.internal Pending ...
In this example, two machines are joining the cluster. You might see more approved CSRs in the list.
If the CSRs were not approved, after all of the pending CSRs for the machines you added are in
Pending
status, approve the CSRs for your cluster machines:NoteÉtant donné que les CSR tournent automatiquement, approuvez-les dans l'heure qui suit l'ajout des machines à la grappe. Si vous ne les approuvez pas dans l'heure qui suit, les certificats tourneront et il y aura plus de deux certificats pour chaque nœud. Vous devez approuver tous ces certificats. Une fois que vous avez approuvé les CSR initiaux, les CSR des clients des nœuds suivants sont automatiquement approuvés par le cluster
kube-controller-manager
.NoteFor clusters running on platforms that are not machine API enabled, such as bare metal and other user-provisioned infrastructure, you must implement a method of automatically approving the kubelet serving certificate requests (CSRs). If a request is not approved, then the
oc exec
,oc rsh
, andoc logs
commands cannot succeed, because a serving certificate is required when the API server connects to the kubelet. Any operation that contacts the Kubelet endpoint requires this certificate approval to be in place. The method must watch for new CSRs, confirm that the CSR was submitted by thenode-bootstrapper
service account in thesystem:node
orsystem:admin
groups, and confirm the identity of the node.To approve them individually, run the following command for each valid CSR:
$ oc adm certificate approve <csr_name> 1
- 1
<csr_name>
est le nom d'un CSR figurant dans la liste des CSR actuels.
To approve all pending CSRs, run the following command:
$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approve
Voir les événements de l'opérateur :
oc describe clusteroperator <nom_opérateur>
Examiner le statut du pod de l'opérateur dans l'espace nominatif de l'opérateur :
oc get pods -n <operator_namespace>
Obtenir une description détaillée pour les pods qui n'ont pas le statut
Running
:$ oc describe pod/<operator_pod_name> -n <operator_namespace>
Inspecter les journaux de bord :
oc logs pod/<operator_pod_name> -n <operator_namespace>
En cas de problèmes liés à l'image de la base du pod, vérifier l'état de l'image de la base.
Obtenir les détails de l'image de base utilisée par un pod problématique :
$ oc get pod -o \N "jsonpath={range .status.containerStatuses[*]}{.name}{'\t'}{.state}{'\t'}{.image}{'\n'}{end}\N" <operator_pod_name> -n <operator_namespace>
Liste des informations de validation des images de base :
$ oc adm release info <image_path>:<tag> --commits
7.1.13. Gathering logs from a failed installation
If you gave an SSH key to your installation program, you can gather data about your failed installation.
You use a different command to gather logs about an unsuccessful installation than to gather logs from a running cluster. If you must gather logs from a running cluster, use the oc adm must-gather
command.
Conditions préalables
- Your OpenShift Container Platform installation failed before the bootstrap process finished. The bootstrap node is running and accessible through SSH.
-
The
ssh-agent
process is active on your computer, and you provided the same SSH key to both thessh-agent
process and the installation program. - If you tried to install a cluster on infrastructure that you provisioned, you must have the fully qualified domain names of the bootstrap and control plane nodes.
Procédure
Generate the commands that are required to obtain the installation logs from the bootstrap and control plane machines:
If you used installer-provisioned infrastructure, change to the directory that contains the installation program and run the following command:
./openshift-install gather bootstrap --dir <installation_directory> $ ./openshift-install gather bootstrap --dir <installation_directory> 1
- 1
installation_directory
is the directory you specified when you ran./openshift-install create cluster
. This directory contains the OpenShift Container Platform definition files that the installation program creates.
For installer-provisioned infrastructure, the installation program stores information about the cluster, so you do not specify the hostnames or IP addresses.
If you used infrastructure that you provisioned yourself, change to the directory that contains the installation program and run the following command:
$ ./openshift-install gather bootstrap --dir <installation_directory> \ 1 --bootstrap <bootstrap_address> \ 2 --master <master_1_address> \ 3 --master <master_2_address> \ 4 --master <master_3_address>" 5
- 1
- For
installation_directory
, specify the same directory you specified when you ran./openshift-install create cluster
. This directory contains the OpenShift Container Platform definition files that the installation program creates. - 2
<bootstrap_address>
is the fully qualified domain name or IP address of the cluster’s bootstrap machine.- 3 4 5
- For each control plane, or master, machine in your cluster, replace
<master_*_address>
with its fully qualified domain name or IP address.
NoteA default cluster contains three control plane machines. List all of your control plane machines as shown, no matter how many your cluster uses.
Exemple de sortie
INFO Pulling debug logs from the bootstrap machine INFO Bootstrap gather logs captured here "<installation_directory>/log-bundle-<timestamp>.tar.gz"
If you open a Red Hat support case about your installation failure, include the compressed logs in the case.
7.1.14. Ressources supplémentaires
- Voir Processus d'installation pour plus de détails sur les types et processus d'installation d'OpenShift Container Platform.
7.2. Vérification de l'état des nœuds
7.2.1. Examen de l'état des nœuds, de l'utilisation des ressources et de la configuration
Examinez l'état de santé des nœuds de la grappe, les statistiques de consommation des ressources et les journaux des nœuds. Vous pouvez également consulter le site kubelet
pour connaître l'état de chaque nœud.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Liste le nom, l'état et le rôle de tous les nœuds de la grappe :
$ oc get nodes
Résumez l'utilisation de l'unité centrale et de la mémoire pour chaque nœud de la grappe :
$ oc adm top nodes
Résume l'utilisation de l'unité centrale et de la mémoire pour un nœud spécifique :
$ oc adm top node my-node
7.2.2. Interroger l'état du kubelet sur un nœud
Vous pouvez consulter l'état de santé des nœuds de la grappe, les statistiques de consommation des ressources et les journaux des nœuds. En outre, vous pouvez consulter l'état de kubelet
sur des nœuds individuels.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Le kubelet est géré à l'aide d'un service systemd sur chaque nœud. Examinez l'état du kubelet en interrogeant le service systemd de
kubelet
dans un pod de débogage.Démarrer un pod de débogage pour un nœud :
$ oc debug node/my-node
NoteSi vous exécutez
oc debug
sur un nœud du plan de contrôle, vous trouverez les fichiers administratifskubeconfig
dans le répertoire/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/node-kubeconfigs
.Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster d'OpenShift Container Platform exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si
kubelet
ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Vérifiez si le service
kubelet
systemd est actif sur le nœud :# systemctl is-active kubelet
Affiche un résumé plus détaillé de l'état de
kubelet.service
:# systemctl status kubelet
7.2.3. Interroger les journaux des nœuds de cluster
Vous pouvez rassembler les journaux de l'unité journald
et d'autres journaux dans /var/log
sur des nœuds de cluster individuels.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez un accès SSH à vos hôtes.
Procédure
Requête
kubelet
journald
journaux d'unité des nœuds de cluster OpenShift Container Platform. L'exemple suivant interroge uniquement les nœuds du plan de contrôle :$ oc adm node-logs --role=master -u kubelet 1
- 1
- Remplacer
kubelet
le cas échéant pour interroger d'autres journaux d'unité.
Collecte des journaux à partir de sous-répertoires spécifiques sous
/var/log/
sur les nœuds de la grappe.Récupérer la liste des journaux contenus dans un sous-répertoire
/var/log/
. L'exemple suivant répertorie les fichiers de/var/log/openshift-apiserver/
sur tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver
Inspecter un journal spécifique dans un sous-répertoire
/var/log/
. L'exemple suivant affiche le contenu de/var/log/openshift-apiserver/audit.log
pour tous les nœuds du plan de contrôle :$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
Si l'API n'est pas fonctionnelle, examinez les journaux sur chaque nœud en utilisant SSH à la place. L'exemple suivant est une queue
/var/log/openshift-apiserver/audit.log
:$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
7.3. Résolution des problèmes liés à l'exécution du conteneur CRI-O
7.3.1. A propos du moteur d'exécution de conteneurs CRI-O
CRI-O est une implémentation de moteur de conteneur natif de Kubernetes qui s'intègre étroitement avec le système d'exploitation pour fournir une expérience Kubernetes efficace et optimisée. Le moteur de conteneurs CRI-O s'exécute en tant que service systemd sur chaque nœud de cluster OpenShift Container Platform.
Lorsque des problèmes d'exécution des conteneurs surviennent, vérifiez l'état du service crio
systemd sur chaque nœud. Rassemblez les journaux de l'unité CRI-O journald des nœuds qui présentent des problèmes d'exécution des conteneurs.
7.3.2. Vérification de l'état du moteur d'exécution CRI-O
Vous pouvez vérifier l'état du moteur d'exécution des conteneurs CRI-O sur chaque nœud du cluster.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Examinez l'état du CRI-O en interrogeant le service
crio
systemd sur un nœud, à l'intérieur d'un pod de débogage.Démarrer un pod de débogage pour un nœud :
$ oc debug node/my-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Vérifiez si le service
crio
systemd est actif sur le nœud :# systemctl is-active crio
Affiche un résumé plus détaillé de l'état de
crio.service
:# systemctl status crio.service
7.3.3. Collecte des journaux d'unité du CRI-O
Si vous rencontrez des problèmes avec CRI-O, vous pouvez obtenir les journaux de l'unité CRI-O d'un nœud.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous disposez des noms de domaine complets du plan de contrôle ou des machines du plan de contrôle.
Procédure
Rassembler les journaux de l'unité CRI-O journald. L'exemple suivant collecte les journaux de tous les nœuds du plan de contrôle (au sein de la grappe) :
$ oc adm node-logs --role=master -u crio
Rassemble les journaux de l'unité CRI-O journald d'un nœud spécifique :
$ oc adm node-logs <node_name> -u crio
Si l'API n'est pas fonctionnelle, examinez les journaux en utilisant SSH à la place. Remplacez
<node>.<cluster_name>.<base_domain>
par les valeurs appropriées :$ ssh core@<node>.<cluster_name>.<base_domain> journalctl -b -f -u crio.service
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
7.3.4. Nettoyage de l'entrepôt CRI-O
Vous pouvez effacer manuellement la mémoire éphémère de CRI-O si vous rencontrez les problèmes suivants :
Un nœud ne peut s'exécuter sur aucun pod et cette erreur apparaît :
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to mount container XXX: error recreating the missing symlinks: error reading name of symlink for XXX: open /var/lib/containers/storage/overlay/XXX/link: no such file or directory
Vous ne pouvez pas créer un nouveau conteneur sur un nœud de travail et l'erreur "can't stat lower layer" apparaît :
can't stat lower layer ... because it does not exist. Going through storage to recreate the missing symlinks.
-
Votre nœud est dans l'état
NotReady
après une mise à niveau du cluster ou si vous tentez de le redémarrer. -
L'implémentation de l'exécution du conteneur (
crio
) ne fonctionne pas correctement. -
Vous ne pouvez pas démarrer un shell de débogage sur le nœud utilisant
oc debug node/<nodename>
car l'instance d'exécution du conteneur (crio
) ne fonctionne pas.
Suivez cette procédure pour effacer complètement la mémoire du CRI-O et résoudre les erreurs.
Prérequis :
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Utiliser
cordon
sur le nœud. Cela permet d'éviter qu'une charge de travail ne soit planifiée si le nœud passe à l'étatReady
. Vous saurez que la planification est désactivée lorsqueSchedulingDisabled
apparaîtra dans votre section Statut :$ oc adm cordon <nodename>
Drainer le nœud en tant qu'utilisateur cluster-admin :
oc adm drain <nodename> --ignore-daemonsets --delete-emptydir-data
NoteL'attribut
terminationGracePeriodSeconds
d'un pod ou d'un modèle de pod contrôle la période de terminaison gracieuse. Cet attribut est fixé par défaut à 30 secondes, mais peut être personnalisé par application si nécessaire. S'il est fixé à plus de 90 secondes, le module peut être marqué commeSIGKILLed
et ne pas se terminer avec succès.Lorsque le nœud revient, connectez-vous à nouveau au nœud via SSH ou la console. Ensuite, connectez-vous à l'utilisateur root :
$ ssh core@node1.example.com $ sudo -i
Arrêter manuellement le kubelet :
# systemctl stop kubelet
Arrêter les conteneurs et les cosses :
Utilisez la commande suivante pour arrêter les pods qui ne se trouvent pas dans le site
HostNetwork
. Ils doivent être supprimés en premier car leur suppression dépend des pods du plugin de mise en réseau, qui se trouvent dans le siteHostNetwork
... for pod in $(crictl pods -q); do if [[ "$(crictl inspectp $pod | jq -r .status.linux.namespaces.options.network)" != "NODE" ]]; then crictl rmp -f $pod; fi; done
Arrêter toutes les autres nacelles :
# crictl rmp -fa
Arrêter manuellement les services crio :
# systemctl stop crio
Après avoir exécuté ces commandes, vous pouvez effacer complètement le stockage éphémère :
# crio wipe -f
Démarrer le service crio et kubelet :
# systemctl start crio # systemctl start kubelet
Vous saurez que le nettoyage a fonctionné si les services crio et kubelet sont démarrés et si le nœud est dans l'état
Ready
:$ oc get nodes
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-tkbxyft-f76d1-nvwhr-master-1 Ready, SchedulingDisabled master 133m v1.25.0
Marquez le nœud comme étant planifiable. Vous saurez que l'ordonnancement est activé lorsque
SchedulingDisabled
n'aura plus d'état :oc adm uncordon <nodename> $ oc adm uncordon <nodename>
Exemple de sortie
NAME STATUS ROLES AGE VERSION ci-ln-tkbxyft-f76d1-nvwhr-master-1 Ready master 133m v1.25.0
7.4. Dépannage des problèmes liés au système d'exploitation
OpenShift Container Platform fonctionne sous RHCOS. Vous pouvez suivre ces procédures pour résoudre les problèmes liés au système d'exploitation.
7.4.1. Enquêter sur les pannes du noyau
Le service kdump
, inclus dans le paquetage kexec-tools
, fournit un mécanisme de crash-dump. Vous pouvez utiliser ce service pour sauvegarder le contenu de la mémoire d'un système en vue d'une analyse ultérieure.
L'architecture x86_64
supporte kdump en état de disponibilité générale (GA), tandis que les autres architectures supportent kdump en état d'aperçu technologique (TP).
Le tableau suivant fournit des détails sur le niveau de support de kdump pour différentes architectures.
Tableau 7.1. Prise en charge de Kdump dans RHCOS
Architecture | Niveau de soutien |
---|---|
|
GA |
|
TP |
|
TP |
|
TP |
La prise en charge de Kdump, pour les trois architectures précédentes dans le tableau, est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information au cours du processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
7.4.1.1. Activation de kdump
RHCOS est livré avec le paquetage kexec-tools
, mais une configuration manuelle est nécessaire pour activer le service kdump
.
Procédure
Effectuez les étapes suivantes pour activer kdump sur RHCOS.
Pour réserver de la mémoire pour le noyau de crash lors du premier démarrage du noyau, fournissez des arguments au noyau en entrant la commande suivante :
# rpm-ostree kargs --append='crashkernel=256M'
Facultatif : Pour écrire le crash dump sur le réseau ou à un autre endroit, plutôt qu'à l'emplacement local par défaut de
/var/crash
, modifiez le fichier de configuration de/etc/kdump.conf
.NoteSi votre nœud utilise des dispositifs cryptés LUKS, vous devez utiliser des vidages de réseau, car kdump ne prend pas en charge l'enregistrement des vidages de collisions sur des dispositifs cryptés LUKS.
Pour plus de détails sur la configuration du service
kdump
, voir les commentaires dans/etc/sysconfig/kdump
,/etc/kdump.conf
, et la page de manuelkdump.conf
. Consultez également la documentation RHEL kdump pour plus d'informations sur la configuration de la cible de vidage.Activez le service
kdump
systemd.# systemctl enable kdump.service
Redémarrez votre système.
# systemctl reboot
-
Assurez-vous que kdump a chargé un noyau en panne en vérifiant que le service
kdump.service
systemd a démarré et s'est arrêté avec succès et que la commande,cat /sys/kernel/kexec_crash_loaded
, affiche la valeur1
.
7.4.1.2. Activation de kdump au jour 1
Le service kdump
est destiné à être activé par nœud pour déboguer les problèmes du noyau. Étant donné que l'activation de kdump a un coût et que ce coût s'accumule avec chaque nœud supplémentaire activé par kdump, il est recommandé de n'activer le service kdump
sur chaque nœud qu'en cas de besoin. Les coûts potentiels de l'activation du service kdump
sur chaque nœud sont les suivants :
- Moins de RAM disponible en raison de la mémoire réservée au noyau de crash.
- Indisponibilité du nœud alors que le noyau est en train de vider le cœur.
- Espace de stockage supplémentaire utilisé pour stocker les crash dumps.
Si vous connaissez les inconvénients et les compromis liés à l'activation du service kdump
, il est possible d'activer kdump à l'échelle de la grappe. Bien que les configurations de machines spécifiques ne soient pas encore prises en charge, vous pouvez utiliser une unité systemd
dans un objet MachineConfig
en tant que personnalisation du jour 1 et activer kdump sur tous les nœuds de la grappe. Vous pouvez créer un objet MachineConfig
et injecter cet objet dans l'ensemble des fichiers manifestes utilisés par Ignition lors de la configuration du cluster.
Voir "Personnaliser les nœuds" dans la section Installing → Installation configuration pour plus d'informations et d'exemples sur la façon d'utiliser les configurations Ignition.
Procédure
Créer un objet MachineConfig
pour la configuration de l'ensemble du cluster :
Créez un fichier de configuration Butane,
99-worker-kdump.bu
, qui configure et active kdump :variant: openshift version: 4.12.0 metadata: name: 99-worker-kdump 1 labels: machineconfiguration.openshift.io/role: worker 2 openshift: kernel_arguments: 3 - crashkernel=256M storage: files: - path: /etc/kdump.conf 4 mode: 0644 overwrite: true contents: inline: | path /var/crash core_collector makedumpfile -l --message-level 7 -d 31 - path: /etc/sysconfig/kdump 5 mode: 0644 overwrite: true contents: inline: | KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb" KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr novmcoredd hest_disable" KEXEC_ARGS="-s" KDUMP_IMG="vmlinuz" systemd: units: - name: kdump.service enabled: true
- 1 2
- Remplacer
worker
parmaster
aux deux endroits lors de la création d'un objetMachineConfig
pour les nœuds du plan de contrôle. - 3
- Fournir des arguments au noyau pour réserver de la mémoire pour le noyau de crash. Vous pouvez ajouter d'autres arguments du noyau si nécessaire.
- 4
- Si vous souhaitez modifier le contenu de
/etc/kdump.conf
par rapport à la valeur par défaut, incluez cette section et modifiez la sous-sectioninline
en conséquence. - 5
- Si vous souhaitez modifier le contenu de
/etc/sysconfig/kdump
par rapport à la valeur par défaut, incluez cette section et modifiez la sous-sectioninline
en conséquence.
Utiliser Butane pour générer un fichier YAML de configuration de la machine,
99-worker-kdump.yaml
, contenant la configuration à fournir aux nœuds :$ butane 99-worker-kdump.bu -o 99-worker-kdump.yaml
Placez le fichier YAML dans le répertoire
<installation_directory>/manifests/
lors de l'installation du cluster. Vous pouvez également créer cet objetMachineConfig
après l'installation du cluster avec le fichier YAML :$ oc create -f 99-worker-kdump.yaml
7.4.1.3. Test de la configuration de kdump
Voir la section Test de la configuration de kdump dans la documentation RHEL pour kdump.
7.4.1.4. Analyse d'un core dump
Voir la section Analyse d'un core dump dans la documentation RHEL pour kdump.
Il est recommandé d'effectuer l'analyse vmcore sur un système RHEL distinct.
Ressources supplémentaires
- Configuration de kdump dans RHEL
- Documentation du noyau Linux pour kdump
-
kdump.conf(5) - une page de manuel pour le fichier de configuration
/etc/kdump.conf
contenant la documentation complète des options disponibles -
kexec(8) - une page de manuel pour le paquetage
kexec
- Article de la base de connaissances de Red Hat concernant kexec et kdump
7.4.2. Débogage des pannes d'allumage
Si une machine ne peut pas être provisionnée, Ignition échoue et RHCOS démarre dans le shell d'urgence. Utilisez la procédure suivante pour obtenir des informations de débogage.
Procédure
Exécutez la commande suivante pour afficher les unités de service qui ont échoué :
$ systemctl --failed
Facultatif : Exécutez la commande suivante sur une unité de service individuelle pour obtenir plus d'informations :
$ journalctl -u <unit>.service
7.5. Dépannage des problèmes de réseau
7.5.1. Comment l'interface réseau est sélectionnée
Pour les installations sur bare metal ou avec des machines virtuelles qui ont plus d'un contrôleur d'interface réseau (NIC), le NIC qu'OpenShift Container Platform utilise pour la communication avec le serveur API Kubernetes est déterminé par l'unité de service nodeip-configuration.service
qui est exécutée par systemd lorsque le nœud démarre. Le site nodeip-configuration.service
sélectionne l'IP de l'interface associée à la route par défaut.
Une fois que le service nodeip-configuration.service
a déterminé le NIC correct, il crée le fichier /etc/systemd/system/kubelet.service.d/20-nodenet.conf
. Le fichier 20-nodenet.conf
attribue à la variable d'environnement KUBELET_NODE_IP
l'adresse IP sélectionnée par le service.
Lorsque le service kubelet démarre, il lit la valeur de la variable d'environnement dans le fichier 20-nodenet.conf
et définit l'adresse IP comme valeur de l'argument de ligne de commande --node-ip
kubelet. Par conséquent, le service kubelet utilise l'adresse IP sélectionnée comme adresse IP du nœud.
Si le matériel ou le réseau est reconfiguré après l'installation, ou s'il existe une configuration réseau où l'IP du nœud ne devrait pas provenir de l'interface de la route par défaut, il est possible que le service nodeip-configuration.service
sélectionne une carte d'interface réseau différente après un redémarrage. Dans certains cas, vous pouvez détecter qu'une carte d'interface différente a été sélectionnée en examinant la colonne INTERNAL-IP
dans la sortie de la commande oc get nodes -o wide
.
Si la communication réseau est perturbée ou mal configurée parce qu'un autre NIC est sélectionné, vous pouvez recevoir l'erreur suivante : EtcdCertSignerControllerDegraded
. Vous pouvez créer un fichier d'indices qui inclut la variable NODEIP_HINT
pour remplacer la logique de sélection IP par défaut. Pour plus d'informations, voir Facultatif : Remplacement de la logique de sélection de l'IP du nœud par défaut.
7.5.1.1. Facultatif : Remplacer la logique de sélection de l'IP du nœud par défaut
Pour remplacer la logique de sélection IP par défaut, vous pouvez créer un fichier d'indices qui inclut la variable NODEIP_HINT
pour remplacer la logique de sélection IP par défaut. La création d'un fichier d'indices vous permet de sélectionner une adresse IP de nœud spécifique à partir de l'interface dans le sous-réseau de l'adresse IP spécifiée dans la variable NODEIP_HINT
.
Par exemple, si un nœud possède deux interfaces, eth0
avec une adresse 10.0.0.10/24
, et eth1
avec une adresse 192.0.2.5/24
, et que la route par défaut pointe vers eth0
(10.0.0.10
), l'adresse IP du nœud devrait normalement utiliser l'adresse IP 10.0.0.10
.
Les utilisateurs peuvent configurer la variable NODEIP_HINT
pour qu'elle pointe vers une IP connue dans le sous-réseau, par exemple une passerelle de sous-réseau telle que 192.0.2.1
, de sorte que l'autre sous-réseau, 192.0.2.0/24
, soit sélectionné. En conséquence, l'adresse IP 192.0.2.5
sur eth1
est utilisée pour le nœud.
La procédure suivante montre comment remplacer la logique de sélection de l'IP du nœud par défaut.
Procédure
Ajoutez un fichier d'indices à votre fichier
/etc/default/nodeip-configuration
, par exemple :NODEIP_HINT=192.0.2.1
Important-
N'utilisez pas l'adresse IP exacte d'un nœud comme indice, par exemple
192.0.2.5
. L'utilisation de l'adresse IP exacte d'un nœud entraîne l'échec de la configuration du nœud utilisant l'adresse IP de l'indice. - L'adresse IP figurant dans le fichier d'indices n'est utilisée que pour déterminer le sous-réseau correct. Elle ne recevra pas de trafic du fait de son apparition dans le fichier d'indices.
-
N'utilisez pas l'adresse IP exacte d'un nœud comme indice, par exemple
Générez le contenu encodé
base-64
en exécutant la commande suivante :$ echo 'NODEIP_HINT=192.0.2.1' | base64
Exemple de sortie
Tk9ERUlQX0hJTlQ9MTkyLjAuMCxxxx==
Activez l'astuce en créant un manifeste de configuration de machine pour les rôles
master
etworker
avant de déployer le cluster :Manifeste de configuration de la machine maître
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master name: 99-nodeip-hint-master spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64, <encoded_content> 1 mode: 0644 overwrite: true path: /etc/default/nodeip-configuration
- 1
- Remplacez
<encoded_contents>
par le contenu codé en base64 du fichier/etc/default/nodeip-configuration
, par exempleTk9ERUlQX0hJTlQ9MTkyLjAuMCxxxx==
.
Manifeste de configuration de la machine de travail
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 99-nodeip-hint-worker spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64, <encoded_content> 1 mode: 0644 overwrite: true path: /etc/default/nodeip-configuration
- 1
- Remplacez
<encoded_contents>
par le contenu codé en base64 du fichier/etc/default/nodeip-configuration
, par exempleTk9ERUlQX0hJTlQ9MTkyLjAuMCxxxx==
.
-
Enregistrez le manifeste dans le répertoire où vous stockez la configuration de votre cluster, par exemple,
~/clusterconfigs
. - Déployer le cluster.
7.5.2. Dépannage des problèmes liés à l'Open vSwitch
Pour résoudre certains problèmes liés à l'Open vSwitch (OVS), il peut s'avérer nécessaire de configurer le niveau du journal afin d'y inclure davantage d'informations.
Si vous modifiez temporairement le niveau de journalisation sur un nœud, sachez que vous pouvez recevoir des messages de journalisation du démon de configuration de la machine sur le nœud, comme dans l'exemple suivant :
E0514 12:47:17.998892 2281 daemon.go:1350] content mismatch for file /etc/systemd/system/ovs-vswitchd.service: [Unit]
Pour éviter les messages de journal liés à la non-concordance, annulez le changement de niveau de journal une fois que vous avez terminé votre dépannage.
7.5.2.1. Configurer temporairement le niveau de journalisation d'Open vSwitch
Pour un dépannage à court terme, vous pouvez configurer temporairement le niveau de journalisation de l'Open vSwitch (OVS). La procédure suivante ne nécessite pas le redémarrage du nœud. En outre, la modification de la configuration ne persiste pas lorsque vous redémarrez le nœud.
Après avoir effectué cette procédure pour modifier le niveau du journal, vous pouvez recevoir des messages du démon de configuration de la machine qui indiquent une incompatibilité de contenu pour le site ovs-vswitchd.service
. Pour éviter ces messages, répétez cette procédure et réglez le niveau du journal sur la valeur d'origine.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Démarrer un pod de débogage pour un nœud :
oc debug node/<node_name>
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En remplaçant le répertoire racine par/host
, vous pouvez exécuter des binaires à partir du système de fichiers de l'hôte :# chroot /host
Visualiser le niveau actuel de syslog pour les modules OVS :
# ovs-appctl vlog/list
L'exemple suivant montre que le niveau de journalisation de syslog est défini sur
info
.Exemple de sortie
console syslog file ------- ------ ------ backtrace OFF INFO INFO bfd OFF INFO INFO bond OFF INFO INFO bridge OFF INFO INFO bundle OFF INFO INFO bundles OFF INFO INFO cfm OFF INFO INFO collectors OFF INFO INFO command_line OFF INFO INFO connmgr OFF INFO INFO conntrack OFF INFO INFO conntrack_tp OFF INFO INFO coverage OFF INFO INFO ct_dpif OFF INFO INFO daemon OFF INFO INFO daemon_unix OFF INFO INFO dns_resolve OFF INFO INFO dpdk OFF INFO INFO ...
Spécifiez le niveau de journalisation dans le fichier
/etc/systemd/system/ovs-vswitchd.service.d/10-ovs-vswitchd-restart.conf
:Restart=always ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /var/lib/openvswitch' ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /etc/openvswitch' ExecStartPre=-/bin/sh -c '/usr/bin/chown -R :$${OVS_USER_ID##*:} /run/openvswitch' ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:dbg ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:dbg
Dans l'exemple précédent, le niveau de journalisation est défini sur
dbg
. Modifiez les deux dernières lignes en remplaçantsyslog:<log_level>
paroff
,emer
,err
,warn
,info
, oudbg
. Le niveau de journalisationoff
filtre tous les messages de journalisation.Redémarrer le service :
# systemctl daemon-reload
# systemctl restart ovs-vswitchd
7.5.2.2. Configuration permanente du niveau de journalisation d'Open vSwitch
Pour les modifications à long terme du niveau de journalisation d'Open vSwitch (OVS), vous pouvez modifier le niveau de journalisation de manière permanente.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Créez un fichier, tel que
99-change-ovs-loglevel.yaml
, avec un objetMachineConfig
comme dans l'exemple suivant :apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: master 1 name: 99-change-ovs-loglevel spec: config: ignition: version: 3.2.0 systemd: units: - dropins: - contents: | [Service] ExecStartPost=-/usr/bin/ovs-appctl vlog/set syslog:dbg 2 ExecReload=-/usr/bin/ovs-appctl vlog/set syslog:dbg name: 20-ovs-vswitchd-restart.conf name: ovs-vswitchd.service
- 1
- Après avoir exécuté cette procédure pour configurer les nœuds du plan de contrôle, répétez la procédure et définissez le rôle sur
worker
pour configurer les nœuds de travail. - 2
- Définissez la valeur
syslog:<log_level>
. Les niveaux de journalisation sontoff
,emer
,err
,warn
,info
oudbg
. La valeuroff
permet de filtrer tous les messages de journalisation.
Appliquer la configuration de la machine :
$ oc apply -f 99-change-ovs-loglevel.yaml
7.5.2.3. Affichage des journaux Open vSwitch
La procédure suivante permet d'afficher les journaux Open vSwitch (OVS).
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Exécutez l'une des commandes suivantes :
Affichez les journaux en utilisant la commande
oc
depuis l'extérieur du cluster :$ oc adm node-logs <node_name> -u ovs-vswitchd
Affiche les journaux après l'ouverture d'une session sur un nœud du cluster :
# journalctl -b -f -u ovs-vswitchd.service
L'une des façons de se connecter à un nœud est d'utiliser la commande
oc debug node/<node_name>
.
7.6. Dépannage des problèmes de l'opérateur
Les opérateurs sont une méthode de conditionnement, de déploiement et de gestion d'une application OpenShift Container Platform. Ils agissent comme une extension de l'équipe d'ingénieurs du fournisseur de logiciels, en surveillant un environnement OpenShift Container Platform et en utilisant son état actuel pour prendre des décisions en temps réel. Les opérateurs sont conçus pour gérer les mises à niveau de manière transparente, réagir automatiquement aux pannes et ne pas prendre de raccourcis, comme sauter un processus de sauvegarde du logiciel pour gagner du temps.
OpenShift Container Platform 4.12 inclut un ensemble d'opérateurs par défaut qui sont nécessaires au bon fonctionnement du cluster. Ces opérateurs par défaut sont gérés par l'opérateur de version de cluster (CVO).
En tant qu'administrateur de cluster, vous pouvez installer des opérateurs d'application à partir de l'OperatorHub en utilisant la console web d'OpenShift Container Platform ou le CLI. Vous pouvez ensuite abonner l'opérateur à un ou plusieurs espaces de noms pour le mettre à la disposition des développeurs sur votre cluster. Les opérateurs d'application sont gérés par Operator Lifecycle Manager (OLM).
Si vous rencontrez des problèmes avec l'opérateur, vérifiez l'état de l'abonnement à l'opérateur. Vérifiez l'état des pods de l'opérateur dans le cluster et rassemblez les journaux de l'opérateur pour établir un diagnostic.
7.6.1. Types de conditions d'abonnement de l'opérateur
Les abonnements peuvent signaler les types de conditions suivants :
Tableau 7.2. Types de conditions d'abonnement
Condition | Description |
---|---|
| Une partie ou la totalité des sources du catalogue à utiliser pour la résolution sont malsaines. |
| Il manque un plan d'installation pour un abonnement. |
| Un plan d'installation pour un abonnement est en attente d'installation. |
| Un plan d'installation pour un abonnement a échoué. |
| La résolution des dépendances pour un abonnement a échoué. |
Les opérateurs de cluster OpenShift Container Platform par défaut sont gérés par l'opérateur de version de cluster (CVO) et n'ont pas d'objet Subscription
. Les opérateurs d'application sont gérés par Operator Lifecycle Manager (OLM) et ont un objet Subscription
.
7.6.2. Visualisation de l'état de l'abonnement de l'opérateur à l'aide de la CLI
Vous pouvez consulter l'état de l'abonnement de l'opérateur à l'aide de l'interface de ligne de commande.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Liste des abonnements des opérateurs :
$ oc get subs -n <operator_namespace>
Utilisez la commande
oc describe
pour inspecter une ressourceSubscription
:oc describe sub <subscription_name> -n <operator_namespace>
Dans la sortie de la commande, recherchez la section
Conditions
pour connaître l'état des types de conditions d'abonnement de l'opérateur. Dans l'exemple suivant, le type de conditionCatalogSourcesUnhealthy
a le statutfalse
car toutes les sources de catalogue disponibles sont saines :Exemple de sortie
Conditions: Last Transition Time: 2019-07-29T13:42:57Z Message: all available catalogsources are healthy Reason: AllCatalogSourcesHealthy Status: False Type: CatalogSourcesUnhealthy
Les opérateurs de cluster OpenShift Container Platform par défaut sont gérés par l'opérateur de version de cluster (CVO) et n'ont pas d'objet Subscription
. Les opérateurs d'application sont gérés par Operator Lifecycle Manager (OLM) et ont un objet Subscription
.
7.6.3. Visualisation de l'état de la source du catalogue de l'opérateur à l'aide de la CLI
Vous pouvez consulter l'état d'une source du catalogue de l'opérateur à l'aide de l'interface de ligne de commande.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Listez les sources de catalogue dans un espace de noms. Par 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
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
La commande
oc describe
permet d'obtenir plus de détails et de connaître l'état d'une source de catalogue :$ oc describe catalogsource example-catalog -n openshift-marketplace
Exemple de sortie
Name: example-catalog Namespace: openshift-marketplace ... 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
Dans l'exemple précédent, le dernier état observé est
TRANSIENT_FAILURE
. Cet état indique qu'il y a un problème pour établir une connexion pour la source du catalogue.Listez les pods de l'espace de noms dans lequel votre source de catalogue a été créée :
$ oc get pods -n openshift-marketplace
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
Lorsqu'une source de catalogue est créée dans un espace de noms, un pod pour la source de catalogue est créé dans cet espace de noms. Dans l'exemple de sortie précédent, le statut du pod
example-catalog-bwt8z
estImagePullBackOff
. Ce statut indique qu'il y a un problème lors de l'extraction de l'image d'index de la source de catalogue.Utilisez la commande
oc describe
pour inspecter un pod et obtenir des informations plus détaillées :$ oc describe pod example-catalog-bwt8z -n openshift-marketplace
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
Dans l'exemple précédent, les messages d'erreur indiquent que l'image d'index de la source de catalogue ne parvient pas à être extraite en raison d'un problème d'autorisation. Par exemple, l'image d'index peut être stockée dans un registre qui nécessite des identifiants de connexion.
Ressources supplémentaires
7.6.4. Interrogation de l'état de la nacelle de l'opérateur
Vous pouvez dresser la liste des Operator Pods au sein d'un cluster et de leur statut. Vous pouvez également obtenir un résumé détaillé des Operator Pods.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Liste des opérateurs en cours d'exécution dans la grappe. La sortie comprend la version de l'opérateur, la disponibilité et les informations sur le temps de fonctionnement :
$ oc get clusteroperators
Liste des pods de l'opérateur en cours d'exécution dans l'espace de noms de l'opérateur, ainsi que l'état du pod, les redémarrages et l'âge :
oc get pod -n <operator_namespace>
Produire un résumé détaillé de la nacelle de l'opérateur :
oc describe pod <operator_pod_name> -n <operator_namespace>
Si un problème lié à l'opérateur est spécifique à un nœud, demander l'état du conteneur de l'opérateur sur ce nœud.
Démarrer un pod de débogage pour le nœud :
$ oc debug node/my-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Liste les détails des conteneurs du nœud, y compris l'état et les ID de pods associés :
# crictl ps
Répertorie les informations relatives à un conteneur d'opérateur spécifique sur le nœud. L'exemple suivant répertorie les informations relatives au conteneur
network-operator
:# crictl ps --name network-operator
- Quitter le shell de débogage.
7.6.5. Journal de bord de l'opérateur de collecte
Si vous rencontrez des problèmes avec l'opérateur, vous pouvez obtenir des informations de diagnostic détaillées à partir des journaux de pods de l'opérateur.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
). - Vous disposez des noms de domaine complets du plan de contrôle ou des machines du plan de contrôle.
Procédure
Liste des pods de l'opérateur qui sont en cours d'exécution dans l'espace de noms de l'opérateur, ainsi que l'état du pod, les redémarrages et l'âge :
oc get pods -n <operator_namespace>
Examiner les journaux d'un module d'opérateur :
oc logs pod/<nom_du_pod> -n <espace_de_noms_de_l'opérateur>
Si un module Opérateur a plusieurs conteneurs, la commande précédente produira une erreur qui inclura le nom de chaque conteneur. Interroger les journaux d'un conteneur individuel :
oc logs pod/<operator_pod_name> -c <container_name> -n <operator_namespace> -c <container_name> -n <operator_namespace>
Si l'API n'est pas fonctionnelle, examinez les journaux des pods et des conteneurs de l'opérateur sur chaque nœud du plan de contrôle en utilisant plutôt SSH. Remplacez
<master-node>.<cluster_name>.<base_domain>
par les valeurs appropriées.Liste des pods sur chaque nœud du plan de contrôle :
$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl pods
Pour tout pod opérateur n'affichant pas l'état
Ready
, inspectez l'état du pod en détail. Remplacez<operator_pod_id>
par l'ID du pod opérateur figurant dans la sortie de la commande précédente :ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspectp <operator_pod_id>
Liste des conteneurs liés à un module opérateur :
ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl ps --pod=<operator_pod_id>
Pour tout conteneur d'opérateur n'affichant pas l'état
Ready
, inspectez l'état du conteneur en détail. Remplacez<container_id>
par un identifiant de conteneur figurant dans le résultat de la commande précédente :$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl inspect <container_id>
Examinez les journaux des conteneurs de l'opérateur qui n'affichent pas l'état
Ready
. Remplacez<container_id>
par un ID de conteneur figurant dans la sortie de la commande précédente :$ ssh core@<master-node>.<cluster_name>.<base_domain> sudo crictl logs -f <container_id>
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et dépendent des opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés comme accessed. Avant d'essayer de collecter des données de diagnostic via SSH, vérifiez si les données collectées en exécutant
oc adm must gather
et d'autres commandesoc
sont suffisantes. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérationsoc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
.
7.6.6. Désactivation du redémarrage automatique de Machine Config Operator
Lorsque des changements de configuration sont effectués par l'opérateur de configuration de la machine (MCO), Red Hat Enterprise Linux CoreOS (RHCOS) doit redémarrer pour que les changements prennent effet. Que le changement de configuration soit automatique ou manuel, un nœud RHCOS redémarre automatiquement à moins qu'il ne soit mis en pause.
Les modifications suivantes ne déclenchent pas de redémarrage du nœud :
Lorsque le MCO détecte l'un des changements suivants, il applique la mise à jour sans vidanger ou redémarrer le nœud :
-
Modifications de la clé SSH dans le paramètre
spec.config.passwd.users.sshAuthorizedKeys
de la configuration d'une machine. -
Changements apportés au secret de tirage global ou au secret de tirage dans l'espace de noms
openshift-config
. -
Rotation automatique de l'autorité de certification
/etc/kubernetes/kubelet-ca.crt
par l'opérateur du serveur API Kubernetes.
-
Modifications de la clé SSH dans le paramètre
Lorsque le MCO détecte des modifications dans le fichier
/etc/containers/registries.conf
, telles que l'ajout ou la modification d'un objetImageDigestMirrorSet
ouImageTagMirrorSet
, il draine les nœuds correspondants, applique les modifications et désenregistre les nœuds :-
L'ajout d'un registre avec le jeu de paramètres
pull-from-mirror = "digest-only"
pour chaque miroir. -
L'ajout d'un miroir avec le paramètre
pull-from-mirror = "digest-only"
défini dans un registre. -
L'ajout d'éléments à la liste
unqualified-search-registries
.
-
L'ajout d'un registre avec le jeu de paramètres
Pour éviter les perturbations indésirables, vous pouvez modifier le pool de configuration de la machine (MCP) afin d'empêcher le redémarrage automatique après que l'opérateur a apporté des modifications à la configuration de la machine.
La mise en pause d'un MCP empêche le MCO d'appliquer des modifications de configuration sur les nœuds associés. La mise en pause d'un MCP empêche également la transmission aux nœuds associés de tout certificat ayant fait l'objet d'une rotation automatique, y compris la rotation automatique du certificat de l'autorité de certification kube-apiserver-to-kubelet-signer
.
Si le MCP est en pause lorsque le certificat de l'autorité de certification kube-apiserver-to-kubelet-signer
expire et que le MCO tente de renouveler le certificat automatiquement, le MCO ne peut pas envoyer les nouveaux certificats à ces nœuds. Cela entraîne la dégradation du cluster et l'échec de plusieurs commandes oc
, notamment oc debug
, oc logs
, oc exec
, et oc attach
. Vous recevez des alertes dans l'interface utilisateur Alerting de la console Web d'OpenShift Container Platform si un MCP est mis en pause lors de la rotation des certificats.
La mise en pause d'un MCP doit être effectuée en tenant compte de l'expiration du certificat de l'autorité de certification kube-apiserver-to-kubelet-signer
et uniquement pour de courtes périodes.
De nouveaux certificats CA sont générés à 292 jours de la date d'installation et supprimés à 365 jours de cette date. Pour déterminer la prochaine rotation automatique des certificats d'AC, consultez la section Comprendre le renouvellement automatique des certificats d'AC dans Red Hat OpenShift 4.
7.6.6.1. Désactivation du redémarrage automatique de l'opérateur Machine Config à l'aide de la console
Pour éviter les perturbations indésirables dues aux changements effectués par le Machine Config Operator (MCO), vous pouvez utiliser la console web d'OpenShift Container Platform pour modifier le pool de configuration de la machine (MCP) afin d'empêcher le MCO d'effectuer des changements sur les nœuds de ce pool. Cela évite les redémarrages qui feraient normalement partie du processus de mise à jour du MCO.
Voir le deuxième site NOTE
dans la rubrique Désactiver le redémarrage automatique de l'opérateur de configuration de la machine.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
.
Procédure
Pour suspendre ou annuler le redémarrage automatique de la mise à jour du MCO :
Interrompre le processus de redémarrage automatique :
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
cluster-admin
. - Cliquez sur Compute → MachineConfigPools.
- Sur la page MachineConfigPools, cliquez sur master ou worker, en fonction des nœuds pour lesquels vous souhaitez interrompre le redémarrage.
- Sur la page master ou worker, cliquez sur YAML.
Dans le YAML, mettez à jour le champ
spec.paused
en le remplaçant partrue
.Exemple d'objet MachineConfigPool
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool ... spec: ... paused: true 1
- 1
- Mettez à jour le champ
spec.paused
entrue
pour interrompre le redémarrage.
Pour vérifier que le MCP est en pause, revenez à la page MachineConfigPools.
Sur la page MachineConfigPools, la colonne Paused indique True pour le GPE que vous avez modifié.
Si le GPE a des modifications en attente alors qu'il est en pause, la colonne Updated est False et Updating est False. Lorsque Updated est True et Updating est False, il n'y a pas de modifications en attente.
ImportantSi des modifications sont en attente (lorsque les colonnes Updated et Updating sont toutes deux False), il est recommandé de programmer une fenêtre de maintenance pour un redémarrage le plus tôt possible. Suivez les étapes suivantes pour interrompre le processus de redémarrage automatique afin d'appliquer les modifications qui ont été mises en attente depuis le dernier redémarrage.
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
Interrompre le processus de redémarrage automatique :
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
cluster-admin
. - Cliquez sur Compute → MachineConfigPools.
- Sur la page MachineConfigPools, cliquez sur master ou worker, en fonction des nœuds pour lesquels vous souhaitez interrompre le redémarrage.
- Sur la page master ou worker, cliquez sur YAML.
Dans le YAML, mettez à jour le champ
spec.paused
en le remplaçant parfalse
.Exemple d'objet MachineConfigPool
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfigPool ... spec: ... paused: false 1
- 1
- Mettre à jour le champ
spec.paused
enfalse
pour permettre le redémarrage.
NoteEn débloquant un MCP, le MCO applique tous les changements interrompus et redémarre Red Hat Enterprise Linux CoreOS (RHCOS) si nécessaire.
Pour vérifier que le MCP est en pause, revenez à la page MachineConfigPools.
Sur la page MachineConfigPools, la colonne Paused indique False pour le GPE que vous avez modifié.
Si le GPE applique des modifications en cours, la colonne Updated est False et la colonne Updating est True. Lorsque Updated est True et Updating est False, il n'y a plus de modifications en cours.
-
Connectez-vous à la console web de OpenShift Container Platform en tant qu'utilisateur ayant le rôle
7.6.6.2. Désactivation du redémarrage automatique du Machine Config Operator à l'aide de la CLI
Pour éviter les perturbations indésirables dues aux changements effectués par le Machine Config Operator (MCO), vous pouvez modifier le pool de configuration de la machine (MCP) à l'aide de la CLI d'OpenShift (oc) afin d'empêcher le MCO d'effectuer des changements sur les nœuds de ce pool. Cela évite les redémarrages qui feraient normalement partie du processus de mise à jour du MCO.
Voir le deuxième site NOTE
dans la rubrique Désactiver le redémarrage automatique de l'opérateur de configuration de la machine.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Pour suspendre ou annuler le redémarrage automatique de la mise à jour du MCO :
Interrompre le processus de redémarrage automatique :
Mettre à jour la ressource personnalisée
MachineConfigPool
pour définir le champspec.paused
entrue
.Nœuds du plan de contrôle (maître)
$ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/master
Nœuds de travail
$ oc patch --type=merge --patch='{"spec":{"paused":true}}' machineconfigpool/worker
Vérifiez que le MCP est en pause :
Nœuds du plan de contrôle (maître)
$ oc get machineconfigpool/master --template='{{.spec.paused}}'
Nœuds de travail
$ oc get machineconfigpool/worker --template='{{.spec.paused}}'
Exemple de sortie
true
Le champ
spec.paused
esttrue
et le MCP est en pause.Déterminer si le MCP a des modifications en attente :
# oc get machineconfigpool
Exemple de sortie
NAME CONFIG UPDATED UPDATING master rendered-master-33cf0a1254318755d7b48002c597bf91 True False worker rendered-worker-e405a5bdb0db1295acea08bcca33fa60 False False
Si la colonne UPDATED est False et UPDATING est False, des modifications sont en attente. Si UPDATED est True et UPDATING est False, il n'y a pas de modifications en attente. Dans l'exemple précédent, le nœud de travailleur a des modifications en attente. Le nœud du plan de contrôle n'a pas de modifications en attente.
ImportantSi des modifications sont en attente (lorsque les colonnes Updated et Updating sont toutes deux False), il est recommandé de programmer une fenêtre de maintenance pour un redémarrage le plus tôt possible. Suivez les étapes suivantes pour interrompre le processus de redémarrage automatique afin d'appliquer les modifications qui ont été mises en attente depuis le dernier redémarrage.
Interrompre le processus de redémarrage automatique :
Mettre à jour la ressource personnalisée
MachineConfigPool
pour définir le champspec.paused
enfalse
.Nœuds du plan de contrôle (maître)
$ oc patch --type=merge --patch='{"spec":{"paused":false}}' machineconfigpool/master
Nœuds de travail
$ oc patch --type=merge --patch='{"spec":{"paused":false}}' machineconfigpool/worker
NoteEn débloquant un MCP, le MCO applique tous les changements interrompus et redémarre Red Hat Enterprise Linux CoreOS (RHCOS) si nécessaire.
Vérifiez que le MCP est désactivé :
Nœuds du plan de contrôle (maître)
$ oc get machineconfigpool/master --template='{{.spec.paused}}'
Nœuds de travail
$ oc get machineconfigpool/worker --template='{{.spec.paused}}'
Exemple de sortie
false
Le champ
spec.paused
estfalse
et le MCP est désactivé.Déterminer si le MCP a des modifications en attente :
$ oc get machineconfigpool
Exemple de sortie
NAME CONFIG UPDATED UPDATING master rendered-master-546383f80705bd5aeaba93 True False worker rendered-worker-b4c51bb33ccaae6fc4a6a5 False True
Si le GPE applique des modifications en cours, la colonne UPDATED est False et la colonne UPDATING est True. Lorsque UPDATED est True et UPDATING est False, il n'y a plus de modifications en cours. Dans l'exemple précédent, le MCO met à jour le nœud de travailleur.
7.6.7. Actualisation des abonnements défaillants
Dans Operator Lifecycle Manager (OLM), si vous vous abonnez à un opérateur qui fait référence à des images qui ne sont pas accessibles sur votre réseau, vous pouvez trouver des travaux dans l'espace de noms openshift-marketplace
qui échouent avec les erreurs suivantes :
Exemple de sortie
ImagePullBackOff for Back-off pulling image "example.com/openshift4/ose-elasticsearch-operator-bundle@sha256:6d2587129c846ec28d384540322b40b05833e7e00b25cca584e004af9a1d292e"
Exemple de sortie
rpc error: code = Unknown desc = error pinging docker registry example.com: Get "https://example.com/v2/": dial tcp: lookup example.com on 10.0.0.1:53: no such host
En conséquence, l'abonnement est bloqué dans cet état d'échec et l'opérateur est incapable d'installer ou de mettre à niveau.
Vous pouvez actualiser un abonnement défaillant en supprimant l'abonnement, la version du service de cluster (CSV) et d'autres objets connexes. Après avoir recréé l'abonnement, OLM réinstalle la version correcte de l'opérateur.
Conditions préalables
- Vous avez un abonnement défaillant qui ne parvient pas à extraire une image de paquet inaccessible.
- Vous avez confirmé que l'image correcte de la liasse est accessible.
Procédure
Obtenir les noms des objets
Subscription
etClusterServiceVersion
de l'espace de noms dans lequel l'opérateur est installé :$ oc get sub,csv -n <namespace>
Exemple de sortie
NAME PACKAGE SOURCE CHANNEL subscription.operators.coreos.com/elasticsearch-operator elasticsearch-operator redhat-operators 5.0 NAME DISPLAY VERSION REPLACES PHASE clusterserviceversion.operators.coreos.com/elasticsearch-operator.5.0.0-65 OpenShift Elasticsearch Operator 5.0.0-65 Succeeded
Supprimer l'abonnement :
oc delete subscription <subscription_name> -n <namespace> $ oc delete subscription <subscription_name> -n <namespace>
Supprimer la version du service de cluster :
$ oc delete csv <csv_name> -n <namespace>
Récupère les noms de tous les travaux défaillants et des cartes de configuration correspondantes dans l'espace de noms
openshift-marketplace
:$ oc get job,configmap -n openshift-marketplace
Exemple de sortie
NAME COMPLETIONS DURATION AGE job.batch/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 1/1 26s 9m30s NAME DATA AGE configmap/1de9443b6324e629ddf31fed0a853a121275806170e34c926d69e53a7fcbccb 3 9m30s
Supprimer le travail :
oc delete job <job_name> -n openshift-marketplace
Cela permet de s'assurer que les pods qui tentent d'extraire l'image inaccessible ne sont pas recréés.
Supprimer la carte de configuration :
oc delete configmap <configmap_name> -n openshift-marketplace
- Réinstallez l'opérateur en utilisant OperatorHub dans la console web.
Vérification
Vérifiez que l'opérateur a été réinstallé avec succès :
$ oc get sub,csv,installplan -n <namespace>
7.7. Enquêter sur les questions relatives aux nacelles
OpenShift Container Platform exploite le concept Kubernetes de pod, qui est un ou plusieurs conteneurs déployés ensemble sur un hôte. Un pod est la plus petite unité de calcul qui peut être définie, déployée et gérée sur OpenShift Container Platform 4.12.
Une fois qu'un pod est défini, il est affecté à l'exécution sur un nœud jusqu'à ce que ses conteneurs quittent le système ou jusqu'à ce qu'il soit supprimé. En fonction de la politique et du code de sortie, les pods sont soit supprimés après la sortie, soit conservés afin que leurs journaux puissent être consultés.
La première chose à vérifier en cas de problème avec un pod est son état. Si une défaillance explicite du pod s'est produite, observez l'état d'erreur du pod pour identifier les problèmes spécifiques liés à l'image, au conteneur ou au réseau du pod. Concentrez la collecte des données de diagnostic en fonction de l'état d'erreur. Examinez les messages d'événement du module, ainsi que les informations du journal du module et du conteneur. Diagnostiquer les problèmes de manière dynamique en accédant aux pods en cours d'exécution sur la ligne de commande, ou démarrer un pod de débogage avec un accès root basé sur la configuration de déploiement d'un pod problématique.
7.7.1. Comprendre les états d'erreur des pods
Les défaillances du pod renvoient des états d'erreur explicites qui peuvent être observés dans le champ status
de la sortie de oc get pods
. Les états d'erreur du pod couvrent les défaillances liées à l'image, au conteneur et au réseau de conteneurs.
Le tableau suivant fournit une liste des états d'erreur des pods ainsi que leur description.
Tableau 7.3. États d'erreur du pod
État d'erreur du pod | Description |
---|---|
| Erreur générique de recherche d'images. |
| La recherche d'images a échoué et est interrompue. |
| Le nom de l'image spécifiée n'est pas valide. |
| L'inspection de l'image n'a pas abouti. |
|
|
| Une erreur HTTP a été rencontrée lors de la récupération d'une image à partir d'un registre. |
| Le conteneur spécifié n'est pas présent ou n'est pas géré par le kubelet, dans le pod déclaré. |
| L'initialisation du conteneur a échoué. |
| Aucun des conteneurs du pod n'a démarré avec succès. |
| Aucun des conteneurs de la nacelle n'a été tué avec succès. |
| Un conteneur s'est arrêté. Le kubelet ne tentera pas de le redémarrer. |
| Un conteneur ou une image a tenté de s'exécuter avec les privilèges de l'utilisateur root. |
| La création du bac à sable n'a pas abouti. |
| La configuration du bac à sable n'a pas été obtenue. |
| Le bac à sable d'un pod ne s'est pas arrêté avec succès. |
| L'initialisation du réseau a échoué. |
| La terminaison du réseau a échoué. |
7.7.2. Examen de l'état des nacelles
Vous pouvez interroger l'état des pods et les états d'erreur. Vous pouvez également interroger la configuration de déploiement associée à un pod et vérifier la disponibilité de l'image de base.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). -
skopeo
est installé.
Procédure
Passer à un projet :
oc project <nom_du_projet>
Liste des pods en cours d'exécution dans l'espace de noms, ainsi que l'état des pods, les états d'erreur, les redémarrages et l'âge :
$ oc get pods
Déterminez si l'espace de noms est géré par une configuration de déploiement :
$ oc status
Si l'espace de noms est géré par une configuration de déploiement, le résultat comprend le nom de la configuration de déploiement et une référence à l'image de base.
Inspecter l'image de base référencée dans la sortie de la commande précédente :
skopeo inspect docker://<image_reference>
Si la référence de l'image de base n'est pas correcte, mettez à jour la référence dans la configuration du déploiement :
$ oc edit deployment/my-deployment
Lorsque la configuration du déploiement change à la sortie, la configuration sera automatiquement redéployée. Surveillez l'état du pod au fur et à mesure que le déploiement progresse, afin de déterminer si le problème a été résolu :
$ oc get pods -w
Examinez les événements de l'espace de noms pour y trouver des informations de diagnostic relatives aux défaillances des pods :
$ oc get events
7.7.3. Inspection des registres des gousses et des conteneurs
Vous pouvez consulter les journaux des pods et des conteneurs pour y trouver des avertissements et des messages d'erreur liés à des échecs explicites de pods. En fonction de la politique et du code de sortie, les journaux des pods et des conteneurs restent disponibles après l'arrêt des pods.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Interroger les journaux pour un module spécifique :
oc logs <nom_du_pod>
Interroger les journaux d'un conteneur spécifique au sein d'un pod :
oc logs <nom_du_pod> -c <nom_du_conteneur>
Les journaux récupérés à l'aide des commandes
oc logs
précédentes sont composés de messages envoyés à stdout à l'intérieur des pods ou des conteneurs.Inspecter les grumes contenues dans
/var/log/
à l'intérieur d'une nacelle.Liste des fichiers journaux et des sous-répertoires contenus dans
/var/log
au sein d'un pod :oc exec <nom_du_pod> ls -alh /var/log
Interroger un fichier journal spécifique contenu dans
/var/log
au sein d'un pod :oc exec <nom_du_pod> cat /var/log/<chemin_vers_log>
Liste des fichiers journaux et des sous-répertoires contenus dans
/var/log
à l'intérieur d'un conteneur spécifique :oc exec <nom_du_pod> -c <nom_du_conteneur> ls /var/log
Interroger un fichier journal spécifique contenu dans
/var/log
à l'intérieur d'un conteneur spécifique :oc exec <nom_du_pod> -c <nom_du_conteneur> cat /var/log/<chemin_vers_log>
7.7.4. Accès aux pods en cours d'exécution
Vous pouvez passer en revue les pods en cours d'exécution de manière dynamique en ouvrant un shell à l'intérieur d'un pod ou en obtenant un accès au réseau par le biais d'une redirection de port.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Entrez dans le projet qui contient le pod auquel vous souhaitez accéder. Cette opération est nécessaire car la commande
oc rsh
n'accepte pas l'option d'espace de noms-n
:oc project <namespace>
Démarrer un shell à distance dans un pod :
$ oc rsh <pod_name> 1
- 1
- Si un module a plusieurs conteneurs,
oc rsh
prend par défaut le premier conteneur, à moins que-c <container_name>
ne soit spécifié.
Lancer un shell à distance dans un conteneur spécifique au sein d'un pod :
oc rsh -c <container_name> pod/<pod_name>
Créer une session de transfert de port vers un port d'un pod :
$ oc port-forward <pod_name> <host_port>:<pod_port> 1
- 1
- Saisissez
Ctrl C
pour annuler la session de transfert de port.
7.7.5. Démarrage des pods de débogage avec accès root
Vous pouvez démarrer un pod de débogage avec un accès root, en fonction du déploiement ou de la configuration du déploiement d'un pod problématique. Les utilisateurs de pods s'exécutent généralement avec des privilèges non root, mais l'exécution de pods de dépannage avec des privilèges root temporaires peut s'avérer utile lors de l'investigation d'un problème.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Démarrer un pod de débogage avec un accès root, sur la base d'un déploiement.
Obtenir le nom de déploiement d'un projet :
oc get deployment -n <nom_du_projet>
Démarrer un pod de débogage avec les privilèges root, en fonction du déploiement :
$ oc debug deployment/my-deployment --as-root -n <nom_du_projet>
Démarrer un pod de débogage avec un accès root, sur la base d'une configuration de déploiement.
Obtenir le nom de la configuration de déploiement d'un projet :
oc get deploymentconfigs -n <nom_du_projet>
Démarrer un pod de débogage avec les privilèges de root, en fonction de la configuration du déploiement :
$ oc debug deploymentconfig/my-deployment-configuration --as-root -n <nom_du_projet>
Vous pouvez ajouter -- <command>
aux commandes oc debug
précédentes pour exécuter des commandes individuelles dans un module de débogage, au lieu d'exécuter un shell interactif.
7.7.6. Copier des fichiers vers et depuis des pods et des conteneurs
Vous pouvez copier des fichiers vers et à partir d'un module pour tester les changements de configuration ou recueillir des informations de diagnostic.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Copier un fichier dans un pod :
$ oc cp <local_path> <pod_name>:/<path> -c <container_name> 1
- 1
- Le premier conteneur d'un pod est sélectionné si l'option
-c
n'est pas spécifiée.
Copier un fichier à partir d'un pod :
$ oc cp <pod_name>:/<path> -c <container_name><local_path> 1
- 1
- Le premier conteneur d'un pod est sélectionné si l'option
-c
n'est pas spécifiée.
NotePour que
oc cp
fonctionne, le binairetar
doit être disponible dans le conteneur.
7.8. Dépannage du processus Source-to-Image
7.8.1. Stratégies de dépannage de la source à l'image
Utilisez Source-to-Image (S2I) pour créer des images de conteneurs reproductibles et formatées par Docker. Vous pouvez créer des images prêtes à l'emploi en injectant le code source d'une application dans une image de conteneur et en assemblant une nouvelle image. La nouvelle image incorpore l'image de base (le constructeur) et le code source construit.
Pour déterminer à quel moment du processus S2I une défaillance se produit, vous pouvez observer l'état des pods relatifs à chacune des étapes S2I suivantes :
- During the build configuration stageun pod de construction est utilisé pour créer une image de conteneur d'application à partir d'une image de base et du code source de l'application.
- During the deployment configuration stageun pod de déploiement est utilisé pour déployer des pods d'application à partir de l'image du conteneur d'application qui a été construite lors de l'étape de configuration de la construction. Le module de déploiement déploie également d'autres ressources telles que des services et des itinéraires. La configuration du déploiement commence après la réussite de la configuration de la construction.
-
After the deployment pod has started the application podsles pannes d'application peuvent se produire dans les modules d'application en cours d'exécution. Par exemple, une application peut ne pas se comporter comme prévu bien que les modules d'application soient dans l'état
Running
. Dans ce cas, vous pouvez accéder aux modules d'application en cours d'exécution afin d'examiner les défaillances d'une application au sein d'un module.
Pour résoudre les problèmes liés aux S2I, il convient de suivre la stratégie suivante :
- Contrôler l'état de la construction, du déploiement et du pod d'application
- Déterminer l'étape du processus S2I où le problème s'est produit
- Examiner les journaux correspondant à l'étape échouée
7.8.2. Collecte des données de diagnostic source-image
L'outil S2I exécute successivement un module de construction et un module de déploiement. Le module de déploiement est chargé de déployer les modules d'application sur la base de l'image du conteneur d'application créée lors de la phase de construction. Surveillez l'état de la construction, du déploiement et des modules d'application pour déterminer à quel moment du processus S2I une défaillance se produit. Concentrez ensuite la collecte des données de diagnostic en conséquence.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. - Your API service is still functional.
-
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Surveillez l'état du pod tout au long du processus S2I afin de déterminer à quel stade une défaillance se produit :
$ oc get pods -w 1
- 1
- Utilisez
-w
pour surveiller les modifications apportées aux pods jusqu'à ce que vous quittiez la commande à l'aide deCtrl C
.
Examinez les journaux d'un pod qui a échoué pour y déceler les erreurs.
If the build pod fails, examinez les journaux du module de construction :
oc logs -f pod/<application_name>-<build_number>-build
NoteVous pouvez également consulter les journaux de la configuration de construction en utilisant
oc logs -f bc/<application_name>
. Les journaux de la configuration de construction comprennent les journaux du module de construction.If the deployment pod failsle cas échéant, examinez les journaux du module de déploiement :
$ oc logs -f pod/<application_name>-<build_number>-deploy
NoteVous pouvez également consulter les journaux de la configuration de déploiement à l'aide de
oc logs -f dc/<application_name>
. Cette commande génère des journaux à partir du module de déploiement jusqu'à ce que ce dernier se termine avec succès. La commande affiche les journaux des modules d'application si vous l'exécutez après la fin du module de déploiement. Après la fin d'un module de déploiement, il est toujours possible d'accéder à ses journaux en exécutant la commandeoc logs -f pod/<application_name>-<build_number>-deploy
.If an application pod fails, or if an application is not behaving as expected within a running application podpour ce faire, consultez les journaux du module d'application :
$ oc logs -f pod/<application_name>-<build_number>-<random_string>
7.8.3. Collecte de données de diagnostic d'application afin d'enquêter sur les défaillances de l'application
Des pannes d'application peuvent se produire dans les pods d'application en cours d'exécution. Dans ces situations, vous pouvez récupérer des informations de diagnostic à l'aide de ces stratégies :
- Examiner les événements relatifs aux modules d'application.
- Examinez les journaux des pods d'application, y compris les fichiers journaux spécifiques à l'application qui ne sont pas collectés par le cadre de journalisation OpenShift.
- Tester les fonctionnalités d'une application de manière interactive et exécuter des outils de diagnostic dans un conteneur d'application.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
Répertorie les événements relatifs à un module d'application spécifique. L'exemple suivant permet de récupérer les événements d'un module d'application nommé
my-app-1-akdlg
:$ oc describe pod/my-app-1-akdlg
Examiner les journaux d'un module d'application :
$ oc logs -f pod/my-app-1-akdlg
Interroger des logs spécifiques dans un pod d'application en cours d'exécution. Les logs qui sont envoyés à stdout sont collectés par le framework OpenShift Logging et sont inclus dans la sortie de la commande précédente. La requête suivante n'est nécessaire que pour les journaux qui ne sont pas envoyés à stdout.
S'il est possible d'accéder à un journal d'application sans les privilèges de l'administrateur dans un module, concaténer le fichier journal comme suit :
$ oc exec my-app-1-akdlg -- cat /var/log/my-application.log
Si l'accès root est nécessaire pour consulter le journal d'une application, vous pouvez démarrer un conteneur de débogage avec les privilèges root, puis consulter le fichier journal à partir du conteneur. Démarrez le conteneur de débogage à partir de l'objet
DeploymentConfig
du projet. Les utilisateurs de pods s'exécutent généralement avec des privilèges non root, mais l'exécution de pods de dépannage avec des privilèges root temporaires peut s'avérer utile lors de l'investigation d'un problème :$ oc debug dc/my-deployment-configuration --as-root -- cat /var/log/my-application.log
NoteVous pouvez accéder à un shell interactif avec un accès root dans le pod de débogage si vous exécutez
oc debug dc/<deployment_configuration> --as-root
sans ajouter-- <command>
.
Tester les fonctionnalités d'une application de manière interactive et exécuter des outils de diagnostic, dans un conteneur d'application avec un shell interactif.
Démarrer un shell interactif sur le conteneur d'application :
$ oc exec -it my-app-1-akdlg /bin/bash
- Tester les fonctionnalités de l'application de manière interactive à partir de l'interpréteur de commandes. Par exemple, vous pouvez exécuter la commande du point d'entrée du conteneur et observer les résultats. Ensuite, vous pouvez tester les modifications directement à partir de la ligne de commande, avant de mettre à jour le code source et de reconstruire le conteneur d'application par le biais du processus S2I.
Exécuter les binaires de diagnostic disponibles dans le conteneur.
NoteLes privilèges root sont nécessaires pour exécuter certains binaires de diagnostic. Dans ce cas, vous pouvez démarrer un pod de débogage avec un accès root, basé sur l'objet
DeploymentConfig
d'un pod problématique, en exécutantoc debug dc/<deployment_configuration> --as-root
. Ensuite, vous pouvez exécuter les binaires de diagnostic en tant que root à partir du pod de débogage.
Si les binaires de diagnostic ne sont pas disponibles dans un conteneur, vous pouvez exécuter les binaires de diagnostic d'un hôte dans l'espace de noms d'un conteneur en utilisant
nsenter
. L'exemple suivant exécuteip ad
dans l'espace de noms d'un conteneur, en utilisant le binaireip
de l'hôte.Entrez dans une session de débogage sur le nœud cible. Cette étape instancie un pod de débogage appelé
<node_name>-debug
:$ oc debug node/my-cluster-node
Définissez
/host
comme répertoire racine dans le shell de débogage. Le pod de débogage monte le système de fichiers racine de l'hôte dans/host
au sein du pod. En changeant le répertoire racine en/host
, vous pouvez exécuter les binaires contenus dans les chemins d'exécution de l'hôte :# chroot /host
NoteLes nœuds de cluster OpenShift Container Platform 4.12 exécutant Red Hat Enterprise Linux CoreOS (RHCOS) sont immuables et s'appuient sur les opérateurs pour appliquer les changements de cluster. L'accès aux nœuds de cluster à l'aide de SSH n'est pas recommandé et les nœuds seront altérés en tant que accessed. Cependant, si l'API OpenShift Container Platform n'est pas disponible, ou si le kubelet ne fonctionne pas correctement sur le nœud cible, les opérations
oc
seront impactées. Dans de telles situations, il est possible d'accéder aux nœuds en utilisantssh core@<node>.<cluster_name>.<base_domain>
à la place.Déterminer l'ID du conteneur cible :
# crictl ps
Déterminer l'ID du processus du conteneur. Dans cet exemple, l'ID du conteneur cible est
a7fe32346b120
:# crictl inspect a7fe32346b120 --output yaml | grep 'pid:' | awk '{print $2}'
Exécutez
ip ad
dans l'espace de noms du conteneur, en utilisant le binaireip
de l'hôte. Cet exemple utilise31150
comme ID de processus du conteneur. La commandensenter
entre dans l'espace de noms d'un processus cible et exécute une commande dans son espace de noms. Comme le processus cible dans cet exemple est l'ID de processus d'un conteneur, la commandeip ad
est exécutée dans l'espace de noms du conteneur à partir de l'hôte :# nsenter -n -t 31150 -- ip ad
NoteL'exécution des binaires de diagnostic d'un hôte dans l'espace de noms d'un conteneur n'est possible que si vous utilisez un conteneur privilégié tel qu'un nœud de débogage.
7.8.4. Ressources supplémentaires
- Pour plus d'informations sur la stratégie de construction S2I, voir la section Construction de source à image (S2 I).
7.9. Dépannage des problèmes de stockage
7.9.1. Résolution des erreurs de rattachement multiple
Lorsqu'un nœud tombe en panne ou s'arrête brusquement, le volume ReadWriteOnce (RWO) attaché est censé être démonté du nœud afin qu'il puisse être utilisé par un pod planifié sur un autre nœud.
Cependant, le montage sur un nouveau nœud n'est pas possible car le nœud défaillant n'est pas en mesure de démonter le volume attaché.
Une erreur de rattachement multiple est signalée :
Exemple de sortie
Unable to attach or mount volumes: unmounted volumes=[sso-mysql-pvol], unattached volumes=[sso-mysql-pvol default-token-x4rzc]: timed out waiting for the condition Multi-Attach error for volume "pvc-8837384d-69d7-40b2-b2e6-5df86943eef9" Volume is already used by pod(s) sso-mysql-1-ns6b4
Procédure
Pour résoudre le problème de l'attachement multiple, utilisez l'une des solutions suivantes :
Permettre des pièces jointes multiples en utilisant des volumes RWX.
Pour la plupart des solutions de stockage, vous pouvez utiliser des volumes ReadWriteMany (RWX) pour éviter les erreurs de rattachement multiple.
Récupérer ou supprimer le nœud défaillant lors de l'utilisation d'un volume RWO.
Pour le stockage qui ne prend pas en charge RWX, tel que VMware vSphere, les volumes RWO doivent être utilisés à la place. Cependant, les volumes RWO ne peuvent pas être montés sur plusieurs nœuds.
Si vous rencontrez un message d'erreur d'attachement multiple avec un volume RWO, forcez la suppression du pod sur un nœud arrêté ou en panne afin d'éviter toute perte de données dans les charges de travail critiques, par exemple lorsque des volumes persistants dynamiques sont attachés.
oc delete pod <old_pod> --force=true --grace-period=0
Cette commande supprime les volumes bloqués sur des nœuds arrêtés ou bloqués après six minutes.
7.10. Résolution des problèmes liés à la charge de travail des conteneurs Windows
7.10.1. Windows Machine Config Operator ne s'installe pas
Si vous avez terminé le processus d'installation de Windows Machine Config Operator (WMCO), mais que l'Operator est bloqué dans la phase InstallWaiting
, votre problème est probablement dû à un problème de réseau.
Le WMCO exige que votre cluster OpenShift Container Platform soit configuré avec un réseau hybride utilisant OVN-Kubernetes ; le WMCO ne peut pas terminer le processus d'installation si le réseau hybride n'est pas disponible. Ceci est nécessaire pour gérer les nœuds sur plusieurs systèmes d'exploitation (OS) et variantes d'OS. Cette opération doit être effectuée lors de l'installation de votre cluster.
Pour plus d'informations, voir Configuration de la mise en réseau hybride.
7.10.2. Déterminer pourquoi la machine Windows ne devient pas un nœud de calcul
Il y a plusieurs raisons pour lesquelles une machine Windows ne devient pas un nœud de calcul. La meilleure façon d'étudier ce problème est de collecter les journaux de l'opérateur de configuration de la machine Windows (WMCO).
Conditions préalables
- Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
Procédure
Exécutez la commande suivante pour collecter les journaux WMCO :
$ oc logs -f deployment/windows-machine-config-operator -n openshift-windows-machine-config-operator
7.10.3. Accès à un nœud Windows
Il n'est pas possible d'accéder aux nœuds Windows à l'aide de la commande oc debug node
; cette commande nécessite l'exécution d'un pod privilégié sur le nœud, ce qui n'est pas encore pris en charge pour Windows. En revanche, il est possible d'accéder à un nœud Windows à l'aide d'un shell sécurisé (SSH) ou d'un protocole de bureau à distance (RDP). Un bastion SSH est nécessaire pour les deux méthodes.
7.10.3.1. Accès à un nœud Windows à l'aide de SSH
Vous pouvez accéder à un nœud Windows en utilisant un shell sécurisé (SSH).
Conditions préalables
- Vous avez installé le Windows Machine Config Operator (WMCO) à l'aide de l'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
-
Vous avez ajouté à l'agent ssh la clé utilisée dans le secret
cloud-private-key
et la clé utilisée lors de la création du cluster. Pour des raisons de sécurité, n'oubliez pas de supprimer les clés de l'agent ssh après utilisation. -
Vous vous êtes connecté au nœud Windows à l 'aide d'un pod
ssh-bastion
.
Procédure
Accédez au nœud Windows en exécutant la commande suivante :
$ ssh -t -o StrictHostKeyChecking=no -o ProxyCommand='ssh -A -o StrictHostKeyChecking=no \ -o ServerAliveInterval=30 -W %h:%p core@$(oc get service --all-namespaces -l run=ssh-bastion \ -o go-template="{{ with (index (index .items 0).status.loadBalancer.ingress 0) }}{{ or .hostname .ip }}{{end}}")' <username>@<windows_node_internal_ip> 1 2
$ oc get nodes <node_name> -o jsonpath={.status.addresses[?\(@.type==\"InternalIP\"\)].address}
7.10.3.2. Accès à un nœud Windows à l'aide de RDP
Vous pouvez accéder à un nœud Windows en utilisant un protocole de bureau à distance (RDP).
Conditions préalables
- Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
-
Vous avez ajouté à l'agent ssh la clé utilisée dans le secret
cloud-private-key
et la clé utilisée lors de la création du cluster. Pour des raisons de sécurité, n'oubliez pas de supprimer les clés de l'agent ssh après utilisation. -
Vous vous êtes connecté au nœud Windows à l 'aide d'un pod
ssh-bastion
.
Procédure
Exécutez la commande suivante pour établir un tunnel SSH :
$ ssh -L 2020:<windows_node_internal_ip>:3389 \ 1 core@$(oc get service --all-namespaces -l run=ssh-bastion -o go-template="{{ with (index (index .items 0).status.loadBalancer.ingress 0) }}{{ or .hostname .ip }}{{end}}")
- 1
- Spécifiez l'adresse IP interne du nœud, qui peut être découverte en exécutant la commande suivante :
$ oc get nodes <node_name> -o jsonpath={.status.addresses[?\(@.type==\"InternalIP\"\)].address}
À partir de l'interpréteur de commandes résultant, connectez-vous en SSH au nœud Windows et exécutez la commande suivante pour créer un mot de passe pour l'utilisateur :
C:\> net user <username> * 1
- 1
- Indiquez le nom d'utilisateur du fournisseur de cloud, par exemple
Administrator
pour AWS oucapi
pour Azure.
Vous pouvez maintenant accéder à distance au nœud Windows à l'adresse localhost:2020
à l'aide d'un client RDP.
7.10.4. Collecte des journaux de nœuds Kubernetes pour les conteneurs Windows
La journalisation des conteneurs Windows fonctionne différemment de la journalisation des conteneurs Linux ; les journaux des nœuds Kubernetes pour les charges de travail Windows sont transmis par défaut au répertoire C:\var\logs
. Par conséquent, vous devez collecter les journaux des nœuds Windows à partir de ce répertoire.
Conditions préalables
- Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
Procédure
Pour afficher les journaux dans tous les répertoires de
C:\var\logs
, exécutez la commande suivante :$ oc adm node-logs -l kubernetes.io/os=windows --path= \ /ip-10-0-138-252.us-east-2.compute.internal containers \ /ip-10-0-138-252.us-east-2.compute.internal hybrid-overlay \ /ip-10-0-138-252.us-east-2.compute.internal kube-proxy \ /ip-10-0-138-252.us-east-2.compute.internal kubelet \ /ip-10-0-138-252.us-east-2.compute.internal pods
Vous pouvez désormais lister les fichiers dans les répertoires à l'aide de la même commande et afficher les fichiers journaux individuels. Par exemple, pour afficher les journaux des kubelets, exécutez la commande suivante :
$ oc adm node-logs -l kubernetes.io/os=windows --path=/kubelet/kubelet.log
7.10.5. Collecte des journaux d'événements des applications Windows
Le shim Get-WinEvent
sur le point de terminaison kubelet logs
peut être utilisé pour collecter des journaux d'événements d'application à partir de machines Windows.
Conditions préalables
- Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
Procédure
Pour afficher les journaux de toutes les applications qui se connectent aux journaux d'événements sur la machine Windows, exécutez :
$ oc adm node-logs -l kubernetes.io/os=windows --path=journal
La même commande est exécutée lors de la collecte des journaux avec
oc adm must-gather
.D'autres journaux d'applications Windows du journal des événements peuvent également être collectés en spécifiant le service respectif avec un drapeau
-u
. Par exemple, vous pouvez exécuter la commande suivante pour collecter les journaux du service d'exécution Docker :$ oc adm node-logs -l kubernetes.io/os=windows --path=journal -u docker
7.10.6. Collecte des journaux Docker pour les conteneurs Windows
Le service Windows Docker n'envoie pas ses journaux vers stdout, mais les enregistre dans le journal des événements de Windows. Vous pouvez consulter les journaux d'événements de Docker pour enquêter sur les problèmes que vous pensez être causés par le service Windows Docker.
Conditions préalables
- Vous avez installé Windows Machine Config Operator (WMCO) à l'aide d'Operator Lifecycle Manager (OLM).
- Vous avez créé un ensemble de machines de calcul Windows.
Procédure
Accédez au nœud Windows par SSH et entrez dans PowerShell :
C:\N> powershell
Affichez les journaux Docker en exécutant la commande suivante :
C:\N> Get-EventLog -LogName Application -Source Docker
7.10.7. Ressources supplémentaires
7.11. Enquêter sur les problèmes de surveillance
OpenShift Container Platform inclut une pile de surveillance préconfigurée, préinstallée et auto-actualisée qui fournit une surveillance pour les composants de base de la plateforme. Dans OpenShift Container Platform 4.12, les administrateurs de clusters peuvent optionnellement activer la surveillance pour des projets définis par l'utilisateur.
Vous pouvez suivre ces procédures si vos propres mesures ne sont pas disponibles ou si Prometheus consomme beaucoup d'espace disque.
7.11.1. Déterminer pourquoi les mesures définies par l'utilisateur ne sont pas disponibles
ServiceMonitor
vous permettent de déterminer comment utiliser les métriques exposées par un service dans des projets définis par l'utilisateur. Suivez les étapes décrites dans cette procédure si vous avez créé une ressource ServiceMonitor
mais que vous ne voyez pas les métriques correspondantes dans l'interface utilisateur des métriques.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
). - Vous avez activé et configuré la surveillance des charges de travail définies par l'utilisateur.
-
Vous avez créé l'objet
user-workload-monitoring-config
ConfigMap
. -
Vous avez créé une ressource
ServiceMonitor
.
Procédure
Check that the corresponding labels match dans les configurations des services et des ressources
ServiceMonitor
.Obtenir le label défini dans le service. L'exemple suivant interroge le service
prometheus-example-app
dans le projetns1
:$ oc -n ns1 get service prometheus-example-app -o yaml
Exemple de sortie
labels: app: prometheus-example-app
Vérifiez que l'étiquette
matchLabels
app
dans la configuration de la ressourceServiceMonitor
correspond à l'étiquette produite à l'étape précédente :$ oc -n ns1 get servicemonitor prometheus-example-monitor -o yaml
Exemple de sortie
spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-app
NoteVous pouvez vérifier les étiquettes de service et de ressource
ServiceMonitor
en tant que développeur disposant d'autorisations de visualisation pour le projet.
Inspect the logs for the Prometheus Operator dans le projet
openshift-user-workload-monitoring
.Liste les pods du projet
openshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring get pods
Exemple de sortie
NAME READY STATUS RESTARTS AGE prometheus-operator-776fcbbd56-2nbfm 2/2 Running 0 132m prometheus-user-workload-0 5/5 Running 1 132m prometheus-user-workload-1 5/5 Running 1 132m thanos-ruler-user-workload-0 3/3 Running 0 132m thanos-ruler-user-workload-1 3/3 Running 0 132m
Obtenez les journaux du conteneur
prometheus-operator
dans le podprometheus-operator
. Dans l'exemple suivant, le module s'appelleprometheus-operator-776fcbbd56-2nbfm
:$ oc -n openshift-user-workload-monitoring logs prometheus-operator-776fcbbd56-2nbfm -c prometheus-operator
En cas de problème avec le moniteur de service, les journaux peuvent contenir une erreur similaire à cet exemple :
level=warn ts=2020-08-10T11:48:20.906739623Z caller=operator.go:1829 component=prometheusoperator msg="skipping servicemonitor" error="it accesses file system via bearer token file which Prometheus specification prohibits" servicemonitor=eagle/eagle namespace=openshift-user-workload-monitoring prometheus=user-workload
Review the target status for your endpoint sur la page Metrics targets dans l'interface de la console web de OpenShift Container Platform.
- Connectez-vous à la console web de OpenShift Container Platform et naviguez vers Observe → Targets dans la perspective Administrator.
- Localisez le point de terminaison des métriques dans la liste et vérifiez l'état de la cible dans la colonne Status.
- Si l'adresse Status est Down, cliquez sur l'URL du point de terminaison pour obtenir plus d'informations sur la page Target Details relative à cette cible de mesure.
Configure debug level logging for the Prometheus Operator dans le projet
openshift-user-workload-monitoring
.Modifiez l'objet
user-workload-monitoring-config
ConfigMap
dans le projetopenshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
Ajoutez
logLevel: debug
pourprometheusOperator
sousdata/config.yaml
pour définir le niveau du journal àdebug
:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheusOperator: logLevel: debug
Enregistrez le fichier pour appliquer les modifications.
NoteLe site
prometheus-operator
du projetopenshift-user-workload-monitoring
redémarre automatiquement lorsque vous appliquez la modification du niveau de journalisation.Confirmez que le niveau de journalisation
debug
a été appliqué au déploiementprometheus-operator
dans le projetopenshift-user-workload-monitoring
:$ oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"
Exemple de sortie
- --log-level=debug
La journalisation de niveau débogage montre tous les appels effectués par l'opérateur Prometheus.
Vérifiez que le pod
prometheus-operator
fonctionne :$ oc -n openshift-user-workload-monitoring get pods
NoteSi une valeur Prometheus Operator
loglevel
non reconnue est incluse dans la carte de configuration, le podprometheus-operator
peut ne pas redémarrer avec succès.-
Examinez les journaux de débogage pour voir si l'opérateur Prometheus utilise la ressource
ServiceMonitor
. Examinez les journaux pour voir s'il y a d'autres erreurs connexes.
Ressources supplémentaires
- Création d'une carte de configuration de surveillance de la charge de travail définie par l'utilisateur
- Voir Spécification de la surveillance d'un service pour plus de détails sur la création d'un moniteur de service ou d'un moniteur de pod
- Voir Accès aux cibles de métriques dans la perspective de l'administrateur
7.11.2. Déterminer pourquoi Prometheus consomme beaucoup d'espace disque
Les développeurs peuvent créer des étiquettes pour définir les attributs des métriques sous la forme de paires clé-valeur. Le nombre de paires clé-valeur potentielles correspond au nombre de valeurs possibles pour un attribut. Un attribut dont le nombre de valeurs potentielles est illimité est appelé attribut non lié. Par exemple, un attribut customer_id
est non consolidé car il possède un nombre infini de valeurs possibles.
Chaque paire clé-valeur attribuée a une série chronologique unique. L'utilisation de nombreux attributs non liés dans les étiquettes peut entraîner une augmentation exponentielle du nombre de séries temporelles créées. Cela peut avoir un impact sur les performances de Prometheus et consommer beaucoup d'espace disque.
Vous pouvez utiliser les mesures suivantes lorsque Prometheus consomme beaucoup de disque :
- Check the number of scrape samples qui sont collectés.
- Check the time series database (TSDB) status using the Prometheus HTTP API pour plus d'informations sur les étiquettes qui créent le plus de séries temporelles. Cette opération nécessite des privilèges d'administrateur de cluster.
Reduce the number of unique time series that are created en réduisant le nombre d'attributs non liés attribués aux mesures définies par l'utilisateur.
NoteL'utilisation d'attributs liés à un ensemble limité de valeurs possibles réduit le nombre de combinaisons potentielles de paires clé-valeur.
- Enforce limits on the number of samples that can be scraped dans des projets définis par l'utilisateur. Cette opération nécessite des privilèges d'administrateur de cluster.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
- Dans la perspective Administrator, naviguez vers Observe → Metrics.
Exécutez la requête Prometheus Query Language (PromQL) suivante dans le champ Expression. Cette requête renvoie les dix métriques qui ont le plus grand nombre d'échantillons de scrape :
topk(10,count by (job)({__name__=~".+"}))
Étudier le nombre de valeurs d'étiquettes non liées attribuées à des mesures dont le nombre d'échantillons raclés est plus élevé que prévu.
- If the metrics relate to a user-defined projectdans le cas d'une charge de travail, passez en revue les paires clé-valeur de métriques attribuées à votre charge de travail. Celles-ci sont mises en œuvre par les bibliothèques client Prometheus au niveau de l'application. Essayez de limiter le nombre d'attributs non liés référencés dans vos étiquettes.
- If the metrics relate to a core OpenShift Container Platform projectcréez un dossier d'assistance Red Hat sur le portail client Red Hat.
Examinez l'état de la TSDB à l'aide de l'API HTTP Prometheus en exécutant les commandes suivantes en tant qu'administrateur de cluster :
$ oc login -u <nom d'utilisateur> -p <mot de passe>
$ host=$(oc -n openshift-monitoring get route prometheus-k8s -ojsonpath={.spec.host})
$ token=$(oc whoami -t)
$ curl -H "Authorization: Bearer $token" -k "https://$host/api/v1/status/tsdb"
Exemple de sortie
"status": "success",
Ressources supplémentaires
- Pour plus d'informations sur la définition d'une limite d'échantillonnage pour les projets définis par l'utilisateur et la création des règles d'alerte correspondantes, voir Définir une limite d'échantillonnage pour les projets définis par l'utilisateur
7.12. Diagnostiquer les problèmes liés à OpenShift CLI (oc
)
7.12.1. Comprendre les niveaux de logs de l'OpenShift CLI (oc
)
Avec l'OpenShift CLI (oc
), vous pouvez créer des applications et gérer des projets OpenShift Container Platform à partir d'un terminal.
Si des problèmes spécifiques à la commande oc
surviennent, augmentez le niveau de journalisation oc
pour obtenir les détails de la demande API, de la réponse API et de la demande curl
générés par la commande. Cela permet d'obtenir une vue granulaire de l'opération sous-jacente d'une commande oc
particulière, qui peut à son tour fournir des informations sur la nature de l'échec.
oc
les niveaux de journalisation vont de 1 à 10. Le tableau suivant fournit une liste des niveaux de journalisation de oc
, ainsi que leur description.
Tableau 7.4. OpenShift CLI (oc
) niveaux de journalisation
Niveau d'enregistrement | Description |
---|---|
1 à 5 | Pas de journalisation supplémentaire vers stderr. |
6 | Enregistrer les demandes d'API sur stderr. |
7 | Enregistrer les requêtes et les en-têtes de l'API dans le fichier stderr. |
8 | Consigne les demandes, les en-têtes et le corps de l'API, ainsi que les en-têtes et le corps de la réponse de l'API dans stderr. |
9 |
Consigne les demandes, les en-têtes et le corps de l'API, les en-têtes et le corps de la réponse de l'API, ainsi que les demandes |
10 |
Consigne les demandes, les en-têtes et le corps de l'API, les en-têtes et le corps de la réponse de l'API, ainsi que les demandes |
7.12.2. Spécifier les niveaux de journalisation de l'OpenShift CLI (oc
)
Vous pouvez enquêter sur les problèmes liés à l'OpenShift CLI (oc
) en augmentant le niveau de journalisation de la commande.
Conditions préalables
-
Installez le CLI OpenShift (
oc
).
Procédure
Spécifier le niveau de journalisation de
oc
lors de l'exécution d'une commandeoc
:oc <options> --loglevel <log_level>
Le jeton de session actuel de l'utilisateur d'OpenShift Container Platform est généralement inclus dans les demandes enregistrées sur
curl
, le cas échéant. Vous pouvez également obtenir manuellement le jeton de session de l'utilisateur actuel, pour tester étape par étape certains aspects du processus sous-jacent d'une commandeoc
:$ oc whoami -t