Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Paragon Automationのインストールのトラブルシューティング

概要 以下のトピックを読んで、インストール中およびインストール後に発生する可能性のある一般的な問題のトラブルシューティング方法について説明します。

構成ファイルのマージの競合を解決する

init スクリプトは、テンプレート構成ファイルを作成します。インストールに使用したのと同じ config-dir ディレクトリーを使用して既存のインストール済み環境を更新する場合、init スクリプトが作成するテンプレート・ファイルは、既存の構成ファイルとマージされます。場合によっては、このマージ アクションによって、解決が必要なマージの競合が発生します。スクリプトは、競合を解決する方法についてプロンプトを表示します。プロンプトが表示されたら、次のいずれかのオプションを選択します。

  • C - 既存のコンフィギュレーション ファイルを保持し、新しいテンプレート ファイルを破棄できます。これはデフォルトのオプションです。

  • n:既存のコンフィギュレーション ファイルを破棄し、テンプレート ファイルを再初期化できます。

  • m - ファイルを手動でマージできます。競合するセクションは、 <<<<<<<<||||||||========、および >>>>>>>> で始まる行でマークされます。更新を続行する前に、ファイルを編集し、差し込みマーカーを削除する必要があります。

  • d - 競合の解決方法を決定する前に、ファイル間の相違点を表示できます。

バックアップと復元に関する一般的な問題の解決

既存のクラスタを破棄し、同じクラスタ ノードにソフトウェア イメージを再展開するとします。このような場合、以前にバックアップした設定フォルダから設定を復元しようとすると、復元操作が失敗することがあります。バックアップされた構成のマウント パスが変更されているため、復元操作が失敗します。既存のクラスターを破棄すると、永続ボリュームは削除されます。新しいイメージを再デプロイすると、永続ボリュームは、使用可能な領域があるクラスター ノードの 1 つに再作成されますが、必ずしも以前と同じノードに存在する必要はありません。その結果、復元操作は失敗します。

これらのバックアップと復元の問題を回避するには:

  1. 新しい永続ボリュームのマウント パスを決定します。

  2. 以前の永続ボリュームのマウントパスの内容を新しいパスにコピーします。

  3. 復元操作を再試行します。

インストールログファイルの表示

deploy スクリプトが失敗した場合は、config-dir ディレクトリー内のインストール・ログ・ファイルを確認する必要があります。既定では、config-dir ディレクトリには 6 つの圧縮されたログ ファイルが格納されます。現在のログ ファイルは log として保存され、以前のログ ファイルは log.1 から log.5 ファイルとして保存されます。deploy スクリプトを実行するたびに、現在のログが保存され、最も古いログは破棄されます。

通常、エラー メッセージはログ ファイルの末尾にあります。エラー メッセージを表示し、構成を修正します。

kubectl インターフェイスを使用したトラブルシューティング

kubectl(Kube Control)は、Kubernetes APIと対話するコマンドラインユーティリティであり、最も一般的なコマンドラインはKubernetesクラスターを制御するために使用されました。

kubectl コマンドは、インストール直後に 1 次ノードで発行できます。ワーカー ノードで kubectl コマンドを発行するには、 admin.conf ファイルをコピーして kubeconfig 環境変数を設定するか、 エクスポート KUBECONFIG=config-dir /admin.conf コマンドを使用する必要があります。 admin.conf ファイルは、インストール・プロセスの一環として、コントロール・ホストの config-dir ディレクトリーにコピーされます。

kubectl コマンド ライン ツールを使用して、Kubernetes API と通信し、ノード、ポッド、サービスなどの API リソースに関する情報の取得、ログ ファイルの表示、およびそれらのリソースの作成、削除、または変更を行います。

kubectl コマンドの構文は次のとおりです。

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

[command] は単に実行するアクションです。

次のコマンドを使用して、kubectl コマンドのリストを表示できます。

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

詳細を取得し、特定のコマンドに関連付けられているすべてのフラグとオプションを一覧表示するために、ヘルプを求めることができます。例えば:

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

Paragon Automationでの動作を確認およびトラブルシューティングするには、以下のコマンドを使用します。

[コマンド] 説明
取得

1 つまたは複数のリソースを表示します。

出力には、指定されたリソースに関する最も重要な情報のテーブルが表示されます。

写す 特定のリソースまたはリソースのグループの詳細を表示します。
説明する リソースのドキュメント。
ログ ポッド内のコンテナーのログを表示します。
ロールアウトの再開 リソースのロールアウトを管理します。
編集 リソースを編集します。

[TYPE] 表示するリソースの種類を表します。リソースの種類では大文字と小文字が区別されず、単数形、複数形、または省略形を使用できます。

たとえば、ポッド、ノード、サービス、デプロイなどです。リソースの完全なリストと、許可される省略形 (例: pod = po) については、次のコマンドを発行します。

kubectl api-resources

