マイクロサービスがメッシュを介して通信する場合、失敗したリクエスト、レイテンシーボトルネック、および誤って構成されたルーティングルールを特定するには、リアルタイムトラフィックの可視性が必要です。Mesh Topology は、ライブリクエストデータと ASM 構成をインタラクティブなサービスグラフに結合することでこの可視性を提供し、コンソールを切り替えることなくサービスヘルスをモニターし、トラフィックフローをトレースし、問題を特定できます。
Mesh Topology が表示する内容
| 機能 | 詳細 |
|---|---|
| トラフィックトポロジ | サービス間のリアルタイムリクエストトラフィックのインタラクティブなグラフ。ノードはサービスを表し、エッジはリクエストを表します。HTTP、gRPC、および TCP トラフィックタイプをサポートします。 |
| 構成オーバーレイ | トポロジノードに直接表示されるアクティブな ASM 構成:ピア認証ポリシー、仮想サービス、宛先ルール、速度制限ルール、およびサーキットブレーカー。 |
| ヘルスインジケーター | サービスとリクエストのヘルスを一目で示す色分けされたノードとエッジ。異常なノードやリクエストを迅速に特定するのに役立ちます。 |
| トラフィックリプレイ | 過去の期間のトラフィックをリプレイして、特定のウィンドウ中のアプリケーションのトラフィック条件をトレースします。 |
前提条件
開始する前に、以下を確認してください。
ASM インスタンス (作成するには、「ASM インスタンスの作成」をご参照ください)
ASM インスタンスに追加された Container Service for Kubernetes (ACK) クラスター (「ASM インスタンスへのクラスターの追加」をご参照ください)
メトリック収集のために ASM と統合された Prometheus インスタンス (Managed Service for Prometheus またはセルフマネージド Prometheus インスタンス) (「Managed Service for Prometheus の統合」または「セルフマネージド Prometheus インスタンスの使用」をご参照ください)
Managed Service for Prometheus の料金については、「課金概要」をご参照ください。
Mesh Topology の有効化
有効化手順は、新しい ASM インスタンスを作成するか、既存のインスタンスを構成するかによって異なります。
新しい ASM インスタンスでの Mesh Topology の有効化
ASM コンソールにログオンします。 左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理]を選択します。
[メッシュ管理] ページで、[ASM インスタンスの作成] をクリックします。
「オブザーバビリティ」セクションで、Managed Service For Prometheus の有効化 を選択し、使用している Prometheus インスタンスタイプに応じて設定します:
説明「[Managed Service For Prometheus の有効化]」を選択すると、ASM インスタンスのメトリックのみが収集されます。Application Real-Time Monitoring Service (ARMS) インスタンスや自己管理型 Prometheus インスタンスは自動的に作成されません。
[Managed Service For Prometheus を有効化] と [ASM メッシュトポロジを有効化] の両方をオフにすると、メッシュトポロジが無効になります。
Prometheus インスタンスタイプ 操作手順 Managed Service for Prometheus インスタンス Managed Service for Prometheus を使用してメトリックを収集 を選択し、その後 ASM メッシュトポロジの有効化 を選択します。 セルフマネージド Prometheus インスタンス 独自構築の Prometheus を統合してメトリックモニタリングを実現 および ASM メッシュトポロジの有効化 を選択し、その後、セルフマネージド Prometheus インスタンスの HTTP API アドレスを入力します。 残りのパラメーターを設定し、[サービス利用規約] を読み、同意してから、[Service Mesh の作成] をクリックします。パラメーターの説明については、「ASM インスタンスの作成」をご参照ください。
ASM インスタンスに ACK クラスターを追加します。「ASM インスタンスへのクラスターの追加」をご参照ください。
既存の ASM インスタンスでの Mesh Topology の有効化
ACK クラスターがすでに ASM インスタンスに追加されていることを確認してください。手順は ASM バージョンによって異なります。
ASM バージョン 1.12.4.50 以前
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM インスタンス] > [基本情報] を選択します。右上のエリアで、[設定項目] をクリックします。
[設定の更新] パネルで、[Managed Service For Prometheus の有効化] を選択し、Prometheus インスタンスタイプに基づいて設定します:
Prometheus インスタンスタイプ 手順 Managed Service for Prometheus インスタンス Managed Service for Prometheus を使用したメトリクスの収集ASM メッシュトポロジの有効化 を選択し、 を選択します。 セルフマネージド Prometheus インスタンス 自社構築 Prometheus の統合によるメトリックモニタリングの実現ASM メッシュトポロジの有効化 と を選択し、セルフマネージド Prometheus インスタンスの HTTP API アドレスを入力します。 [OK] を [設定の更新] パネルの下部でクリックします。
ASM バージョン 1.12.4.50 以降
Mesh Topology は、メトリックのために Prometheus 統合を必要とします。ASM インスタンスがまだ Prometheus インスタンスと統合されていない場合は、まず統合を完了してください。「Managed Service for Prometheus の統合」または「セルフマネージド Prometheus インスタンスの使用」をご参照ください。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
「[メッシュ管理]」ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、「[観測性管理センター]」>「[メッシュトポロジー]」を選択します。
「[ASM メッシュトポロジの有効化]」セクションで、お使いの ASM バージョンに応じた手順に従ってください。デプロイモード間の違いについて詳しくは、「マネージドモードでメッシュトポロジを有効化する」をご参照ください。
ASM バージョン 手順 1.18.2.112 未満 [有効化] をクリックします。 1.18.2.112 以降 -- in-Kubernetes-cluster モード [In-Kubernetes-cluster モード] をクリックし、Prometheus インスタンスの HTTP API の URL を入力してから、[有効化] をクリックします。 1.18.2.112 以降 -- マネージドモード [マネージドモード] をクリックしてから、[有効化] をクリックします。表示されたダイアログボックスで、必須パラメーターを設定し、[OK] をクリックします。
Mesh Topology へのアクセス
Mesh Topology を有効にした後、その UI へのアクセスを構成します。ASM バージョンとネットワーク要件に応じて、3つのメソッドが利用可能です。
CLB インスタンスを介したアクセス (推奨)
最小 ASM バージョン: 1.12.4.50
Mesh Topology UI を公開するために、クラシックロードバランサー (CLB) インスタンスを作成します。これは最もシンプルなアクセス方法です。
ASM コンソールにログインします。 左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、[可観測性管理センター] > [メッシュトポロジー] を選択します。
[アクセス] セクションで、ASM バージョンに応じて CLB アクセスを有効化します。
ASM バージョン 手順 1.15.3.120 より前 [ASM メッシュトポロジにアクセスするためのインターネット向け CLB インスタンスを自動的に作成] を選択します。 1.15.3.120 から 1.17.2.19 より前 [ASM メッシュトポロジにアクセスするためのインターネット向け CLB インスタンスを自動的に作成] をオンにします。表示されたダイアログボックスで、[OK] をクリックします。 1.17.2.19 以降 [ASM メッシュトポロジにアクセスするための CLB インスタンスを作成] をオンにします。表示されたダイアログボックスで、必須パラメーターを設定し、[OK] をクリックします。 ASM インスタンスの更新が完了するまで待機します。ステータスを確認するには:
左側のナビゲーションウィンドウで、[ASM インスタンス] > [基本情報] を選択します。
[基本情報] セクションで、[ステータス] フィールドを確認します。[更新中] は更新が進行中であることを意味します。[実行中] は更新が完了したことを意味します。
「メッシュトポロジ」ページの「アクセス」セクションで、[ASM メッシュトポロジにアクセスするには、ここをクリック] または [トークンをコピーして新しいウィンドウで開く] をクリックして、メッシュトポロジを開きます。
ASM イングレスゲートウェイを介したアクセス
ネットワークアクセスとルーティングをより詳細にコントロールするために、ASM イングレスゲートウェイを介して Mesh Topology にトラフィックをルーティングします。
イングレスゲートウェイを作成し、メッシュトポロジー用のポートを追加します。詳しくは、「イングレスゲートウェイの作成」または「Kubernetes API を使用したイングレスゲートウェイの作成と管理」をご参照ください。ポート設定の例:
- name: http-kiali port: 20001 protocol: TCP targetPort: 20001
次の YAML を使用して Istio ゲートウェイを作成します。「Istio ゲートウェイの管理」をご参照ください。
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: kiali-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 20001 protocol: HTTP次の YAML を使用して仮想サービスを作成します。「仮想サービスの管理」をご参照ください。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali-vs namespace: istio-system spec: gateways: - kiali-gateway hosts: - '*' http: - route: - destination: host: kiali port: number: 20001Mesh Topology UI を開きます。
ASM コンソールにログインしてください。左側のナビゲーションウィンドウで、[Service Mesh] > [Mesh 管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、[ASM インスタンス] > [基本情報] を選択します。
「構成情報」セクションで、「Ingress ゲートウェイからのアクセス」を「ASM メッシュトポロジの有効化」の隣をクリックします。
カスタムプロキシサービスを介したアクセス
最小 ASM バージョン: 1.16.4.5
Mesh Topology が有効になると、istio-system 名前空間に Kiali サービスが作成されます。このサービス用のプロキシ (例:NGINX リバースプロキシ) を作成し、カスタムアクセスパラメーターを構成できます。
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
「[メッシュ管理]」ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、「[観測性管理センター]」 > 「[メッシュトポロジー]」を選択します。
[認証] セクションで、[詳細設定を表示] をクリックします。[アクセスモードのカスタマイズ] セクションで、パラメーターを設定し、[メッシュ トポロジーの構成を保存] をクリックします。
パラメーター 説明 カスタムドメイン名をカスタマイズ Mesh Topology のカスタムドメイン名。カスタムドメインを使用する場合はこれを構成します。OpenID Connect (OIDC) ベースのログイン中に、Mesh Topology はリダイレクト URI のドメインをこの値に置き換えます。 ポートをカスタマイズ Mesh Topology がリッスンするポート。デフォルト: 20001。サービスルートパスをカスタマイズ Mesh Topology のルートパス。デフォルト: /。Mesh Topology にアクセスするには、このパスを元の URL に追加します。プロトコルを選択 (HTTPS/HTTP) Mesh Topology にアクセスするためのプロトコル。OIDC ベースのログイン中に、Mesh Topology はリダイレクト URI のプロトコルをこの値に置き換えます。
ASM インスタンスを更新するには、「ASM インスタンスの更新」をご参照ください。
Mesh Topology へのログイン
3つの認証方式が利用可能です。ASM バージョンとセキュリティ要件に基づいていずれかを選択してください。
トークンでログイン
ASM バージョン 1.12.4.50 以前
ACK コンソールからトークンを取得します。
「ACK コンソール」にログインし、左側のナビゲーションウィンドウで [クラスター] をクリックします。
[クラスター] ページで、クラスター名をクリックします。左側のナビゲーションウィンドウで、[設定] > [シークレット] を選択します。
[シークレット] ページで、[名前空間] ドロップダウンリストから [istio-system] を選択します。「名前」列の [kiali-service-account-token-******] をクリックします。「詳細」ページで、[トークン] 行のコピーアイコンをクリックしてトークンをコピーします。
Mesh Topology ログインページで、トークンを貼り付け、[ログイン] をクリックします。
ASM バージョン 1.12.4.50 以降
ASM コンソールからトークンを取得します。
ASM コンソールにログインします。 左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、[可観測性管理センター] > [メッシュトポロジー] を選択します。
「アクセス」セクションで、「トークンをコピーして新しいウィンドウで開く」をクリックします。
Mesh Topology ログインページで、トークンを貼り付け、[ログイン] をクリックします。
OIDC でログイン
最小 ASM バージョン: 1.15.3.120
OpenID Connect (OIDC) は、ID プロバイダー (IdP) を介したシングルサインオン (SSO) を可能にします。ASM インスタンスを更新するには、「ASM インスタンスの更新」をご参照ください。
IdP を設定します。手順 1 および手順 2 については、「Alibaba Cloud IDaaS と ASM を統合してシングルサインオンを実装する」をご参照ください。[リダイレクト URI] を、Mesh トポロジーにアクセスするために使用する CLB インスタンスまたは ASM ゲートウェイの IP アドレスに設定します:
CLB アクセス:
http://<CLB-IP>:20001(ポート番号の後に末尾のスラッシュなし)ゲートウェイアクセス:
http://<Gateway-IP>:20001(ポート番号の後に末尾のスラッシュなし)
重要ポート番号の後にパスを追加しないでください。
20001/、20001/xxx、または20001/xxx/yyyのような形式は有効ではありません。OIDC で Mesh Topology にログインします。
ASM コンソールにログインします。ASM コンソール の左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[観測性管理センター] > [メッシュトポロジー] を選択します。
[認証] セクションで、[OIDC によるログイン] を選択し、パラメーターを設定します。[メッシュトポロジの構成を保存] をクリックします。次に、[ASM メッシュトポロジにアクセスするには、ここをクリック] をクリックします。
Mesh トポロジー ログインページで、[OpenID でログイン] をクリックして、IdP ログインページにリダイレクトされます。
Alibaba Cloud アカウントでログイン
最小 ASM バージョン: 1.16.4.5
OIDC プロトコルを使用して、Resource Access Management (RAM) OAuth アプリケーションに接続します。ASM は、名前が asm-kiali で始まる RAM OAuth アプリケーションを自動的に作成し、それを Mesh Topology と統合します。ASM インスタンスを更新するには、「ASM インスタンスの更新」をご参照ください。
背景情報については、「Web アプリケーションから Alibaba Cloud API にアクセス」をご参照ください。
ASM コンソールにログインします。 左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
「メッシュ管理」ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、「観測性管理センター」>「メッシュトポロジー」を選択します。
[認証]セクションで、[Alibaba Cloud アカウントを使用してログオン]を選択します。ダイアログボックスで、[リダイレクト URI を追加]をクリックし、コールバック URL を入力して、[OK]をクリックします。ASM インスタンスが短時間更新されます。次に進む前に、更新が完了するまで待ちます。
説明コールバック URL のフォーマットについては、OIDC ログインメソッドの リダイレクト URI をご参照ください。
CLB ベースの直接アクセスを使用する場合、コールバック URL は自動的に指定されます。
Mesh トポロジログインページで、[OpenID でログイン] をクリックして、Alibaba Cloud アカウントでログインします。
よくある質問
Managed Service for Prometheus で Mesh Topology のロードに失敗するのはなぜですか?
[ARMS Prometheus を使用してモニタリング指標を収集する] を選択し、Managed Service for Prometheus インスタンスでトークンベースの認証を有効にした場合、Mesh Topology が Prometheus インスタンスにアクセスできない場合があります。この問題を解決するには、次のいずれかの方法に従います。
Prometheus トークンを無効化する: ARMS コンソールの[設定項目]ページで、Managed Service for Prometheus インスタンスのトークンを無効化します。詳細については、「HTTP API URL」をご参照ください。
Mesh Topology 用の Prometheus 認証トークンの構成 (ASM 1.15.3.120 以降):
ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [メッシュトポロジー] を選択します。
[ARMS Prometheus との接続] セクションで、認証トークンを入力し、[メッシュトポロジの構成を保存] をクリックします。
詳細については、「Managed Service for Prometheus からローカル Grafana システムへのデータインポート」をご参照ください。
Mesh Topology で一部のトラフィックのみが表示されるのはなぜですか?
次の原因を確認してください。
トラフィックタイプフィルター: Mesh Topology で関連するすべてのトラフィックタイプ (gRPC、HTTP、TCP) が選択されていることを確認します。
名前空間の選択: 正しい名前空間が選択されていることを確認します。選択されていない名前空間のトラフィックは表示されません。
データ収集の問題:
Prometheus メトリック収集が正常に機能しているか確認します。収集レイテンシーやパケット損失がギャップを引き起こす可能性があります。
クラスター内のすべてのワークロードにサイドカープロキシがインジェクトされていることを確認します。サイドカーがインジェクトされたワークロードのみがトラフィックメトリックをレポートします。
Mesh Topology ページを更新して最新データを取得します。
サイドカープロキシまたはトラフィック構成: ポートまたは IP 除外により、一部のトラフィックがサイドカープロキシをバイパスする可能性があります。サイドカープロキシ構成でトラフィックがサイドカーをバイパスするように構成されているか確認し、インバウンドおよびアウトバウンドトラフィック設定が正しいことを確認します。