1.22.3. コントロールプレーンのトラブルシューティング
Service Mesh コントロールプレーン は Istiod で設定されており、以前のいくつかのコントロールプレーンコンポーネント (Citadel、Galley、Pilot) を単一バイナリーに統合します。ServiceMeshControlPlane
をデプロイすると、アーキテクチャー で説明されているように、Red Hat OpenShift Service Mesh を設定する他のコンポーネントも作成します。
1.22.3.1. Service Mesh コントロールプレーンのインストールの検証
Service Mesh コントロールプレーンの作成時に、Service Mesh Operator は ServiceMeshControlPlane
リソースファイルに指定したパラメーターを使用して以下を実行します。
Istio コンポーネントを作成し、以下の Pod をデプロイします。
-
istiod
-
istio-ingressgateway
-
istio-egressgateway
-
grafana
-
prometheus
-
wasm-cacher
-
SMCP または Kiali カスタムリソースのいずれかの設定に基づいて Kaili デプロイメントを作成するには、Kiali Operator を呼び出します。
注記Service Mesh Operator ではなく、Kiali Operator で Kiali コンポーネントを表示します。
Red Hat OpenShift 分散トレースプラットフォーム Operator を呼び出して、SMCP または Jaeger カスタムリソースのいずれかでの設定に基づいて分散トレースプラットフォームコンポーネントを作成します。
注記Jaeger コンポーネントは Red Hat OpenShift 分散トレースプラットフォーム Operator の下に表示され、Elasticsearch コンポーネントは Service Mesh Operator ではなく Red Hat Elasticsearch Operator の下に表示されます。
OpenShift Container Platform コンソールからの使用
OpenShift Container Platform Web コンソールで Service Mesh コントロールプレーンのインストールを確認できます。
-
Operators
Installed Operators に移動します。 -
<istio-system>
namespace を選択します。 Red Hat OpenShift Service Mesh Operator を選択します。
- Istio Service Mesh Control Plane タブをクリックします。
-
コントロールプレーンの名前 (
basic
など) をクリックします。 -
デプロイメントによって作成されたリソースを表示するには、Resources タブをクリックします。フィルターを使用してビューを絞り込むことができます。たとえば、すべての Pod のステータスが
running
になっていることを確認できます。 -
SMCP のステータスが問題を示す場合は、YAML ファイルの
status:
出力で詳細を確認してください。 -
Operators
Installed Operators に戻ります。
OpenShift Elasticsearch Operator を選択します。
- Elasticsearch タブをクリックします。
-
デプロイメントの名前をクリックします (例:
elasticsearch
)。 - デプロイメントによって作成されたリソースを表示するには、Resources タブをクリックします。
-
ステータス
列に問題がある場合は、YAML タブのステータス:
出力で詳細を確認してください。 -
Operators
Installed Operators に戻ります。
Red Hat OpenShift 分散トレースプラットフォーム Operator を選択します。
- Jaeger タブをクリックします。
-
デプロイメントの名前をクリックします (例:
jaeger
)。 - デプロイメントによって作成されたリソースを表示するには、Resources タブをクリックします。
-
ステータス
列に問題がある場合は、YAML タブのstatus:
出力で詳細を確認してください。 -
Operators
Installed Operators に移動します。
Kiali Operator を選択します。
- Istio Service Mesh Control Plane タブをクリックします。
-
デプロイメントの名前をクリックします (例:
kiali
)。 - デプロイメントによって作成されたリソースを表示するには、Resources タブをクリックします。
-
ステータス
列に問題がある場合は、YAML タブのステータス:
出力で詳細を確認してください。
-
Operators
コマンドラインで以下を行います。
以下のコマンドを実行して、Service Mesh コントロールプレーン Pod が利用可能かどうか確認します。
istio-system
は SMCP をインストールした namespace になります。$ oc get pods -n istio-system
出力例
NAME READY STATUS RESTARTS AGE grafana-6776785cfc-6fz7t 2/2 Running 0 102s istio-egressgateway-5f49dd99-l9ppq 1/1 Running 0 103s istio-ingressgateway-6dc885c48-jjd8r 1/1 Running 0 103s istiod-basic-6c9cc55998-wg4zq 1/1 Running 0 2m14s jaeger-6865d5d8bf-zrfss 2/2 Running 0 100s kiali-579799fbb7-8mwc8 1/1 Running 0 46s prometheus-5c579dfb-6qhjk 2/2 Running 0 115s wasm-cacher-basic-5b99bfcddb-m775l 1/1 Running 0 86s
次のコマンドを使用して、Service Mesh コントロールプレーンのデプロイのステータスを確認します。
istio-system
は、SMCP をデプロイした namespace に置き換えます。$ oc get smcp -n <istio-system>
STATUS 列が
ComponentsReady
の場合、インストールは正常に終了しています。出力例
NAME READY STATUS PROFILES VERSION AGE basic 10/10 ComponentsReady ["default"] 2.1.3 4m2s
Service Mesh コントロールプレーンを変更および再デプロイする場合、ステータスは
UpdateSuccessful
が表示されるはずです。出力例
NAME READY STATUS TEMPLATE VERSION AGE basic-install 10/10 UpdateSuccessful default v1.1 3d16h
SMCP のステータスが
ComponentsReady
以外の場合は、SCMP リソースのstatus:
出力で詳細を確認してください。$ oc describe smcp <smcp-name> -n <controlplane-namespace>
出力例
$ oc describe smcp basic -n istio-system
以下のコマンドを使用して、Jaeger デプロイメントのステータスを確認します。ここでは、
istio-system
は SMCP をデプロイした namespace に置き換えます。$ oc get jaeger -n <istio-system>
出力例
NAME STATUS VERSION STRATEGY STORAGE AGE jaeger Running 1.30.0 allinone memory 15m
以下のコマンドを使用して、Kiali デプロイメントのステータスを確認します。ここでは、
istio-system
は SMCP をデプロイした namespace に置き換えます。$ oc get kiali -n <istio-system>
出力例
NAME AGE kiali 15m
1.22.3.1.1. Kiali コンソールへのアクセス
Kiali コンソールでアプリケーションのトポロジー、健全性、およびメトリクスを表示できます。サービスで問題が発生した場合には、Kiali コンソールは、サービス経由でデータフローを表示できます。抽象アプリケーションからサービスおよびワークロードまで、さまざまなレベルでのメッシュコンポーネントに関する洞察を得ることができます。Kiali は、リアルタイムで namespace のインタラクティブなグラフビューも提供します。
Kiali コンソールにアクセスするには、Red Hat OpenShift Service Mesh がインストールされ、Kiali がインストールおよび設定されている必要があります。
インストールプロセスにより、Kiali コンソールにアクセスするためのルートが作成されます。
Kiali コンソールの URL が分かっている場合は、直接アクセスできます。URL が分からない場合は、以下の指示を使用します。
管理者の手順
- 管理者ロールで OpenShift Container Platform Web コンソールにログインします。
-
Home
Projects をクリックします。 - Projects ページで、必要に応じてフィルターを使用してプロジェクトの名前を検索します。
-
プロジェクトの名前をクリックします (例:
bookinfo
)。 - Project details ページの Launcher セクションで、Kiali リンクをクリックします。
OpenShift Container Platform コンソールにアクセスするときに使用するものと同じユーザー名とパスワードを使用して Kiali コンソールにログインします。
初回の Kiali コンソールへのログイン時に、表示するパーミッションを持つサービスメッシュ内のすべての namespace を表示する Overview ページが表示されます。
コンソールのインストールを検証中で、namespace がまだメッシュに追加されていない場合、
istio-system
以外のデータは表示されない可能性があります。
開発者の手順
- 開発者ロールで OpenShift Container Platform Web コンソールにログインします。
- Project をクリックします。
- 必要に応じて、Project Details ページで、フィルターを使用してプロジェクトの名前を検索します。
-
プロジェクトの名前をクリックします (例:
bookinfo
)。 - Project ページの Launcher セクションで、Kiali リンクをクリックします。
- Log In With OpenShift をクリックします。
1.22.3.1.2. Jaeger コンソールへのアクセス
Jaeger コンソールにアクセスするには、Red Hat OpenShift Service Mesh がインストールされ、Red Hat OpenShift 分散トレースプラットフォームがインストールおよび設定されている必要があります。
インストールプロセスにより、Jaeger コンソールにアクセスするためのルートが作成されます。
Jaeger コンソールの URL が分かっている場合は、これに直接アクセスできます。URL が分からない場合は、以下の指示を使用します。
OpenShift コンソールからの手順
-
cluster-admin 権限を持つユーザーとして OpenShift Container Platform Web コンソールにログインします。(Red Hat OpenShift Dedicated を使用する場合)
dedicated-admin
ロールがあるアカウント。 -
Networking
Routes に移動します。 Routes ページで、Namespace メニューから Service Mesh コントロールプレーンプロジェクトを選択します (例:
istio-system
)。Location 列には、各ルートのリンク先アドレスが表示されます。
-
必要な場合は、フィルターを使用して
jaeger
ルートを検索します。ルートの Location をクリックしてコンソールを起動します。 - Log In With OpenShift をクリックします。
Kiali コンソールからの手順
- Kiali コンソールを起動します。
- 左側のナビゲーションペインで Distributed Tracing をクリックします。
- Log In With OpenShift をクリックします。
CLI からの手順
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform CLI にログインします。(Red Hat OpenShift Dedicated を使用する場合)dedicated-admin
ロールがあるアカウント。$ oc login --username=<NAMEOFUSER> https://<HOSTNAME>:6443
コマンドラインを使用してルートの詳細をクエリーするには、以下のコマンドを入力します。この例では、
istio-system
が Service Mesh コントロールプレーンの namespace です。$ export JAEGER_URL=$(oc get route -n istio-system jaeger -o jsonpath='{.spec.host}')
-
ブラウザーを起動し、
https://<JAEGER_URL>
に移動します。ここで、<JAEGER_URL>
は直前の手順で検出されたルートです。 - OpenShift Container Platform コンソールへアクセスするときに使用するものと同じユーザー名とパスワードを使用してログインします。
サービスメッシュにサービスを追加し、トレースを生成している場合は、フィルターと Find Traces ボタンを使用してトレースデータを検索します。
コンソールインストールを検証すると、表示するトレースデータはありません。