リソースの詳細については、次のコマンドを発行してください。

kubectl explain [TYPE]

例えば:

[NAME] は、特定のリソースの名前 (サービスやポッドの名前など) です。名前では大文字と小文字が区別されます。

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

[flags] コマンドの追加オプションを提供します。たとえば、 -o には、リソースのより多くの属性が一覧表示されます。ヘルプ (-h) を使用して、使用可能なフラグに関する情報を取得します。

ほとんどの Kubernetes リソース (ポッドやサービスなど) は一部の名前空間にありますが、他の名前空間 (ノードなど) にはないことに注意してください。

名前空間は、1 つのクラスター内でリソースのグループを分離するためのメカニズムを提供します。リソースの名前は、名前空間内で一意である必要がありますが、名前空間間で一意である必要はありません。

名前空間内のリソースでコマンドを使用する場合は、コマンドの一部として名前空間を含める必要があります。名前空間では大文字と小文字が区別されます。適切な名前空間がないと、目的の特定のリソースが表示されない場合があります。

すべての名前空間のリストを取得するには、 kubectl get namespace コマンドを発行します。

すべての名前空間のリソースを表示する場合、または関心のある特定のリソースがどの名前空間に属しているかわからない場合は、「 --all-namespaces 」または「 - A」と入力します。

Kubernetes の詳細については、以下を参照してください。

kubectl インターフェイスを使用してインストールの詳細をトラブルシューティングおよび表示するには、次のトピックを使用します。

ノードステータスの表示

kubectl get no コマンドと略される kubectl get nodes コマンドを使用して、クラスター ノードの状態を表示します。ノードの状態は [Ready] で、ロールは [control-plane] または [none] である必要があります。例えば:

ノードが Readyされていない場合は、kubeletプロセスが実行されているかどうかを確認します。ノードのシステム ログを使用して問題を調査することもできます。

kubeletを検証するには: root@primary-node:/# kubelet

ポッドのステータスの表示

kubectl get po –n namespace コマンドまたは kubectl get po -A コマンドを使用して、ポッドのステータスを表示します。個々の名前空間 (healthbotnorthstarcommon など) を指定することも、-A パラメーターを使用してすべての名前空間の状態を表示することもできます。例えば:

正常なポッドの状態は Running または Completed である必要があり、準備完了コンテナーの数は合計と一致する必要があります。ポッドの状態が Running でない場合、またはコンテナーの数が一致しない場合は、 kubectl describe po または kubectl log (POD | TYPE/NAME) [-c CONTAINER] コマンドを使用して、問題のトラブルシューティングをさらに進めます。

ポッドに関する詳細情報の表示

kubectl describe po -n namespace pod-name コマンドを使用して、特定のポッドに関する詳細情報を表示します。例えば:

ポッド内のコンテナーのログを表示する

kubectl logs -n namespace pod-name [-c container-name] コマンドを使用して、特定のポッドのログを表示します。ポッドに複数のコンテナーがある場合は、ログを表示するコンテナーを指定する必要があります。例えば:

ポッド内のコンテナーでコマンドを実行する

kubectl exec –ti –n namespacepod-name [-c container-name] -- command-line コマンドを使用して、ポッド内のコンテナーでコマンドを実行します。例えば:

execコマンドを実行すると、Postgresデータベースサーバーにbashシェルが表示されます。コンテナー内の bash シェルにアクセスし、コマンドを実行してデータベースに接続できます。すべてのコンテナがbashシェルを提供するわけではありません。一部のコンテナはSSHのみを提供し、一部のコンテナにはシェルがありません。

サービスを見る

kubectl get svc -n namespace コマンドまたは kubectl get svc -A コマンドを使用して、クラスター・サービスを表示します。個々の名前空間 (healthbotnorthstarcommon など) を指定することも、-A パラメーターを使用してすべての名前空間のサービスを表示することもできます。例えば:

この例では、サービスはタイプ別にソートされ、タイプ LoadBalancer のサービスのみが表示されます。クラスターによって提供されるサービスと、それらのサービスにアクセスするためにロードバランサーによって選択された外部 IP アドレスを表示できます。

これらのサービスには、クラスターの外部からアクセスできます。外部 IP アドレスは公開され、クラスター外のデバイスからアクセスできます。

頻繁に使用される kubectl コマンド

  • レプリケーション コントローラーを一覧表示します。

  • コンポーネントを再起動します。

  • Kubernetes リソースの編集: デプロイまたは任意の Kubernetes API オブジェクトを編集でき、これらの変更はクラスターに保存されます。ただし、クラスターを再インストールした場合、これらの変更は保持されません。

paragon CLIユーティリティを使用したトラブルシューティング

