Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Dépannage de l’installation de Paragon Automation

RÉSUMÉ Lisez les rubriques suivantes pour savoir comment résoudre les problèmes typiques que vous pouvez rencontrer pendant et après l’installation.

Résoudre les conflits de fusion du fichier de configuration

Le init script crée les fichiers de configuration du modèle. Si vous mettez à jour une installation existante à l’aide du même config-dir répertoire que celui utilisé pour l’installation, les fichiers de modèle créés par le init script sont fusionnés avec les fichiers de configuration existants. Parfois, cette action de fusion crée un conflit de fusion que vous devez résoudre. Le script vous invite à résoudre le conflit. Lorsque vous y êtes invité, sélectionnez l’une des options suivantes :

  • C : vous pouvez conserver le fichier de configuration existant et ignorer le nouveau fichier de modèle. Il s’agit de l’option par défaut.

  • n : vous pouvez ignorer le fichier de configuration existant et réinitialiser le fichier de modèle.

  • m : vous pouvez fusionner les fichiers manuellement. Les sections en conflit sont marquées par des lignes commençant par <<<<<<<<, ||||||||, ========et >>>>>>>>. Vous devez modifier le fichier et supprimer les marqueurs de fusion avant de procéder à la mise à jour.

  • d : vous pouvez afficher les différences entre les fichiers avant de décider comment résoudre le conflit.

Résoudre les problèmes courants de sauvegarde et de restauration

Supposons que vous détruisiez un cluster existant et que vous redéployiez une image logicielle sur les mêmes noeuds de cluster. Dans un tel scénario, si vous essayez de restaurer une configuration à partir d’un dossier de configuration précédemment sauvegardé, l’opération de restauration peut échouer. L’opération de restauration échoue car le chemin de montage de la configuration sauvegardée est maintenant modifié. Lorsque vous détruisez un cluster existant, le volume persistant est supprimé. Lorsque vous redéployez la nouvelle image, le volume persistant est recréé dans l’un des noeuds du cluster chaque fois qu’il y a de l’espace disponible, mais pas nécessairement dans le même noeud que précédemment. Par conséquent, l’opération de restauration échoue.

Pour contourner ces problèmes de sauvegarde et de restauration :

  1. Déterminez le chemin de montage du nouveau volume persistant.

  2. Copiez le contenu du chemin de montage du volume persistant précédent vers le nouveau chemin.

  3. Relancez l’opération de restauration.

Afficher les fichiers journaux d’installation

Si le deploy script échoue, vous devez vérifier les fichiers journaux d’installation dans le config-dir répertoire. Par défaut, le config-dir répertoire stocke six fichiers journaux compressés. Le fichier journal actuel est enregistré en tant que journal et les fichiers journaux précédents sont enregistrés en tant que fichiers log.1 à log.5 . Chaque fois que vous exécutez le deploy script, le journal actuel est enregistré et le journal le plus ancien est supprimé.

Vous trouverez généralement des messages d’erreur à la fin d’un fichier journal. Affichez le message d’erreur et corrigez la configuration.

Afficher les fichiers journaux dans Grafana

Grafana est un outil de visualisation de données open-source. L’interface utilisateur de Grafana vous permet de créer et d’afficher des tableaux, des graphiques et d’autres éléments visuels afin d’organiser et de comprendre les données. Vous pouvez créer des tableaux de bord pour surveiller l’état des appareils, et vous pouvez également interroger des données et afficher les résultats à partir de l’interface utilisateur. L’interface utilisateur Grafana restitue les données de la base de données de séries chronologiques (TSDB) de Paragon Automation. Pour plus d’informations, reportez-vous à la documentation Grafana.

Pour afficher les journaux dans l’application Grafana :

  1. Utilisez l’une des méthodes suivantes pour accéder à Grafana :
    • Utiliser l’adresse IP virtuelle (VIP) du contrôleur d’entrée : ouvrez un navigateur et saisissez https://vip-of-ingress-controller-or-hostname-of-main-web-application/cluster-logs dans le champ URL.
    • Utiliser la page Journaux : dans l’interface utilisateur Paragon Automation, cliquez sur Surveillance > journaux dans la barre de navigation de gauche.
  2. Entrez le nom d’utilisateur grafana_admin_user et le mot de grafana_admin_password passe que vous avez configurés dans le fichier config.yml lors de l’installation. Le nom d’utilisateur par défaut est admin.

    Si vous ne configurez pas le mot de grafana_admin_password passe, le programme d’installation génère un mot de passe aléatoire. Vous pouvez récupérer le mot de passe à l’aide de la commande suivante :

    # kubectl get secret -n kube-system grafana -o jsonpath={..grafana-password} | base64 -d

  3. Cliquez sur Accueil dans le coin supérieur gauche de la page.
  4. Cliquez sur Paragon Logs pour afficher les journaux. S'il n'est pas déjà visible, recherchez Paragon Logs et cliquez dessus.
  5. (Facultatif) Pour obtenir des instructions sur la création de requêtes, consultez Interroger et transformer des données.

Dépannage à l’aide de l’interface kubectl

kubectl (Kube Control) est un utilitaire de ligne de commande qui interagit avec l’API Kubernetes, et la ligne de commande la plus courante utilisée pour contrôler les clusters Kubernetes.

Vous pouvez émettre des commandes kubectl sur le nœud principal juste après l’installation. Pour exécuter des commandes kubectl sur les nœuds de travail, vous devez copier le fichier admin.conf et définir la variable d’environnement kubeconfig ou utiliser la commande export KUBECONFIG=config-dir /admin.conf . Le fichier admin.conf est copié dans le répertoire config-dir de l’hôte de contrôle dans le cadre du processus d’installation.

Vous utilisez l’outil de ligne de commande kubectl pour communiquer avec l’API Kubernetes et obtenir des informations sur les ressources de l’API telles que les nœuds, les pods et les services, afficher les fichiers journaux, ainsi que créer, supprimer ou modifier ces ressources.

