5.5. マルチクラスターメッシュに Kiali をインストールする
2 つの OpenShift Container Platform クラスター上のマルチクラスターメッシュ設定で Kiali をインストールします。
この手順では、CLUSTER1
は East クラスター、CLUSTER2
は West クラスターです。
これらの手順は、2 つ以上のクラスターにまたがるメッシュに適応できます。
前提条件
- 各クラスターに最新の Kiali Operator をインストールした。
- 各クラスターにマルチクラスター設定で Istio インストールされている。
-
この手順を実行するために使用できるノートパソコンに
istioctl
をインストールした。 -
cluster-admin
ロールを持つユーザーとして OpenShift Container Platform Web コンソールにログインしている。 - Kiali がすべてのクラスターからメトリクスのクエリーを実行できるようにメトリクスストアを設定した。Kiali は、それぞれのエンドポイントからメトリクスとトレースのクエリーを実行します。
手順
East クラスターに Kiali をインストールします。
Kiali デプロイメントの namespace を作成する
kiali.yaml
という名前の YAML ファイルを作成します。設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記この例のエンドポイントは、OpenShift Monitoring を使用してメトリクスを設定します。詳細は、「Kiali を使用して OpenShift モニタリングを設定する」を参照してください。
次のコマンドを実行して、East クラスターに YAML ファイルを適用します。
oc --context cluster1 apply -f kiali.yaml
$ oc --context cluster1 apply -f kiali.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
kiali-istio-system.apps.example.com
kiali-istio-system.apps.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、Kiali カスタムリソース (CR) が準備完了状態であることを確認します。
oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
$ oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
kiali.kiali.io/kiali condition met
kiali.kiali.io/kiali condition met
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kiali Route のホスト名を表示します。
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
$ oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow West クラスター上に Kiali CR を作成します。
設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kiali Operator は、East クラスター上の Kiali サーバーが West クラスターに接続するために必要なリソースを作成します。Kiali サーバーは West クラスターにインストールされていません。
次のコマンドを実行して、YAML ファイルを West クラスターに適用します。
oc --context cluster2 apply -f kiali-remote.yaml
$ oc --context cluster2 apply -f kiali-remote.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Kiali CR が準備完了状態であることを確認します。
oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
$ oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow East クラスターの Kiali インストールが West クラスターにアクセスできるように、リモートクラスターシークレットを作成します。
West クラスターの kiali-service-account にバインドされた長期有効 API トークンを作成します。Kiali はこのトークンを使用して West クラスターに対して認証します。
設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、YAML ファイルを West クラスターに適用します。
oc --context cluster2 apply -f kiali-svc-account-token.yaml
$ oc --context cluster2 apply -f kiali-svc-account-token.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kubeconfig
ファイルを作成し、Kiali デプロイメントが存在する East クラスターの namespace にシークレットとして保存します。このプロセスを単純化するには、次の
curl
コマンドを実行し、kiali-prepare-remote-cluster.sh
スクリプトを使用してkubeconfig
ファイルを生成します。curl -L -o kiali-prepare-remote-cluster.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh
$ curl -L -o kiali-prepare-remote-cluster.sh https://raw.githubusercontent.com/kiali/kiali/master/hack/istio/multicluster/kiali-prepare-remote-cluster.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、スクリプトを実行可能に修正します。
chmod +x kiali-prepare-remote-cluster.sh
chmod +x kiali-prepare-remote-cluster.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行し、次のコマンドを実行して East および West クラスターのコンテキストを
kubeconfig
ファイルに渡します。./kiali-prepare-remote-cluster.sh --kiali-cluster-context cluster1 --remote-cluster-context cluster2 --view-only false --kiali-resource-name kiali-service-account --remote-cluster-namespace istio-system --process-kiali-secret true --process-remote-resources false --remote-cluster-name cluster2
$ ./kiali-prepare-remote-cluster.sh --kiali-cluster-context cluster1 --remote-cluster-context cluster2 --view-only false --kiali-resource-name kiali-service-account --remote-cluster-namespace istio-system --process-kiali-secret true --process-remote-resources false --remote-cluster-name cluster2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記--help
オプションを使用すると、スクリプトの使用方法に関する追加の詳細が表示されます。
次のコマンドを実行して、Kiali Operator が CR に含まれるリモートシークレットを登録するようにリコンシリエーションループをトリガーします。
oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"
$ oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Kiali リソースが準備完了状態になるまで待ちます。
oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system
oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Kiali サーバーが準備完了状態になるまで待ちます。
oc --context cluster1 rollout status deployments/kiali -n istio-system
oc --context cluster1 rollout status deployments/kiali -n istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kiali にログインします。
-
Kiali に初めてアクセスするときは、Kiali デプロイメントが含まれるクラスターにログインします。この例では、
East
クラスターにアクセスします。 次のコマンドを実行して、Kiali ルートのホスト名を表示します。
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーで Kiali URL (https://<your-kiali-route-hostname>) に移動します。
-
Kiali に初めてアクセスするときは、Kiali デプロイメントが含まれるクラスターにログインします。この例では、
Kiali 経由で West クラスターにログインします。
Kiali UI で他のクラスターを表示するには、まず Kiali を通じてそれらのクラスターにユーザーとしてログインする必要があります。
- 右上のメニューにあるユーザープロファイルドロップダウンをクリックします。
- Login to West を選択します。OpenShift ログインページにリダイレクトされ、West クラスターの認証情報の入力が求められます。
Kiali が両方のクラスターからの情報を表示することを確認します。
- Overview をクリックし、両方のクラスターの namespace が表示されていることを確認します。
- Navigate をクリックし、メッシュグラフに両方のクラスターが表示されていることを確認します。