システムで実行されているポッドでコマンドを実行するための paragon コマンド CLI ユーティリティを導入しました。 paragon コマンドは、クラスターの分析、クエリ、トラブルシューティングを可能にする直感的なコマンドのセットです。コマンドを実行するには、いずれかのプライマリノードにログインします。一部のコマンドでは、 paragon コマンド・ユーティリティーが kubectl の代わりに kubecolor コマンドを実行するため、一部のコマンドの出力は色分けされています。出力例については、 図 1 を参照してください。 paragon CLI ユーティリティー・コマンドを実行するには、root ユーザーであるか、スーパーユーザー(sudo)権限を持つ非 root ユーザーである必要があります。

使用可能なコマンド ヘルプ オプションのセット全体を表示するには、次のいずれかのコマンドを使用します。

ヘルプ オプションは、(トップ レベルだけでなく) 任意のコマンド レベルで表示できます。例えば:

タブオプションを使用して、コマンドの可能なオートコンプリートオプションを表示できます。最上位のコマンドのオートコンプリートを表示するには、 paragon と入力して Tab キーを押します。例えば:

paragon コマンドが実行する基になるコマンドを表示するには、echo または -e オプションを使用します。例えば:

paragon コマンドを実行し、そのコマンドが実行する基になるコマンドを表示するには、debug オプションまたは -d オプションを使用します。例えば:

paragonコマンドの全リストと、それらが実行する対応する基になるコマンドを表示するには、次のコマンドを使用します。

図 1: コマンド出力Example paragon command outputparagon

引数や前提条件 (ある場合) などの特定の使用基準については、各コマンドのヘルプ セクションの指示に従ってください。一部のコマンドには必須の引数が必要です。たとえば、 paragon insights logs devicegroup analytical コマンドには引数 --dg devicegroup-name-with subgroup が必要です。例えば:

paragon insights logs devicegroup analytical --dg controller-0

一部のコマンドには前提条件があります。たとえば、 paragon insights get playbooks コマンドを使用する前に、 paragon set username --cred username コマンドと paragon set password --cred password コマンドを使用してユーザー名とパスワードを設定する必要があります。

コマンドの完全なセットとその使用基準を 表 1 に示します。

表1: paragon CLIユーティリティ

命令

形容

paragon ambassador get emissary

は、パラゴン大使の使者ポッドを示しています。

paragon ambassador get pods

すべての Paragonアンバサダーポッドを表示します。

paragon ambassador get services

すべてのParagonアンバサダーサービスを表示します。

paragon common postgres roles

Postgresの役割を見つけるのに役立ちます。

paragon describe node

クラスタ内の特定のノードの説明を表示します。

--node node-ip 引数を使用します。

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

paragon get nodes all コマンドを使用して、ノードの IP アドレスを取得できます。

paragon ems get devicemanager

デバイスマネージャParagon emsポッドを表示します。

paragon ems get jobmanager

ジョブ マネージャー Paragon EMS ポッドを表示します。

paragon ems get pods

すべてのParagon EMSポッドを表示します。

paragon ems get services

すべてのParagon EMSサービスを表示します。

paragon ems logs devicemanager

Paragon EMSデバイスマネージャーポッドのログを表示します。

--type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon ems logs jobmanager

paragon emsジョブマネージャーポッドのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon get namespaces

Paragonで使用可能なすべての名前空間を表示します。

paragon get nodes all

クラスタ内のすべてのノードのリストを表示します。

paragon get nodes diskpressure

kubeletにディスク負荷があるかどうかを検証します。

--node node_ip/node_name 引数を使用します。

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

paragon get nodes memorypressure

kubelet に十分なメモリがあるかどうかを検証します。

--node node_ip/node_name 引数を使用します。

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

paragon get nodes networkunavailable

calicoとネットワークに問題がないか確認します。

--node node_ip/node_name 引数を使用します。

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

paragon get nodes notready

クラスタ内で準備ができていないすべてのノードのリストを表示します。

paragon get nodes pidpressure

kubeletに使用可能な十分なPIDがあるかどうかを検証します。

--node node_ip/node_name 引数を使用します。

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

paragon get nodes ready

クラスター内で準備ができているすべてのノードの一覧を表示します。

paragon get nodes taint

ノード上のすべての汚染のリストを表示します。

paragon get pods healthy

正常な Paragonポッドをすべて表示します。

paragon get pods unhealthy

異常な Paragon ポッドをすべて表示します。

paragon get services exposed

公開されているすべてのParagonサービスを表示します。

paragon insights cli alerta

Paragon InsightsアラートポッドのCLIにログインします。

paragon insights cli byoi

BYOIプラグインのCLIにログインします。

--byoi BYOI plugin name 引数を使用します。

paragon insights cli configserver

Paragon InsightsコンフィグサーバーポッドのCLIにログインします。

paragon insights cli grafana

Paragon Insightsgrafana ポッドのCLIにログインします。

paragon insights cli influxdb

Paragon InsightsinfluxdbポッドのCLIにログインします。