La syntaxe des commandes kubectl est la suivante :

kubectl [command] [TYPE] [NAME] [flags]

[command] est simplement l’action que vous souhaitez exécuter.

Vous pouvez utiliser la commande suivante pour afficher une liste de commandes kubectl :

root@primary-node:/# kubectl [enter]

Vous pouvez demander de l’aide, pour obtenir des détails et lister tous les drapeaux et options associés à une commande particulière. Par exemple:

root@primary-node:/# kubectl get -h

Pour vérifier et dépanner les opérations dans Paragon Automation, vous allez utiliser les commandes suivantes :

[commande] Description
Avoir

Affichez une ou plusieurs ressources.

La sortie affiche un tableau des informations les plus importantes sur les ressources spécifiées.

décrire Afficher les détails d’une ressource spécifique ou d’un groupe de ressources.
expliquer Documentation des ressources.
Journaux Affichez les journaux d’un conteneur dans un pod.
redémarrage du déploiement Gérer le déploiement d’une ressource.
éditer Modifier une ressource.

[TYPE] représente le type de ressource que vous souhaitez afficher. Les types de ressources ne sont pas sensibles à la casse et vous pouvez utiliser des formes singulières, plurielles ou abrégées.

Par exemple, pod, nœud, service ou déploiement. Pour obtenir la liste complète des ressources et des abréviations autorisées (par exemple, pod = po), exécutez la commande suivante :

kubectl api-resources

Pour en savoir plus sur une ressource, exécutez la commande suivante :

kubectl explain [TYPE]

Par exemple:

[NAME] est le nom d’une ressource spécifique, par exemple, le nom d’un service ou d’un pod. Les noms sont sensibles à la casse.

root@primary-node:/# kubectl get pod pod_name

[flags] fournir des options supplémentaires pour une commande. Par exemple, -o répertorie d’autres attributs pour une ressource. Utilisez help (-h) pour obtenir des informations sur les drapeaux disponibles.

Notez que la plupart des ressources Kubernetes (telles que les pods et les services) se trouvent dans certains espaces de noms, tandis que d’autres ne le sont pas (telles que les nœuds).

Les espaces de noms permettent d’isoler des groupes de ressources au sein d’un même cluster. Les noms des ressources doivent être uniques au sein d’un espace de noms, mais pas entre les espaces de noms.

Lorsque vous utilisez une commande sur une ressource qui se trouve dans un espace de noms, vous devez inclure l’espace de noms dans le cadre de la commande. Les espaces de noms sont sensibles à la casse. Sans l’espace de noms approprié, la ressource spécifique qui vous intéresse risque de ne pas s’afficher.

Vous pouvez obtenir une liste de tous les espaces de noms en exécutant la kubectl get namespace commande.

Si vous souhaitez afficher les ressources de tous les espaces de noms, ou si vous n’êtes pas sûr des espaces de noms auxquels appartient la ressource spécifique qui vous intéresse, vous pouvez entrer --all-namespaces ou - A.

Pour plus d’informations sur Kubernetes, consultez :

Utilisez les rubriques suivantes pour dépanner et afficher les détails de l’installation à l’aide de l’interface kubectl.

Afficher l’état du noeud

Utilisez la kubectl get nodes commande, abrégée en kubectl get no commande, pour afficher l’état des nœuds du cluster. L’état des noeuds doit être Ready, et les rôles doivent être soit control-plane ou none. Par exemple:

Si ce n’est pas Readyle cas d’un nœud, vérifiez si le processus kubelet est en cours d’exécution. Vous pouvez également utiliser le journal système du nœud pour examiner le problème.

Pour vérifier kubelet : root@primary-node:/# kubelet

Afficher l’état du pod

Utilisez la kubectl get po –n namespace commande ou kubectl get po -A pour afficher l’état d’un pod. Vous pouvez spécifier un espace de noms individuel (par exemple healthbot, , northstaret common) ou utiliser le -A paramètre pour afficher l’état de tous les espaces de noms. Par exemple:

L’état des gousses saines doit être Running ou Completed, et le nombre de conteneurs prêts doit correspondre au total. Si l’état d’un pod n’est pas Running ou si le nombre de conteneurs ne correspond pas, utilisez la kubectl describe po commande ou kubectl log (POD | TYPE/NAME) [-c CONTAINER] pour résoudre le problème plus avant.

Afficher des informations détaillées sur un pod

Utilisez la kubectl describe po -n namespace pod-name commande pour afficher des informations détaillées sur un pod spécifique. Par exemple:

Afficher les journaux d’un conteneur dans un pod

Utilisez la kubectl logs -n namespace pod-name [-c container-name] commande pour afficher les journaux d’un pod particulier. Si un pod comporte plusieurs conteneurs, vous devez spécifier le conteneur pour lequel vous souhaitez afficher les journaux. Par exemple:

Exécuter une commande sur un conteneur dans un pod

Utilisez la kubectl exec –ti –n namespacepod-name [-c container-name] -- command-line commande pour exécuter des commandes sur un conteneur à l’intérieur d’un pod. Par exemple:

Après avoir exécuté exec la commande, vous obtenez un shell bash dans le serveur de base de données Postgres. Vous pouvez accéder à l’interpréteur de commandes bash à l’intérieur du conteneur et exécuter des commandes pour vous connecter à la base de données. Tous les conteneurs ne sont pas équipés d’une coque bash. Certains conteneurs ne fournissent que SSH, et d’autres conteneurs n’ont pas de shell.

Voir les services

Utilisez la kubectl get svc -n namespace commande ou kubectl get svc -A pour afficher les services de cluster. Vous pouvez spécifier un espace de noms individuel (par healthbotexemple, , northstaret common), ou vous pouvez utiliser le -A paramètre pour afficher les services de tous les espaces de noms. Par exemple:

Dans cet exemple, les services sont triés par type et seuls les services de type LoadBalancer sont affichés. Vous pouvez afficher les services fournis par le cluster et les adresses IP externes sélectionnées par l’équilibreur de charge pour accéder à ces services.

Vous pouvez accéder à ces services depuis l’extérieur du cluster. L’adresse IP externe est exposée et accessible à partir d’appareils extérieurs au cluster.

Commandes kubectl fréquemment utilisées

  • Répertorier les contrôleurs de réplication :

  • Redémarrez un composant :

  • Modifier une ressource Kubernetes : vous pouvez modifier un déploiement ou n’importe quel objet API Kubernetes, et ces modifications sont enregistrées dans le cluster. Toutefois, si vous réinstallez le cluster, ces modifications ne sont pas conservées.

Dépannage à l’aide de l’utilitaire CLI paragon

Nous avons introduit l paragon 'utilitaire CLI de commande pour exécuter des commandes sur les pods en cours d'exécution dans le système. Il paragon s’agit d’un ensemble de commandes intuitives qui vous permettent d’analyser, d’interroger et de dépanner votre cluster. Pour exécuter les commandes, connectez-vous à l’un des nœuds principaux. La sortie de certaines commandes est codée par couleur car, pour certaines commandes, l’utilitaire paragon de commande exécute les commandes kubecolor au lieu de kubectl, kubecolor code par couleur votre sortie de commande kubectl. Reportez-vous à la Figure 1 pour obtenir un exemple de sortie.

Pour afficher l’ensemble des options d’aide des commandes disponibles, utilisez l’une des commandes suivantes :

Vous pouvez afficher les options d’aide à n’importe quel niveau de commande (pas seulement au niveau supérieur). Par exemple:

Vous pouvez utiliser l’option de tabulation pour afficher les options d’autocomplétion possibles pour les commandes. Pour afficher l’auto-complétion des commandes de niveau supérieur, tapez paragon et appuyez sur la touche de tabulation. Par exemple:

Pour afficher la commande sous-jacente exécutée par une commande paragon, utilisez l’écho ou -e l’option. Par exemple:

Pour exécuter une commande paragon et afficher la commande sous-jacente qu’elle exécute, utilisez l’option debug or -d . Par exemple:

Pour afficher la liste complète des paragon commandes et les commandes sous-jacentes correspondantes qu’elles exécutent, utilisez :

Figure 1 : Exemple de paragon sortie de commande Example paragon command output

Suivez les instructions relatives aux critères d’utilisation spécifiques tels que les arguments ou les conditions préalables, le cas échéant, dans la section d’aide de chaque commande. Certaines commandes ont besoin d’arguments obligatoires. Par exemple, la paragon insights logs devicegroup analytical commande a besoin de l’argument --dg devicegroup-name-with subgroup. Par exemple:

paragon insights logs devicegroup analytical --dg controller-0

Certaines commandes ont des conditions préalables. Par exemple, avant d’utiliser la paragon insights get playbooks commande, vous devez définir le nom d’utilisateur et le mot de passe à l’aide des paragon set username --cred username commandes and paragon set password --cred password .

L’ensemble complet des commandes ainsi que leurs critères d’utilisation sont répertoriés dans le tableau 1.

Tableau 1 : utilitaire CLI paragon

Commander

Description

paragon ambassador get emissary

Affiche les capsules d’émissaire ambassadeur Paragon.

paragon ambassador get pods

Affiche tous les pods ambassadeurs Paragon.

paragon ambassador get services

Affiche tous les services d’ambassadeur Paragon.

paragon common postgres roles

Aide à trouver les rôles Postgres.

paragon describe node

Affiche la description d’un noeud particulier dans le cluster.

Utilisez l’argument --node node-ip .

Exemple: paragon describe node --node 172.16.x.221

Vous pouvez utiliser la paragon get nodes all commande pour obtenir l’adresse IP du nœud.

paragon ems get devicemanager

Affiche les pods Paragon ems du gestionnaire de périphériques.

paragon ems get jobmanager

Affiche les pods Paragon EMS du gestionnaire de tâches.

paragon ems get pods

Affiche tous les pods Paragon EMS.

paragon ems get services

Affiche tous les services Paragon EMS.

paragon ems logs devicemanager

Affiche les journaux des pods du gestionnaire de périphériques Paragon EMS.

Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon ems logs jobmanager

Affiche les journaux du pod paragon ems job manager. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon get namespaces

Affiche tous les espaces de noms disponibles dans Paragon.

paragon get nodes all

Affiche la liste de tous les noeuds du cluster.

paragon get nodes diskpressure

Valide si kubelet a une pression sur le disque.

Utilisez l’argument --node node_ip/node_name .

Exemple: paragon get nodes diskpressure --node 172.16.x.221

paragon get nodes memorypressure

Valide si kubelet dispose d’une mémoire suffisante.

Utilisez l’argument --node node_ip/node_name .

Exemple: paragon get nodes memorypressure --node 172.16.x.221

paragon get nodes networkunavailable

Vérifie s’il y a des problèmes avec calico et le réseau.

Utilisez l’argument --node node_ip/node_name .

Exemple: paragon get nodes networkunavailable --node davinci-primary

paragon get nodes notready

Affiche la liste de tous les noeuds qui ne sont pas prêts dans le cluster.

paragon get nodes pidpressure

Valide si kubelet dispose d’un PID suffisant.

Utilisez l’argument --node node_ip/node_name .

Exemple: paragon get nodes pidpressure --node davinci-worker1

paragon get nodes ready

Affiche la liste de tous les noeuds prêts dans le cluster.

paragon get nodes taint

Affiche la liste de toutes les souillures sur les nœuds.

paragon get pods healthy

