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 ファイルを作成します。設定例
apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: version: default external_services: prometheus: auth: type: bearer use_kiali_token: true thanos_proxy: enabled: true url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091注記この例のエンドポイントは、OpenShift Monitoring を使用してメトリクスを設定します。詳細は、「Kiali を使用して OpenShift モニタリングを設定する」を参照してください。
次のコマンドを実行して、East クラスターに YAML ファイルを適用します。
$ oc --context cluster1 apply -f kiali.yaml出力例
kiali-istio-system.apps.example.com
次のコマンドを実行して、Kiali カスタムリソース (CR) が準備完了状態であることを確認します。
$ oc wait --context cluster1 --for=condition=Successful kialis/kiali -n istio-system --timeout=3m出力例
kiali.kiali.io/kiali condition metKiali Route のホスト名を表示します。
$ oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'West クラスター上に Kiali CR を作成します。
設定例
apiVersion: kiali.io/v1alpha1 kind: Kiali metadata: name: kiali namespace: istio-system spec: version: default auth: openshift: redirect_uris: # Replace kiali-route-hostname with the hostname from the previous step. - "https://{kiali-route-hostname}/api/auth/callback/cluster2" deployment: remote_cluster_resources_only: trueKiali Operator は、East クラスター上の Kiali サーバーが West クラスターに接続するために必要なリソースを作成します。Kiali サーバーは West クラスターにインストールされていません。
次のコマンドを実行して、YAML ファイルを West クラスターに適用します。
$ oc --context cluster2 apply -f kiali-remote.yaml次のコマンドを実行して、Kiali CR が準備完了状態であることを確認します。
$ oc wait --context cluster2 --for=condition=Successful kialis/kiali -n istio-system --timeout=3mEast クラスターの Kiali インストールが West クラスターにアクセスできるように、リモートクラスターシークレットを作成します。
West クラスターの kiali-service-account にバインドされた長期有効 API トークンを作成します。Kiali はこのトークンを使用して West クラスターに対して認証します。
設定例
apiVersion: v1 kind: Secret metadata: name: "kiali-service-account" namespace: "istio-system" annotations: kubernetes.io/service-account.name: "kiali-service-account" type: kubernetes.io/service-account-token次のコマンドを実行して、YAML ファイルを West クラスターに適用します。
$ oc --context cluster2 apply -f kiali-svc-account-token.yamlkubeconfigファイルを作成し、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次のコマンドを実行して、スクリプトを実行可能に修正します。
chmod +x kiali-prepare-remote-cluster.sh次のコマンドを実行し、次のコマンドを実行して 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注記--helpオプションを使用すると、スクリプトの使用方法に関する追加の詳細が表示されます。
次のコマンドを実行して、Kiali Operator が CR に含まれるリモートシークレットを登録するようにリコンシリエーションループをトリガーします。
$ oc --context cluster1 annotate kiali kiali -n istio-system --overwrite kiali.io/reconcile="$(date)"次のコマンドを実行して、Kiali リソースが準備完了状態になるまで待ちます。
oc --context cluster1 wait --for=condition=Successful --timeout=2m kialis/kiali -n istio-system次のコマンドを実行して、Kiali サーバーが準備完了状態になるまで待ちます。
oc --context cluster1 rollout status deployments/kiali -n istio-systemKiali にログインします。
-
Kiali に初めてアクセスするときは、Kiali デプロイメントが含まれるクラスターにログインします。この例では、
Eastクラスターにアクセスします。 次のコマンドを実行して、Kiali ルートのホスト名を表示します。
oc --context cluster1 get route kiali -n istio-system -o jsonpath='{.spec.host}'- ブラウザーで Kiali URL (https://<your-kiali-route-hostname>) に移動します。
-
Kiali に初めてアクセスするときは、Kiali デプロイメントが含まれるクラスターにログインします。この例では、
Kiali 経由で West クラスターにログインします。
Kiali UI で他のクラスターを表示するには、まず Kiali を通じてそれらのクラスターにユーザーとしてログインする必要があります。
- 右上のメニューにあるユーザープロファイルドロップダウンをクリックします。
- Login to West を選択します。OpenShift ログインページにリダイレクトされ、West クラスターの認証情報の入力が求められます。
Kiali が両方のクラスターからの情報を表示することを確認します。
- Overview をクリックし、両方のクラスターの namespace が表示されていることを確認します。
- Navigate をクリックし、メッシュグラフに両方のクラスターが表示されていることを確認します。