--influx influxdb-nodeip 引数を使用してノード IP を指定する そうでない場合、コマンドは最初の influxdb ノードをデフォルトノードとして使用します。

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

paragon insights cli mgd

Paragon Insights mgd ポッドの CLI にログインします。

paragon insights describe alerta

Paragon Insights alerta ポッドについて説明します。

paragon insights describe api

Paragon Insights REST API ポッドについて説明します。

paragon insights describe configserver

Paragon Insightsコンフィグサーバーポッドについて説明します。

paragon insights describe grafana

Paragon Insightsグラファナポッドについて説明します。

paragon insights describe influxdb

Paragon Insightsinfluxdbポッドについて説明します。

ノード IP を指定するには、 --influx influxdb-nodeip 引数を使用します。そうでない場合、コマンドは最初の influxdb ノードをデフォルトノードとして使用します。

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

paragon insights describe mgd

Paragon Insights mgd ポッドについて説明します。

paragon insights get alerta

は、Paragon Insightsアラートポッドを示しています。

paragon insights get api

は、Paragon Insights REST API ポッドを示しています。

paragon insights get configserver

は、Paragon Insightsコンフィグサーバーポッドを示しています。

paragon insights get devicegroups

すべてのParagon Insightsデバイスグループを表示します。

デフォルトのユーザー名は admin です。ユーザー名を変更するには、

前提条件として、 paragon set password --cred password コマンドを実行してParagon (UIホスト)パスワードを設定します。

paragon insights get devices

すべてのParagon Insightsデバイスを表示します。

デフォルトのユーザー名は admin です。ユーザー名を変更するには、 paragon set user --cred username コマンドを実行します。

前提条件として、 paragon set password --cred password コマンドを実行してParagon (UIホスト)パスワードを設定します。

paragon insights get grafana

は、Paragon Insightsグラファナポッドを示しています。

paragon insights get influxdb

は、Paragon Insightsのinfluxdbポッドを示しています。

paragon insights get ingest

は、Paragon Insightsネットワークテレメトリインジェストポッドを示しています。

paragon insights get mgd

は、Paragon Insightsの管理ポッドを示しています。

paragon insights get playbooks

すべてのParagon Insightsプレイブックを表示します。

デフォルトのユーザー名は admin です。ユーザー名を変更するには、 paragon set user --cred username コマンドを実行します。

前提条件として、 paragon set password --cred password コマンドを実行してParagon (UIホスト)パスワードを設定します。

paragon insights get pods

すべてのParagon Insightsポッドを表示します。

paragon insights get services

すべてのParagon Insightsサービスを表示します。

paragon insights logs alerta

Paragon Insightsアラートポッドのログを表示します。

paragon insights logs api

Paragon InsightsのREST APIポッドのログを表示します。

paragon insights logs byoi

Paragon Insights BYOIプラグインのログを表示します。

--byoi BYOI plugin name 引数を使用します。

paragon insights logs configserver

Paragon Insightsコンフィグサーバーポッドのログを表示します。

paragon insights logs devicegroup analytical

サービス分析エンジンのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

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

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup itsdb

サービスitsdbのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

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

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup jtimon

サービスjtimonのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

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

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup native

サービスjtiネイティブのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

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

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs devicegroup syslog

サービスsyslogのParagon Insightsデバイスグループのログを表示します。

--dg device Group name with subgroup 引数を使用します。

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

この例では、 controller はデバイスグループ名で、 0 はサブグループです。

paragon insights logs grafana

Paragon Insights Grafana ポッドのログを表示します。

paragon insights logs influxdb

Paragon Insightsinfluxdbポッドのログを表示します。

ノード IP を指定するには、 --influx influxdb-nodeip 引数を使用します。そうでない場合、コマンドは最初の influxdb ノードをデフォルトノードとして使用します。

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

paragon insights logs mgd

Paragon Insightsmgdポッドのログを表示します。

paragon pathfinder cli bmp

Paragon Pathfinder BMPコンテナのCLIにログインします。

paragon pathfinder cli configserver

Paragon Pathfinder ns-configserver コンテナの CLI にログインします。

paragon pathfinder cli crpd

Paragon Pathfinder cRPDコンテナのCLIにログインします。

paragon pathfinder cli debugutils

Paragon Pathfinder debugutils コンテナの CLI にログインします。

paragon pathfinder cli netconf

Paragon Pathfinder netconfコンテナのCLIにログインします。

paragon pathfinder cli pceserver

Paragon Pathfinder ns-pceserver container(PCEP)サービスの CLI にログインします。

paragon pathfinder cli pcserver

Paragon Pathfinder ns-pcserver(PCS)コンテナのCLIにログインします。

paragon pathfinder cli pcviewer

Paragon Pathfinder ns-pcsviewer(Paragon Planner Desktop Application)コンテナのCLIにログインします。

paragon pathfinder cli scheduler