Affiche tous les pods de parangon sains.

paragon get pods unhealthy

Affiche tous les pods Paragon malsains.

paragon get services exposed

Affiche tous les services Paragon exposés.

paragon insights cli alerta

Se connecte à la CLI du module alerta de Paragon Insights.

paragon insights cli byoi

Se connecte à la CLI du plug-in BYOI.

Utilisez l’argument --byoi BYOI plugin name .

paragon insights cli configserver

Se connecte à la CLI du pod config-server de Paragon Insights.

paragon insights cli grafana

Se connecte à l’interface de ligne de commande du pod grafana Paragon Insights.

paragon insights cli influxdb

Se connecte à l’interface de ligne de commande du pod influxdb de Paragon Insights.

Utilisez l’argument --influx influxdb-nodeip pour spécifier l’adresse IP du nœud Si ce n’est pas le cas, la commande utilisera le premier nœud influxdb comme nœud par défaut.

Exemple: paragon insights cli influxdb --influx influxdb-172.16.x.21

paragon insights cli mgd

Se connecte à l’interface de ligne de commande du pod mgd de Paragon Insights.

paragon insights describe alerta

Décrit le module alerta de Paragon Insights.

paragon insights describe api

Décrit le pod API REST de Paragon Insights.

paragon insights describe configserver

Décrit le pod serveur de configuration Paragon Insights.

paragon insights describe grafana

Décrit le module grafana de Paragon Insights.

paragon insights describe influxdb

Décrit le pod influxdb de Paragon Insights.

Utilisez l’argument --influx influxdb-nodeip pour spécifier l’adresse IP du nœud. Si ce n’est pas le cas, la commande utilisera le premier nœud influxdb comme nœud par défaut.

Exemple: paragon insights describe influxdb --influx influxdb-172.16.x.21

paragon insights describe mgd

Décrit le pod mgd de Paragon Insights.

paragon insights get alerta

Affiche le module alerta de Paragon Insights.

paragon insights get api

Affiche le module API REST de Paragon Insights.

paragon insights get configserver

Affiche le pod serveur de configuration Paragon Insights.

paragon insights get devicegroups

Affiche tous les groupes d’appareils Paragon Insights.

Le nom d’utilisateur par défaut est admin. Pour modifier le nom d’utilisateur, exécutez la paragon set user --cred usernamecommande >.

Au préalable, exécutez la paragon set password --cred password commande pour définir le mot de passe Paragon (hôte de l’interface utilisateur).

paragon insights get devices

Affiche tous les appareils Paragon Insights.

Le nom d’utilisateur par défaut est admin. Pour modifier le nom d’utilisateur, exécutez la paragon set user --cred username commande.

Au préalable, exécutez la paragon set password --cred password commande pour définir le mot de passe Paragon (hôte de l’interface utilisateur).

paragon insights get grafana

Affiche le module grafana de Paragon Insights.

paragon insights get influxdb

Affiche le pod influxdb de Paragon Insights.

paragon insights get ingest

Affiche les pods d’ingestion de télémétrie réseau Paragon Insights.

paragon insights get mgd

Affiche le module mgd de Paragon Insights.

paragon insights get playbooks

Affiche tous les playbooks Paragon Insights.

Le nom d’utilisateur par défaut est admin. Pour modifier le nom d’utilisateur, exécutez la paragon set user --cred username commande.

Au préalable, exécutez la paragon set password --cred password commande pour définir le mot de passe Paragon (hôte de l’interface utilisateur).

paragon insights get pods

Affiche tous les modules Paragon Insights.

paragon insights get services

Affiche tous les services Paragon Insights.

paragon insights logs alerta

Affiche les journaux du module alerta de Paragon Insights.

paragon insights logs api

Affiche les journaux du pod API REST de Paragon Insights.

paragon insights logs byoi

Affiche les journaux du plug-in BYOI de Paragon Insights.

Utilisez l’argument --byoi BYOI plugin name .

paragon insights logs configserver

Affiche les journaux du pod serveur de configuration Paragon Insights.

paragon insights logs devicegroup analytical

Affiche les journaux du groupe d’équipements Paragon Insights pour le moteur d’analyse des services.

Utilisez l’argument --dg device Group name with subgroup .

Exemple: paragon insights logs devicegroup analytical --dg controller-0

Dans l’exemple, controller est le nom du groupe de périphériques et 0 est le sous-groupe.

paragon insights logs devicegroup itsdb

Affiche les journaux du groupe d’appareils Paragon Insights pour le service itsdb.

Utilisez l’argument --dg device Group name with subgroup .

Exemple: paragon insights logs devicegroup itsdb --dg controller-0

Dans l’exemple, controller est le nom du groupe de périphériques et 0 est le sous-groupe.

paragon insights logs devicegroup jtimon

Affiche les journaux du groupe d’appareils Paragon Insights pour le service jtimon.

Utilisez l’argument --dg device Group name with subgroup .

Exemple: paragon insights logs devicegroup jtimon --dg controller-0

Dans l’exemple, controller est le nom du groupe de périphériques et 0 est le sous-groupe.

paragon insights logs devicegroup native

Affiche les journaux du groupe d’appareils Paragon Insights pour service jti natif.

Utilisez l’argument --dg device Group name with subgroup .

Exemple: paragon insights logs devicegroup native --dg controller-0

Dans l’exemple, controller est le nom du groupe de périphériques et 0 est le sous-groupe.

paragon insights logs devicegroup syslog

Affiche les journaux du groupe de périphériques Paragon Insights pour le syslog de service.

Utilisez l’argument --dg device Group name with subgroup .

Exemple: paragon insights logs devicegroup syslog --dg controller-0

Dans l’exemple, controller est le nom du groupe de périphériques et 0 est le sous-groupe.

paragon insights logs grafana

Affiche les journaux du module Grafana de Paragon Insights.

