マルチクラスタの問題の解決

このセクションでは、Cloud Service Mesh の一般的な問題とその解決方法について説明します。さらにサポートが必要な場合は、サポートの利用をご覧ください。

Secret がない

Cloud Service Mesh は、リモート エンドポイントを適切に検出するために、Kubernetes Secret に埋め込まれた kubeconfig ファイルを使用します。Secret がない場合、クラスタ間のロード バランシングでローカル クラスタの Pod にリクエストが常に表示されます。

すべてのクラスタで次のコマンドを実行して、シークレットが作成されたことを確認します。

kubectl get secret istio-remote-secret-CLUSTER_NAME_i -n istio-system

次のような出力が表示されることを確認します。

NAME                                   TYPE     DATA   AGE
istio-remote-secret-CLUSTER_NAME_i   Opaque   1      44s

これを回復するには、すべてのリモート Secret を削除し、create-mesh コマンドを再実行します。

API サーバーにアクセスできない

Cloud Service Mesh のコントロール プレーンは、リモート クラスタの API サーバーにアクセスする必要があります。次の状況では、リモート クラスタが到達不能になる可能性があります。

API サーバーにアクセスできない場合、Istiod はログにエラー メッセージを出力します。クラスタ間のロード バランシングで、リクエストが常にローカル Pod に表示されます。

[ログ エクスプローラ] インターフェースで、クエリ resource.typeistio_control_plane に設定します。

無効な Secret がないか確認してください。

上記の状況から回復するには、まず、原因となっている API サーバーの到達可能性の問題を修正します。次に、すべてのクラスタのリモート Secret をすべて削除して、create-mesh コマンドを再実行します。

ファイアウォール ルールがない

適切なファイアウォール ルールがないと、クラスタ間でロード バランシングが行われる際にタイムアウトにより 10 秒の遅延が発生します。

この状況から回復するには、ファイアウォール ルールを作成するで説明されている手順を行います。