Paragon PathfinderスケジューラコンテナのCLIに入ります。

paragon pathfinder cli toposerver

Paragon Pathfinder ns-toposerver(トポロジーサービス)コンテナのCLIにログインします。

paragon pathfinder cli web

Paragon Pathfinder ns-web コンテナの CLI にログインします。

paragon pathfinder debug bgpls config

BGP-LSに関連するParagon Pathfinder cRPDルーティングオプションの設定をデバッグします。

paragon pathfinder debug bgpls routes

BGP-LSに関連するParagon Pathfinder cRPDルートをデバッグします。

paragon pathfinder debug genjvisiondata help

Paragon Pathfinder debugutils genjvisiondataヘルプを表示します。

paragon pathfinder debug genjvisiondata params

show paragon Pathfinder debugutils genjvisiondata params.

paragon pathfinder debug lsp

デバッグのため、Paragon Pathfinder PCEP CLI にログインします。

paragon pathfinder debug postgres status

Kubernetes クラスターの Postgres ステータスを表示します。

paragon pathfinder debug rabbitmq status

ウサギmqctl クラスターの状況を表示します。

paragon pathfinder debug snoop amqp

Paragon Pathfinder debugutils ポッドを実行して、AMQP 間でやりとりされるデータのスヌープとデコードを実行します。

paragon pathfinder debug snoop help

は、Paragon Pathfinder debugutils snoop helpを示しています。

paragon pathfinder debug snoop postgres

Paragon Pathfinder debugutils ポッドを実行して、Postgres間でやりとりされたデータのスヌープとデコードを行います。

paragon pathfinder debug snoop redis link

Paragon Pathfinder debugutils ポッドを実行して、Redisリンク間でやりとりされるデータをスヌープおよびデコードします。

paragon pathfinder debug snoop redis lsp

Paragon Pathfinder debugutils ポッドを実行して、Redis lsp 間で交換されるデータのスヌープとデコードを行います。

paragon pathfinder debug snoop redis node

Paragon Pathfinder debugutils ポッドを実行して、redisノード間で交換されるデータをスヌープおよびデコードします。

paragon pathfinder debug topoutil help

Paragon Pathfinder debugutils topo_utilヘルプを表示します。

paragon pathfinder debug topoutil safemode deactivate

セーフモードを無効にするParagon Pathfinder debugutils topo_utilツールを示しています。

paragon pathfinder debug topoutil topo refresh

Paragon Pathfinder debugutils topo_utilツールを実行して、現在のトポロジーを更新します。

paragon pathfinder debug topoutil topo save

Paragon Pathfinder debugutils topo_util ツールを実行して、現在のトポロジーのスナップショットを保存します。

paragon pathfinder describe bmp

cRPDコンテナとBMPコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe configserver

設定サーバーコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe debugutils

debugutilsコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe netconf

ns-netconfdコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe pceserver

ns-pceserver コンテナ(PCEP サービス)を含む Paragon Pathfinder ポッドについて説明します。

paragon pathfinder describe pcserver

ns-pcserver コンテナ(PCS)を含む Paragon Pathfinder ポッドについて説明します。

paragon pathfinder describe pcviewer

ns-pcsviewerコンテナ(Paragon Plannerデスクトップアプリケーション)を含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe scheduler

スケジューラコンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe toposerver

ns-toposerver(トポロジーサービス)コンテナを含むParagon Pathfinderポッドについて説明します。

paragon pathfinder describe web

Web コンテナを含む Paragon Pathfinder ポッドについて説明します。

paragon pathfinder get bmp

は、cRPDコンテナとBMPコンテナを含むParagon Pathfinderポッドを示しています。

paragon pathfinder get configserver

は、ns-configserverコンテナとsyslogコンテナを含むParagon Pathfinderポッドを示しています。

paragon pathfinder get debugutils

は、debugutilsコンテナを含むParagon Pathfinderポッドを示しています。

paragon pathfinder get netconf

は、netconfプロセスに関連付けられたParagon Pathfinderポッドを示しています。

paragon pathfinder get pceserver

は、ns-pceserver コンテナ(PCEP サービス)を含む Paragon Pathfinder ポッドを示しています。

paragon pathfinder get pcserver

は、ns-pcserver コンテナ(PCS)を含む Paragon Pathfinder ポッドを示しています。

paragon pathfinder get pcviewer

は、ns-pcsviewerコンテナ(Paragon Plannerデスクトップアプリケーション)を含むParagon Pathfinderポッドを示しています。

paragon pathfinder get pods

すべてのParagon Pathfinderポッドを表示します。

paragon pathfinder get scheduler

は、スケジューラプロセスに関連付けられたParagon Pathfinderポッドを示しています。

paragon pathfinder get services

すべてのParagon Pathfinderサービスを表示します。

paragon pathfinder get toposerver