paragon insights logs influxdb

Affiche les journaux du pod influxdb de Paragon Insights.

Utilisez l’argument --influx influxdb-nodeip pour spécifier l’adresse IP du nœud. Si ce n’est pas le cas, la commande utilisera le premier nœud influxdb comme nœud par défaut.

Exemple: paragon insights logs influxdb --influx influxdb-172.16.x.21

paragon insights logs mgd

Affiche les journaux du module mgd de Paragon Insights.

paragon pathfinder cli bmp

Se connecte à l’interface de ligne de commande du conteneur BMP Paragon Pathfinder.

paragon pathfinder cli configserver

Se connecte à la CLI du conteneur ns-configserver de Paragon Pathfinder.

paragon pathfinder cli crpd

Se connecte à l’interface de ligne de commande du conteneur cRPD Paragon Pathfinder.

paragon pathfinder cli debugutils

Se connecte à l’interface de ligne de commande du conteneur debugutils de Paragon Pathfinder.

paragon pathfinder cli netconf

Se connecte à la CLI du conteneur netconf de Paragon Pathfinder.

paragon pathfinder cli pceserver

Se connecte à la CLI des services de conteneur ns-pceserver (PCEP) de Paragon Pathfinder.

paragon pathfinder cli pcserver

Se connecte à la CLI du conteneur Paragon Pathfinder ns-pcserver (PCS).

paragon pathfinder cli pcviewer

Se connecte à l’interface de ligne de commande du conteneur ns-pcsviewer (application de bureau Paragon Planner) de Paragon Pathfinder.

paragon pathfinder cli scheduler

Permet d’accéder à l’interface de ligne de commande du conteneur du planificateur Paragon Pathfinder.

paragon pathfinder cli toposerver

Se connecte à l’interface de ligne de commande du conteneur ns-toposerver (service de topologie) de Paragon Pathfinder.

paragon pathfinder cli web

Se connecte à la CLI du conteneur ns-web de Paragon Pathfinder.

paragon pathfinder debug bgpls config

Débogue la configuration des options de routage cRPD de Paragon Pathfinder associée à BGP-LS.

paragon pathfinder debug bgpls routes

Débogue les routes cRPD de Paragon Pathfinder associées à BGP-LS.

paragon pathfinder debug genjvisiondata help

Affiche l’aide de Paragon Pathfinder debugutils genjvisiondata.

paragon pathfinder debug genjvisiondata params

Affiche les paramètres de Paragon Pathfinder debugutils genjvisiondata.

paragon pathfinder debug lsp

Se connecte à l’interface de ligne de commande PCEP de Paragon Pathfinder pour le débogage.

paragon pathfinder debug postgres status

Affiche l’état Postgres du cluster Kubernetes.

paragon pathfinder debug rabbitmq status

Affiche l’état du cluster rabbitmqctl.

paragon pathfinder debug snoop amqp

Exécute le pod debugutils Paragon Pathfinder pour espionner et décoder les données échangées entre AMQP.

paragon pathfinder debug snoop help

Affiche l’aide de Paragon Pathfinder debugutils snoop.

paragon pathfinder debug snoop postgres

Exécute le pod debugutils Paragon Pathfinder pour espionner et décoder les données échangées entre Postgres.

paragon pathfinder debug snoop redis link

Exécute le pod debugutils Paragon Pathfinder pour espionner et décoder les données échangées entre le lien Redis.

paragon pathfinder debug snoop redis lsp

Exécute le pod debugutils Paragon Pathfinder pour espionner et décoder les données échangées entre Redis lsp.

paragon pathfinder debug snoop redis node

Exécute le pod debugutils Paragon Pathfinder pour espionner et décoder les données échangées entre les nœuds Redis.

paragon pathfinder debug topoutil help

Affiche Paragon Pathfinder debugutils topo_util aide.

paragon pathfinder debug topoutil safemode deactivate

Affiche Paragon Pathfinder outil debugutils topo_util pour désactiver le mode sans échec.

paragon pathfinder debug topoutil topo refresh

Exécute Paragon Pathfinder outil debugutils topo_util pour actualiser la topologie actuelle.

paragon pathfinder debug topoutil topo save

Exécute Paragon Pathfinder outil debugutils topo_util pour enregistrer l’instantané de la topologie actuelle.

paragon pathfinder describe bmp

Décrit le module Paragon Pathfinder, y compris les conteneurs cRPD et BMP.

paragon pathfinder describe configserver

Décrit le pod Paragon Pathfinder, y compris le conteneur de serveur de configuration.

paragon pathfinder describe debugutils

Décrit le pod Paragon Pathfinder, y compris le conteneur debugutils.

paragon pathfinder describe netconf

Décrit le module Paragon Pathfinder avec le conteneur ns-netconfd.

paragon pathfinder describe pceserver

Décrit le module Paragon Pathfinder, y compris le conteneur ns-pceserver (services PCEP).

paragon pathfinder describe pcserver

Décrit le pod Paragon Pathfinder, y compris le conteneur ns-pcserver (PCS).

paragon pathfinder describe pcviewer

Décrit le pod Paragon Pathfinder, y compris le conteneur ns-pcsviewer (application de bureau Paragon Planner).

paragon pathfinder describe scheduler

Décrit le module Paragon Pathfinder, y compris le conteneur du planificateur.

paragon pathfinder describe toposerver

Décrit le module Paragon Pathfinder, y compris le conteneur ns-toposerver (service de topologie).

paragon pathfinder describe web

Décrit le module Paragon Pathfinder, y compris le conteneur Web.

paragon pathfinder get bmp

Affiche le module Paragon Pathfinder, y compris les conteneurs cRPD et BMP.

paragon pathfinder get configserver

Affiche le module Paragon Pathfinder, y compris les conteneurs ns-configserver et syslog.

paragon pathfinder get debugutils

Affiche le module Paragon Pathfinder, y compris le conteneur debugutils.

paragon pathfinder get netconf

Affiche le pod Paragon Pathfinder associé au processus netconf.

paragon pathfinder get pceserver

Affiche le module Paragon Pathfinder, y compris le conteneur ns-pceserver (services PCEP).

paragon pathfinder get pcserver

Affiche le module Paragon Pathfinder, y compris le conteneur ns-pcserver (PCS).

paragon pathfinder get pcviewer

Affiche le module Paragon Pathfinder, y compris le conteneur ns-pcsviewer (application de bureau Paragon Planner).

paragon pathfinder get pods

Affiche tous les modules Paragon Pathfinder.

paragon pathfinder get scheduler

Affiche le module Paragon Pathfinder associé au processus de planification.

paragon pathfinder get services

Affiche tous les services Paragon Pathfinder.

paragon pathfinder get toposerver

Affiche le module Paragon Pathfinder, y compris le conteneur ns-toposerver (service de topologie).

paragon pathfinder get web

Affiche le module Paragon Pathfinder associé au processus ns-web.

paragon pathfinder logs bmp container bmp

Affiche les journaux des pods bmp de Paragon Pathfinder conteneur bmp. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs bmp container crpd

Affiche les journaux du conteneur cRPD des pods bmp de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs bmp container syslog

Affiche les journaux du conteneur syslog des pods bmp de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs configserver container nsconfigserver

Affiche les journaux des pods configserver de Paragon Pathfinder conteneur ns-configserver. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs configserver container syslog

Affiche les journaux du conteneur syslog des pods configserver de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs netconf container nsnetconfd

Affiche les journaux des pods netconf de Paragon Pathfinder conteneur ns-netconfd. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs netconf container syslog

Affiche les journaux du conteneur syslog des pods netconf de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pceserver container nspceserver

Affiche les journaux des pods pceserver de Paragon Pathfinder conteneur ns-pceserver. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pceserver container syslog

Affiche les journaux du conteneur syslog des pods pceserver de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pceserver syslog filtered

Affiche les journaux traités des pods pceserver de Paragon Pathfinder conteneur syslog récupérant uniquement l’horodatage, le niveau et le message. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pcserver container nspcserver

Affiche les journaux de Paragon Pathfinder pcserver pods ns-pcserver container. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pcserver container syslog

Affiche les journaux de Paragon Pathfinder pcserver pods syslog container. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pcserver syslog filtered

Affiche les journaux traités des pods pceserver de Paragon Pathfinder récupère le conteneur syslog uniquement avec l’horodatage, le niveau et le message. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pcviewer container nspcviewer

Affiche les journaux des pods pcviewer de Paragon Pathfinder conteneur ns-pcviewer. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs pcviewer container syslog

Affiche les journaux du conteneur syslog des pods pcviewer de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs toposerver container nstopodbinit

Affiche les journaux des pods toposerver de Paragon Pathfinder conteneur ns-topo-dbinit. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs toposerver container nstopodbinitcache

Affiche les journaux des pods toposerver de Paragon Pathfinder conteneur ns-topo-dbinit-cache. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs toposerver container nstoposerver

Affiche les journaux des pods toposerver de Paragon Pathfinder conteneur ns-toposerver. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs toposerver container syslog

Affiche les journaux du conteneur syslog des pods toposerver de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs toposerver syslog filtered

Affiche les journaux traités des pods de toposerveur Paragon Pathfinder récupère le conteneur syslog uniquement avec l’horodatage, le niveau et le message. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs web container nsweb

Affiche les journaux du conteneur ns-web pods de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs web container nswebdbinit

Affiche les journaux des pods Web ns-web-dbinit du conteneur ns-web-dbinit de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder logs web container syslog

Affiche les journaux du conteneur syslog des pods Web de Paragon Pathfinder. Utilisez l’argument pour obtenir des --type follow journaux de diffusion en direct.

paragon pathfinder rabbitmq geoha status

Affiche l’état de la fédération (à partir de l’instance rabbitmq-0). L’état GeoHa n’est disponible que pour une configuration à double cluster.

paragon rookceph ceph osddf

Signale l’utilisation de l’espace disque du système de fichiers Rook et Ceph OSD.

paragon rookceph ceph osdpoolstats

Affiche les statistiques des pools OSD Rook et Ceph.

paragon rookceph ceph osdstatus

Affiche l’état de l’OSD de la tour et du Ceph.

paragon rookceph ceph osdtree

Affiche l’arbre OSD de la tour et de Ceph.

paragon rookceph ceph osdutilization

Affiche l’utilisation de l’OSD Rook et Ceph.

paragon rookceph ceph pgstat

Affiche l’état de la tour et de la figure de Ceph.

paragon rookceph ceph status

Affiche l’état de la tour et du ceph.

paragon rookceph cli toolbox

Se connecte à l’interface de ligne de commande du pod de boîte à outils Rook et Ceph.

paragon rookceph get pods

Affiche les pods Rook et Ceph.

paragon rookceph get services

Affiche les services Rook et Ceph.

paragon rookceph radosgw get period

Il s’agit de l’utilitaire d’administration des utilisateurs de passerelle RADOS qui récupère les informations sur la période.

paragon rookceph radosgw synch status

Il s’agit de l’utilitaire d’administration des utilisateurs de passerelle RADOS qui obtient l’état de synchronisation des métadonnées.

paragon set password

Définit le mot de passe Paragon (hôte de l’interface utilisateur) pour l’authentification des appels REST.

Utilisez cette commande set password unique obligatoire pour définir le mot de passe à l’aide de l’argument --cred password .

Exemple: paragon set password --cred AdminXYX!

paragon set username

Définit le nom d’utilisateur Paragon (hôte de l’interface utilisateur) pour l’authentification des appels Rest. Le nom d’utilisateur par défaut est admin.