は、ns-toposerverコンテナ(トポロジーサービス)を含むParagon Pathfinderポッドを示しています。

paragon pathfinder get web

は、ns-web プロセスに関連付けられた Paragon Pathfinder ポッドを示しています。

paragon pathfinder logs bmp container bmp

Paragon Pathfinder bmp pods bmp コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs bmp container crpd

Paragon Pathfinder bmp pods cRPD コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs bmp container syslog

Paragon Pathfinder bmp pods syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs configserver container nsconfigserver

Paragon Pathfinder コンフィグサーバー ポッド ns-configserver コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs configserver container syslog

Paragon Pathfinder コンフィグサーバーポッドの syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs netconf container nsnetconfd

Paragon Pathfinder netconf pods ns-netconfd コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs netconf container syslog

Paragon Pathfinder netconf pods syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pceserver container nspceserver

Paragon Pathfinder pceserver pods ns-pceserver container のログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pceserver container syslog

Paragon Pathfinder pceserver pods syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pceserver syslog filtered

タイムスタンプ、レベル、メッセージのみを取得するParagon Pathfinder pceserver ポッドsyslogコンテナの処理済みログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pcserver container nspcserver

Paragon Pathfinder pcserver pods ns-pcserver container のログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pcserver container syslog

Paragon Pathfinder pcserver pods syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pcserver syslog filtered

Paragon Pathfinder pceserver ポッドのsyslogコンテナのフェッチ処理済みログを、タイムスタンプ、レベル、メッセージのみで表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pcviewer container nspcviewer

Paragon Pathfinder pcviewer pods ns-pcviewer containerのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs pcviewer container syslog

Paragon Pathfinder pcviewerポッドsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs toposerver container nstopodbinit

Paragon Pathfinderトポロジーサーバーポッドns-topo-dbinitコンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs toposerver container nstopodbinitcache

Paragon Pathfinderトポサーバーポッドns-topo-dbinit-cacheコンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs toposerver container nstoposerver

Paragon Pathfinderトポサーバーポッドns-toposerverコンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs toposerver container syslog

Paragon Pathfinderトポサーバーポッドのsyslogコンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs toposerver syslog filtered

Paragon Pathfinderトポサーバーポッドsyslogコンテナのフェッチ処理済みログを、タイムスタンプ、レベル、メッセージのみで表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs web container nsweb

Paragon Pathfinder ウェブポッド ns-web コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs web container nswebdbinit

Paragon Pathfinder Web ポッド ns-web-dbinit コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder logs web container syslog

Paragon Pathfinder ウェブポッドの syslog コンテナのログを表示します。 --type follow 引数を使用して、ライブ ストリーミング ログを取得します。

paragon pathfinder rabbitmq geoha status

フェデレーションの状態を表示します (rabbitmq-0 インスタンスから)。GeoHa ステータスは、デュアル クラスター設定でのみ使用できます。

paragon rookceph ceph osddf

RookとCeph OSDファイルシステムのディスク容量の使用状況を報告します。

paragon rookceph ceph osdpoolstats

ルークとCephのOSDプールの統計情報を表示します。

paragon rookceph ceph osdstatus

ルークとセフのOSDステータスを表示します。

paragon rookceph ceph osdtree

ルークとセフのOSDツリーを示しています。

paragon rookceph ceph osdutilization

は、RookとCephのOSDの使用率を示しています。

paragon rookceph ceph pgstat

ルークとセフのページステータスを表示します。

paragon rookceph ceph status

ルークとセフのステータスを表示します。

paragon rookceph cli toolbox

ルークおよびCephツールボックスポッドのCLIにログインします。

paragon rookceph get pods

ルークポッドとセフポッドを示しています。

paragon rookceph get services

ルークとセフのサービスを表示します。

paragon rookceph radosgw get period

これは、期間情報を取得するRADOSゲートウェイユーザー管理ユーティリティです。

paragon rookceph radosgw synch status

これは、メタデータの同期ステータスを取得するRADOSゲートウェイユーザー管理ユーティリティです。

paragon set password

REST 呼び出し認証用の Paragon (UI ホスト) パスワードを設定します。

この必須のワンタイムパスワード設定コマンドを使用して、 --cred password 引数を使用してパスワードを設定します。

例: paragon set password --cred AdminXYX!

paragon set username

Restコール認証用のParagon (UIホスト)ユーザー名を設定します。デフォルトのユーザー名は admin です。

別のユーザー名を設定するには、 --cred username 引数を使用します。

例: paragon set username --cred newadmin

CephとRookのトラブルシューティング

Cephには、比較的新しいカーネルバージョンが必要です。Linuxカーネルが非常に古い場合は、新しいカーネルのアップグレードまたは再インストールを検討してください。

このセクションを使用して、CephとRookに関する問題のトラブルシューティングを行います。