Utilisez l’argument --cred username pour définir un nom d’utilisateur différent.

Exemple: paragon set username --cred newadmin

Dépannage de Ceph et Rook

Ceph nécessite des versions relativement récentes du noyau. Si votre noyau Linux est très ancien, envisagez de le mettre à niveau ou d’en réinstaller un nouveau.

Utilisez cette section pour résoudre les problèmes liés à Ceph et Rook.

Espace disque insuffisant

Une raison courante de l’échec de l’installation est que les démons de stockage d’objets (OSD) ne sont pas créés. Un OSD configure le stockage sur un nœud de cluster. Les OSD peuvent ne pas être créés en raison de la non-disponibilité des ressources disque, sous la forme de ressources insuffisantes ou d’un espace disque mal partitionné. Assurez-vous que les nœuds disposent d’un espace disque non partitionné suffisant.

Reformater un disque

Examinez les journaux des tâches « rook-ceph-osd-prepare-hostname-* ». Les journaux sont descriptifs. Si vous avez besoin de reformater le disque ou la partition et de redémarrer Rook, effectuez les opérations suivantes :

  1. Utilisez l’une des méthodes suivantes pour reformater un disque ou une partition existante.
    • Si vous avez un périphérique de stockage par bloc qui aurait dû être utilisé pour Ceph, mais qui n'a pas été utilisé parce qu'il était dans un état inutilisable, vous pouvez reformater complètement le disque.
    • Si vous avez une partition de disque qui aurait dû être utilisée pour Ceph, vous pouvez effacer complètement les données de la partition.
    Note:

    Ces commandes reformatent complètement le disque ou les partitions que vous utilisez et vous perdrez toutes les données qu’ils contiennent.

  2. Redémarrez Rook pour enregistrer les modifications et relancez le processus de création de l’OSD.

Afficher l’état du pod

Pour vérifier l’état des pods Rook et Ceph installés dans l’espace rook-ceph de noms, utilisez la # kubectl get po -n rook-ceph commande. Les pods suivants doivent être dans l’état running .

  • rook-ceph-mon-*: en règle générale, trois pods de moniteur sont créés.
  • rook-ceph-mgr-*—Un pod de gestionnaire
  • rook-ceph-osd-*: trois pods OSD ou plus
  • rook-ceph-mds-cephfs-*—Serveurs de métadonnées
  • rook-ceph-rgw-object-store-*—Passerelle ObjectStore
  • rook-ceph-tools*: pour des options de débogage supplémentaires.

    Pour vous connecter à la boîte à outils, utilisez la commande :

    $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools \ -o jsonpath={..metadata.name}) -- bash

    Voici quelques-unes des commandes courantes que vous pouvez utiliser dans la boîte à outils :

    # ceph status # ceph osd status, # ceph osd df, # ceph osd utilization, # ceph osd pool stats, # ceph osd tree, and # ceph pg stat

Dépannage de la défaillance de l’OSD Ceph

Vérifiez l’état des pods installés dans l’espace rook-ceph de noms.

# kubectl get po -n rook-ceph

Si un rook-ceph-osd-* pod est à l’état Error ou CrashLoopBackoff , vous devez réparer le disque.

  1. Arrêtez le rook-ceph-operatorfichier .

    # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=0

  2. Supprimez les processus OSD défaillants.

    # kubectl delete deploy -n rook-ceph rook-ceph-osd-number

  3. Connectez-vous à la boîte à outils.

    $ kubectl exec -ti -n rook-ceph $(kubectl get po -n rook-ceph -l app=rook-ceph-tools -o jsonpath={..metadata.name}) -- bash

  4. Identifiez l’OSD défaillant.

    # ceph osd status

  5. Marquez l’OSD qui a échoué.

  6. Retirez l’OSD défaillant.

    # ceph osd purge number --yes-i-really-mean-it

  7. Connectez-vous au nœud qui a hébergé l’OSD défaillant et effectuez l’une des opérations suivantes :
    • Remplacez le disque dur en cas de panne matérielle.
    • Reformatez complètement le disque.
    • Reformatez complètement la partition.
  8. Redémarrez rook-ceph-operator.

    # kubectl scale deploy -n rook-ceph rook-ceph-operator --replicas=1

  9. Surveillez les modules OSD.

    # kubectl get po -n rook-ceph

    Si l’OSD ne se rétablit pas, utilisez la même procédure pour supprimer l’OSD, puis retirez le disque ou supprimez la partition avant de redémarrer rook-ceph-operator.

Résoudre les problèmes liés à l’échec de l’installation de l’entrefer

L’installation de l’entrefer ainsi que le kube-apiserver échoue avec l’erreur suivante car vous n’avez pas de fichier existant /etc/resolv.conf .

Pour créer un fichier, vous devez exécuter la #touch /etc/resolv.conf commande en tant qu’utilisateur racine, puis redéployer le cluster Paragon Automation.

Récupérer après une défaillance de cluster RabbitMQ

Si votre cluster Paragon Automation tombe en panne (par exemple, à cause d’une panne de courant), le bus de messages RabbitMQ peut ne pas redémarrer correctement.

Pour vérifier cette condition, exécutez la kubectl get po -n northstar -l app=rabbitmq commande. Cette commande doit afficher trois pods dont l’état est Running. Par exemple:

Toutefois, si l’état d’un ou de plusieurs pods est Error, utilisez la procédure de récupération suivante :

  1. Supprimez RabbitMQ.

    kubectl delete po -n northstar -l app=rabbitmq

  2. Vérifiez l’état des pods.

    kubectl get po -n northstar -l app=rabbitmq.

    Répétez l’opération kubectl delete po -n northstar -l app=rabbitmq jusqu’à ce que l’état de toutes les pods soit Running.

  3. Redémarrez les applications Paragon Pathfinder.

Désactiver le démon udevd lors de la création de l’OSD

Le démon vous permet de gérer de udevd nouveaux matériels tels que des disques, des cartes réseau et des CD. Lors de la création des OSD, le udevd démon détecte les OSD et peut les verrouiller avant qu’ils ne soient complètement initialisés. Le programme d’installation de Paragon Automation se désactive systemd-udevd pendant l’installation et l’active une fois que Rook a initialisé les OSD.

Lors de l’ajout ou du remplacement de noeuds et de la réparation de noeuds défaillants, vous devez désactiver manuellement le démon afin que la udevd création de l’OSD n’échoue pas. Vous pouvez réactiver le démon une fois les OSD créés.

Utilisez ces commandes pour désactiver et activer udevdmanuellement .

  1. Connectez-vous au nœud que vous souhaitez ajouter ou réparer.
  2. Désactivez le udevd démon.
    1. Vérifiez si udevd est en cours d’exécution.

      # systemctl is-active systemd-udevd

    2. Si udevd est actif, désactivez-le. # systemctl mask system-udevd --now
  3. Lorsque vous réparez ou remplacez un nœud, les systèmes de fichiers distribués Ceph ne sont pas automatiquement mis à jour. Si les disques de données sont détruits dans le cadre du processus de réparation, vous devez récupérer les démons de stockage d’objets (OSD) hébergés sur ces disques de données.

    1. Connectez-vous à la boîte à outils Ceph et affichez l’état des OSD. Le ceph-tools script est installé sur un noeud principal. Vous pouvez vous connecter au nœud principal et utiliser l’interface kubectl pour accéder ceph-toolsà . Pour utiliser un noeud autre que le noeud principal, vous devez copier le fichier admin.conf (dans le config-dir répertoire de l’hôte de contrôle) et définir la variable d’environnement kubeconfig ou utiliser la export KUBECONFIG=config-dir/admin.conf commande.

      $ ceph-tools# ceph osd status

    2. Vérifiez que tous les OSD sont répertoriés sous la forme exists,up. Si les OSD sont endommagés, suivez les instructions de dépannage expliquées dans Dépannage de Ceph et Rook.

  4. Connectez-vous au nœud que vous avez ajouté ou réparé après avoir vérifié que tous les OSD sont créés.
  5. Réactiver udevd sur le noeud.

    systemctl unmask system-udevd

Vous pouvez également définir disable_udevd: true dans le config.yml et exécuter la ./run -c config-dir deploy commande. Nous vous déconseillons de redéployer le cluster uniquement pour désactiver le udevd démon.

Scripts wrapper pour les commandes utilitaires courantes

Vous pouvez utiliser les scripts wrapper suivants installés dans /usr/local/bin pour vous connecter et exécuter des commandes sur les pods en cours d’exécution dans le système.
Description de la commande
paragon-db [arguments] Connectez-vous au serveur de base de données et démarrez le shell SQL Postgres à l’aide du compte de superutilisateur. Les arguments facultatifs sont transmis à la commande Postgres SQL.
pf-cmgd [arguments] Démarrez l’interface de ligne de commande dans le module CMGD Paragon Pathfinder. Les arguments facultatifs sont exécutés par l’interface de ligne de commande.
pf-crpd [arguments] Démarrez l’interface de ligne de commande dans le module cRPD Paragon Pathfinder. Les arguments facultatifs sont exécutés par l’interface de ligne de commande.
pf-redis [arguments] Démarrez le redis-cli (authentifié) dans le pod Redis de Paragon Pathfinder. Les arguments facultatifs sont exécutés par le pod Redis.
pf-debugutils [arguments] Démarrez l’interpréteur de commandes dans le pod debugutils de Paragon Pathfinder. Les arguments optionnels sont exécutés par le shell. Les utilitaires Pathfinder debugutils sont installés s’il install_northstar_debugutils: true est configuré dans le fichier config.yml .
ceph-tools [arguments] Démarrez le shell dans la boîte à outils Ceph. Les arguments optionnels sont exécutés par le shell.

Sauvegarder l’hôte de contrôle

Si votre hôte de contrôle tombe en panne, vous devez sauvegarder le config-dir répertoire sur un emplacement distant pour pouvoir reconstruire votre cluster. Le config-dir contient les fichiers d’inventaire, de config.yml et de id_rsa .

Vous pouvez également reconstruire l’inventaire et les fichiers config.yml en téléchargeant des informations à partir du cluster à l’aide des commandes suivantes :

# kubectl get cm -n common metadata -o jsonpath={..inventory} > inventory

# kubectl get cm -n common metadata -o jsonpath={..config_yml} > config.yml

Vous ne pouvez pas récupérer les clés SSH ; Vous devez remplacer les clés défectueuses par de nouvelles clés.

Comptes de service utilisateur pour le débogage

Paragon Pathfinder, le gestionnaire de télémétrie et les applications de la plate-forme de base utilisent en interne Paragon Insights pour la collecte de télémétrie. Pour déboguer les problèmes de configuration associés à ces applications, trois comptes de service utilisateur sont créés, par défaut, lors de l’installation de Paragon Automation. La portée de ces comptes de service est limitée au débogage de l’application correspondante uniquement. Les détails des comptes de service sont répertoriés dans le tableau suivant.

Tableau 2 : Détails du compte de service
Nom et portée de l’application Nom d’utilisateur du compte Mot de passe par défaut du compte
Paragon Pathfinder (northstar) hb-northstar-admin Admin123 !
Gestionnaire de télémétrie (tm) hb-tm-admin
Plate-forme de base (ems-dmon) hb-ems-dmon

Vous devez utiliser ces comptes uniquement à des fins de débogage. N’utilisez pas ces comptes pour des opérations quotidiennes ou pour modifier une configuration. Nous vous recommandons de modifier les identifiants de connexion pour des raisons de sécurité.