ディスク容量の不足

インストールが失敗する一般的な理由は、オブジェクトストレージデーモン(OSD)が作成されないことです。OSDは、クラスタノード上のストレージを設定します。OSDは、リソースが不足しているか、ディスク領域が正しくパーティション化されていないという形で、ディスクリソースが利用できないために作成されない可能性があります。ノードに十分な空きディスク・スペースがあることを確認します。

ディスクを再フォーマットする

「rook-ceph-osd-prepare-hostname-*」ジョブのログを調べます。ログは説明的です。ディスクまたはパーティションを再フォーマットしてRookを再起動する必要がある場合は、次の手順を実行します。

  1. 次のいずれかの方法を使用して、既存のディスクまたはパーティションを再フォーマットします。
    • Cephに使用するはずだったブロックストレージデバイスがあるが、使用できない状態であったために使用されなかった場合は、ディスクを完全に再フォーマットできます。
    • Cephに使用するはずのディスクパーティションがある場合は、パーティション上のデータを完全にクリアできます。
    手記:

    これらのコマンドは、使用しているディスクまたはパーティションを完全に再フォーマットし、それらの上のすべてのデータが失われます。

  2. Rookを再起動して変更を保存し、OSDの作成プロセスを再試行します。

ポッドのステータスの表示

rook-ceph名前空間にインストールされているRookポッドとCephポッドのステータスを確認するには、# kubectl get po -n rook-cephコマンドを使用します。次のポッドはrunning状態である必要があります。

  • rook-ceph-mon-*- 通常、3 つのモニター ポッドが作成されます。
  • rook-ceph-mgr-*- マネージャーポッド 1 台
  • rook-ceph-osd-*- 3 つ以上の OSD ポッド
  • rook-ceph-mds-cephfs-*—メタデータサーバー
  • rook-ceph-rgw-object-store-*- オブジェクトストア・ゲートウェイ
  • rook-ceph-tools*- 追加のデバッグ オプション。

    ツールボックスに接続するには、次のコマンドを使用します。

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

    ツールボックスで使用できる一般的なコマンドには、次のようなものがあります。

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

Ceph OSDの障害のトラブルシューティング

rook-ceph名前空間にインストールされているポッドの状態を確認します。

# kubectl get po -n rook-ceph

rook-ceph-osd-*ポッドがErrorまたはCrashLoopBackoff状態の場合は、ディスクを修復する必要があります。

  1. rook-ceph-operatorを停止します。

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

  2. 問題のあるOSDプロセスを削除します。

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

  3. ツールボックスに接続します。

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

  4. 問題のあるOSDを特定します。

    # ceph osd status

  5. 障害が発生したOSDをマークアウトします。

  6. 障害が発生したOSDを取り外します。

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

  7. 障害が発生したOSDをホストしていたノードに接続し、次のいずれかを実行します。
    • ハードウェア障害が発生した場合にハードディスクを交換してください。
    • ディスクを完全に再フォーマットします。
    • パーティションを完全に再フォーマットします。
  8. rook-ceph-operatorを再起動します。

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

  9. OSDポッドを監視します。

    # kubectl get po -n rook-ceph

    OSDが回復しない場合は、同じ手順でOSDを取り外し、ディスクを取り外すかパーティションを削除してから再起動 rook-ceph-operator

エアギャップ設置失敗のトラブルシューティング

エアギャップのインストールと kube-apiserver は、既存の /etc/resolv.conf ファイルがないため、次のエラーで失敗します。

新しいファイルを作成するには、ルートユーザーとして #touch /etc/resolv.conf コマンドを実行し、Paragon Automation クラスターを再デプロイする必要があります。

RabbitMQ クラスターの障害から復旧する

Paragon Automationクラスタに障害が発生した場合(停電など)、RabbitMQメッセージバスが正しく再起動しないことがあります。

この状態を確認するには、 kubectl get po -n northstar -l app=rabbitmq コマンドを実行します。このコマンドでは、状態が Running の 3 つのポッドが表示されます。例えば:

ただし、1 つ以上のポッドの状態が Error の場合は、次の回復手順を使用します。

  1. RabbitMQを削除します。

    kubectl delete po -n northstar -l app=rabbitmq

  2. ポッドの状態を確認します。

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

    すべてのポッドの状態が Running になるまで、kubectl delete po -n northstar -l app=rabbitmqを繰り返します。

  3. Paragon Pathfinderアプリケーションを再起動します。

OSD作成中にudevdデーモンを無効にする

udevd デーモンは、ディスク、ネットワーク・カード、CD などの新しいハードウェアを管理するために使用します。OSDの作成中に、 udevdデーモンはOSDを検出し、完全に初期化される前にOSDをロックできます。Paragon Automationインストーラは、インストール中に systemd-udevdを無効にし、RookがOSDを初期化した後に有効にします。

ノードを追加または交換し、障害が発生したノードを修復する場合は、OSDの作成が失敗しないように、 udevd デーモンを手動で無効にする必要があります。OSDの作成後にデーモンを再度有効にすることができます。

これらのコマンドを使用して、 udevdを手動で無効または有効にします。

  1. 追加または修復するノードにログインします。
  2. udevdデーモンを使用不可にします。
    1. udevdが実行されているかどうかを確認してください。

      # systemctl is-active systemd-udevd

    2. udevdがアクティブな場合は、無効にします。# systemctl mask system-udevd --now
  3. ノードを修復または交換しても、Ceph分散ファイルシステムは自動的に更新されません。修復プロセスの一環としてデータ・ディスクが破壊された場合は、それらのデータ・ディスクでホストされているオブジェクト・ストレージ・デーモン(OSD)をリカバリする必要があります。

    1. Cephツールボックスに接続し、OSDのステータスを表示します。 ceph-tools スクリプトは、プライマリ ノードにインストールされます。プライマリノードにログインし、kubectl インターフェイスを使用して ceph-toolsにアクセスできます。1 次ノード以外のノードを使用するには、 admin.conf ファイル (制御ホストの config-dir ディレクトリーにある) をコピーして kubeconfig 環境変数を設定するか、または export KUBECONFIG=config-dir/admin.conf コマンドを使用する必要があります。

      $ ceph-tools# ceph osd status

    2. すべてのOSDが exists,upとして表示されていることを確認します。OSDが破損している場合は、 CephとRookのトラブルシューティングで説明されているトラブルシューティング手順に従ってください。

  4. すべてのOSDが作成されたことを確認した後、追加または修復したノードにログインします。
  5. ノードで udevd を再度有効にします。

    systemctl unmask system-udevd

または、 config.ymldisable_udevd: true を設定し、 ./run -c config-dir deployコマンドを実行することもできます。 udevd デーモンを無効にするためだけにクラスターを再デプロイすることはお勧めしません。

共通ユーティリティコマンドのラッパースクリプト

/usr/local/bin にインストールされている以下のラッパースクリプトを使用して、システムで実行されているポッドに接続してコマンドを実行できます。
コマンド の説明
paragon-db [arguments] データベース サーバーに接続し、スーパーユーザー アカウントを使用して Postgres SQL シェルを起動します。オプションの引数が Postgres SQL コマンドに渡されます。
pf-cmgd [arguments] Paragon Pathfinder CMGD ポッドで CLI を起動します。オプションの引数は CLI によって実行されます。
pf-crpd [arguments] Paragon Pathfinder cRPD ポッドで CLI を起動します。オプションの引数は CLI によって実行されます。
pf-redis [arguments] Paragon Pathfinder Redis ポッドで(認証された)redis-cli を起動します。省略可能な引数は、Redis ポッドによって実行されます。
pf-debugutils [arguments] Paragon Pathfinder debugutils ポッドでシェルを起動します。オプションの引数はシェルによって実行されます。Pathfinder debugutils ユーティリティは、config.yml ファイルでinstall_northstar_debugutils: trueが構成されている場合にインストールされます。
ceph-tools [arguments] シェルを起動してCephツールボックスに移動します。オプションの引数はシェルによって実行されます。

制御ホストのバックアップ

制御ホストに障害が発生した場合は、 config-dir ディレクトリをリモートの場所にバックアップして、クラスタを再構築できるようにする必要があります。 config-dir には、 インベントリ ファイル、 config.yml ファイル、 およびid_rsa ファイルが含まれています。

または、次のコマンドを使用してクラスターから情報をダウンロードして、 インベントリ ファイルと config.yml ファイルを再構築することもできます。

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

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

SSH キーを回復することはできません。失敗したキーを新しいキーに置き換える必要があります。

デバッグ用のユーザー サービス アカウント

Paragon Pathfinder、テレメトリマネージャー、ベースプラットフォームアプリケーションは、テレメトリ収集にParagon Insightsを内部的に使用します。これらのアプリケーションに関連する設定の問題をデバッグするために、Paragon Automationのインストール中に、デフォルトで3つのユーザーサービスアカウントが作成されます。これらのサービス アカウントのスコープは、対応するアプリケーションのデバッグのみに限定されます。サービス アカウントの詳細を次の表に示します。

表 2: サービス アカウントの詳細
アプリケーション名とスコープ アカウントユーザー名 アカウントのデフォルトパスワード
パラゴンパスファインダー(北極星) HB-ノーススター-管理者 管理者123!
テレメトリ マネージャー (tm) hb-tm-admin
ベースプラットフォーム(ems-dmon) HB-EMS-DMON

これらのアカウントは、デバッグ目的でのみ使用する必要があります。これらのアカウントは、日常的な操作や構成の変更には使用しないでください。セキュリティ上の理由から、ログイン資格情報を変更することをお勧めします。