メッシュトポロジー機能を有効にすることで、サービス間のインタラクションを視覚的に監視できます。 メッシュトポロジー機能を使用すると、サービスのヘルスステータスをリアルタイムで監視し、サービス間通信のレイテンシやその他の通信の問題を分析し、サービス間のトラフィックの分散とフローに関する情報を取得できます。 これにより、問題を迅速に特定して解決し、サービスの信頼性と高パフォーマンスを保証できます。
機能紹介
Service Mesh (ASM) の可観測性ツールとして、メッシュトポロジーは ASM トラフィックの強力な可視化を提供します。 メッシュトポロジーは、リアルタイムのリクエストトラフィックと ASM 構成情報を組み合わせることで、サービスコールとサービスのヘルスステータスに関する即時の洞察を提供し、問題を迅速に特定するのに役立ちます。 メッシュトポロジーは、次の機能を提供します。
トラフィックコールトポロジー: メッシュトポロジーは、メッシュトラフィックの強力な可視化を提供し、トポロジー内のリアルタイムのリクエストトラフィックを表示します。
メッシュ構成の可視化: メッシュトポロジーは、ASM の構成に基づいて、トポロジー内のノードに関連する構成を表示します。 これにより、ピア認証、仮想サービス、宛先ルール、スロットリング、サーキットブレーキングなど、有効になっている構成をすぐに把握できます。
ヘルスステータスの可視化: メッシュトポロジーは、ノードまたはエッジに色を付けて、サービスまたはリクエストのヘルスステータスを示します。 これにより、異常なノードまたはリクエストをすばやく見つけることができます。
トラフィックリプレイ: トラフィックリプレイを使用すると、過去の選択した期間のトラフィック状況を再現できます。 これにより、特定の期間のアプリケーショントラフィックを追跡できます。
手順 1: メッシュトポロジーを有効にする
シナリオ 1: 新しい ASM インスタンスのメッシュトポロジーを有効にする
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、[ASM インスタンスの作成] をクリックします。
[可観測性] セクションで、[managed Service For Prometheus を有効にする] を選択し、Prometheus インスタンスタイプに基づいて操作を選択します。
Prometheus インスタンスタイプ
操作
Managed Service for Prometheus インスタンス
[managed Service For Prometheus を使用してメトリクスを収集する] を選択し、[ASM メッシュトポロジーを有効にする] を選択します。 Managed Service for Prometheus を統合してサービスメッシュを監視する方法、および Managed Service for Prometheus の課金については、Managed Service for Prometheus を統合してサービスメッシュを監視する および 課金モード を参照してください。
セルフマネージド Prometheus インスタンス
[セルフビルド Prometheus を統合してメトリクス監視を実現する] および [ASM メッシュトポロジーを有効にする] を選択し、メッシュトポロジーが使用するセルフマネージド Prometheus インスタンスの HTTP API アドレスを入力します。 セルフマネージド Prometheus インスタンスを統合する方法については、セルフマネージド Prometheus インスタンスを使用して ASM インスタンスを監視する を参照してください。
説明[managed Service For Prometheus を有効にする] を選択すると、Service Mesh インスタンスのメトリクスのみが収集されます。 Application Real-Time Monitoring Service (ARMS) インスタンスまたはセルフマネージド Prometheus インスタンスは自動的に作成されません。
[managed Service For Prometheus を有効にする] と [ASM メッシュトポロジーを有効にする] の両方を選択解除すると、メッシュトポロジーは無効になります。
関連パラメータを構成し、[サービス規約] を読んで同意し、ページ下部にある [サービスメッシュの作成] をクリックします。
構成項目の説明については、ASMインスタンスの作成をご参照ください。
Container Service for Kubernetes (ACK) クラスタを ASM インスタンスに追加します。 詳細については、クラスタを ASM インスタンスに追加する を参照してください。
シナリオ 2: 既存の ASM インスタンスのメッシュトポロジーを有効にする
ACK クラスタが ASM インスタンスに追加されていることを確認します。 詳細については、クラスタを ASM インスタンスに追加する を参照してください。
バージョンが 1.12.4.50 より前の ASM インスタンスの場合
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。 ページの右上で、[設定] をクリックします。
[設定の更新] パネルで、[managed Service For Prometheus を有効にする] を選択し、Prometheus インスタンスタイプに基づいて操作を選択します。
Prometheus インスタンスタイプ
操作
Managed Service for Prometheus インスタンス
[managed Service For Prometheus を使用してメトリクスを収集する] を選択し、[ASM メッシュトポロジーを有効にする] を選択します。 Managed Service for Prometheus を統合してサービスメッシュを監視する方法、および Managed Service for Prometheus の課金については、Managed Service for Prometheus を統合してサービスメッシュを監視する および 課金モード を参照してください。
セルフマネージド Prometheus インスタンス
[セルフビルド Prometheus を統合してメトリクス監視を実現する] および [ASM メッシュトポロジーを有効にする] を選択し、メッシュトポロジーが使用するセルフマネージド Prometheus インスタンスの HTTP API アドレスを入力します。 セルフマネージド Prometheus インスタンスを統合する方法については、セルフマネージド Prometheus インスタンスを使用して ASM インスタンスを監視する を参照してください。
構成が完了したら、[設定の更新] パネルの下部にある [OK] をクリックします。
バージョンが 1.12.4.50 以降の ASM インスタンスの場合
メッシュトポロジーでは、ASM が Managed Service for Prometheus を統合してメトリクスを監視する必要があります。 ASM が Prometheus インスタンスと統合されてサービスメッシュを監視していない場合は、最初に ASM を Prometheus インスタンスと統合します。 詳細については、Managed Service for Prometheus を統合してサービスメッシュを監視する および セルフマネージド Prometheus インスタンスを使用して ASM インスタンスを監視する を参照してください。 Managed Service for Prometheus の課金については、課金モード を参照してください。
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。 [ASM メッシュトポロジーを有効にする] セクションで、ASM インスタンスのバージョンに基づいて操作を実行します。
ASM インスタンスのバージョンが 1.18.2.112 より前の場合は、[有効にする] をクリックします。
ASM インスタンスのバージョンが 1.18.2.112 以降の場合は、次のいずれかのデプロイメントモードを選択します。 2 つのモードの違いとマネージドモードの構成方法については、マネージドモードでメッシュトポロジーを有効にする を参照してください。
[kubernetes クラスタ内モード] をクリックし、ASM メッシュトポロジーが使用する Prometheus インスタンスの HTTP API URL を入力して、[有効にする] をクリックします。
[マネージドモード] をクリックし、[有効にする] をクリックします。 表示されるダイアログボックスで、必要なパラメータを構成し、[OK] をクリックします。
手順 2: メッシュトポロジーのログオンページを開く
次の方法でメッシュトポロジーにアクセスできます。 メッシュトポロジーへの直接アクセスをサポートするには、ASM バージョンが 1.12.4.50 以降である必要があります。 メッシュトポロジーへのカスタムアクセスをサポートするには、ASM バージョンが 1.16.4.5 以降である必要があります。
方法 1: メッシュトポロジーに直接アクセスする
ASM インスタンスのバージョンが 1.12.4.50 以降の場合は、Classic Load Balancer (CLB) インスタンスを作成して ASM メッシュトポロジーにアクセスできます。
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。
[アクセス] セクションで、ASM インスタンスのバージョンに基づいて次のいずれかの操作を実行します。
ASM インスタンスのバージョンが 1.15.3.120 より前の場合は、[インターネット向け CLB インスタンスを自動的に作成して ASM メッシュトポロジーにアクセスする] を選択します。
ASM インスタンスのバージョンが 1.15.3.120 以降 1.17.2.19 より前の場合は、[インターネット向け CLB インスタンスを自動的に作成して ASM メッシュトポロジーにアクセスする] をオンにします。 表示されるダイアログボックスで、[OK] をクリックします。
ASM インスタンスのバージョンが 1.17.2.19 以降の場合は、[CLB インスタンスを作成して ASM メッシュトポロジーにアクセスする] をオンにします。 表示されるダイアログボックスで、必要なパラメータを構成し、[OK] をクリックします。
メッシュトポロジーアクセスが有効になると、ASM インスタンスは短時間更新状態になります。
ASM インスタンスの更新が完了したかどうかを確認します。
左側のナビゲーションペインで、 を選択します。
[基本情報] セクションで、ASM インスタンスの [ステータス] を確認します。
[ステータス] が [更新中] の場合は、ASM インスタンスの更新が進行中です。 [ステータス] が [実行中] の場合は、更新は完了しています。
[メッシュトポロジー] ページの [アクセス] セクションで、[ここをクリックして ASM メッシュトポロジーにアクセスする] または [トークンをコピーして新しいウィンドウで開く] をクリックして、メッシュトポロジーのログオンページを開きます。
方法 2: ASM ゲートウェイを使用してメッシュトポロジーにアクセスする
イングレスゲートウェイを作成し、メッシュトポロジーにアクセスするためのポートを構成します。 詳細については、イングレスゲートウェイを作成する または Kubernetes API を使用してイングレスゲートウェイを作成および管理するを参照してください。
ポート構成の YAML 例:
- name: http-kiali // http-kiali port: 20001 protocol: TCP targetPort: 20001
次の YAML テンプレートを使用して、Istio ゲートウェイを作成します。 詳細については、Istio ゲートウェイを管理する を参照してください。
apiVersion: networking.istio.io/v1alpha3 kind: Gateway // ゲートウェイ metadata: name: kiali-gateway // kiali-ゲートウェイ 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 // kiali-vs namespace: istio-system spec: gateways: - kiali-gateway // kiali-ゲートウェイ hosts: - '*' http: - route: - destination: host: kiali port: number: 20001メッシュトポロジーのログオンページを開きます。
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。
[構成情報] セクションで、[ASM メッシュトポロジーを有効にする] の右側にある [イングレスゲートウェイからアクセス] をクリックして、メッシュトポロジーのログオンページを開きます。
方法 3: メッシュトポロジーへのアクセスをカスタマイズする
メッシュトポロジーを有効にすると、メッシュトポロジーは Kubernetes クラスタの istio-system ネームスペースに Kiali という名前のサービスを作成します。 このサービスのプロキシサービスを作成し、プロキシサービスを使用してメッシュトポロジーにアクセスできます。 たとえば、Kiali サービスの NGINX リバースプロキシを作成し、NGINX を使用してメッシュトポロジーにアクセスできます。 [アクセスモードのカスタマイズ] セクションのパラメータを構成することで、Kiali サービスへのアクセス方法を指定できます。 この方法を使用するには、ASM バージョンが 1.16.4.5 以降である必要があります。 ASM インスタンスの更新方法については、ASM インスタンスを更新する を参照してください。
ASM コンソールにログオンします。 左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションペインで、 を選択します。
[認証] セクションの下部にある [詳細設定を表示] をクリックします。 [アクセスモードのカスタマイズ] セクションで、関連情報を構成し、[メッシュトポロジーの構成を保存] をクリックします。
パラメータ
説明
[ドメイン名をカスタマイズする]
メッシュトポロジーのカスタムドメイン名。 カスタムドメイン名を使用してメッシュトポロジーにアクセスする場合は、このパラメータを構成することをお勧めします。 そうしないと、メッシュトポロジーの OpenID Connect (OIDC) ベースのログオンプロセスが影響を受ける可能性があります。 OIDC を使用してメッシュトポロジーにログオンすると、メッシュトポロジーはリダイレクト URI のドメイン名をカスタムドメイン名に置き換えます。 これにより、メッシュトポロジーと OIDC アプリケーション間の接続が正常に行われます。
[ポートをカスタマイズする]
メッシュトポロジーが listen するポート。 デフォルト値: 20001。 このパラメータを指定すると、メッシュトポロジーは指定されたポートで listen します。
[サービスルートパスをカスタマイズする]
メッシュトポロジーのルートパス。 デフォルト値: /。 このパラメータを指定すると、メッシュトポロジーは指定されたルートパスでサービスを提供します。 メッシュトポロジーにアクセスするには、カスタムルートパスを元のアドレスに追加する必要があります。
[プロトコルを選択 (HTTPS/HTTP)]
メッシュトポロジーへのアクセスに使用されるプロトコル。 有効な値: http および https。 HTTPS を使用してメッシュトポロジーにアクセスする場合は、このパラメータを構成することをお勧めします。 そうしないと、メッシュトポロジーの OIDC ベースのログオンプロセスが影響を受ける可能性があります。 OIDC を使用してメッシュトポロジーにログオンすると、メッシュトポロジーはリダイレクト URI のプロトコルを指定されたプロトコルに置き換えます。 これにより、メッシュトポロジーと OIDC アプリケーション間の接続が正常に行われます。
ステップ 3:Mesh Topology にログオンする
次の方法を使用して Mesh Topology にログオンできます。OIDC を使用してログオンする場合は、ASM インスタンスのバージョンが 1.15.3.120 以降である必要があります。Alibaba Cloud アカウントを使用してログオンする場合は、ASM インスタンスのバージョンが 1.16.4.5 以降である必要があります。
方法 1: トークンを使用してメッシュトポロジーにログオンする
バージョンが 1.12.4.50 より前の ASM インスタンスの場合
ACK コンソールにログオンしてトークンを取得し、そのトークンを使用してメッシュトポロジーにログオンできます。
ACK コンソール にログオンします。左側のナビゲーションペインで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のペインで、 を選択します。
[シークレット] ページで、istio-system[名前空間] ドロップダウンリストから kiali-service-account-token-****
トークン を選択します。[名前] 列の をクリックします。表示されたページで、 行の アイコンをクリックしてトークンをコピーします。メッシュトポロジーのログオンページで、トークンを貼り付けて [ログイン] をクリックして、メッシュトポロジーコンソールを開きます。
バージョンが 1.12.4.50 以降の ASM インスタンスの場合
ASM コンソールにログオンしてトークンを取得し、そのトークンを使用してメッシュトポロジーにログオンできます。
ASM コンソール にログオンします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[メッシュトポロジー] ページの [アクセス] セクションで、[トークンをコピーして新しいウィンドウで開く] をクリックします。
メッシュトポロジーのログオンページで、トークンを貼り付けて [ログイン] をクリックして、メッシュトポロジーコンソールを開きます。
方法 2: OIDC を使用してメッシュトポロジーにログオンする
OIDC は、シングルサインオン (SSO) の実装によく使用される ID 認証および認可プロトコルです。 OIDC プロトコルを介して ID プロバイダー (IdP) に接続し、メッシュトポロジーにログオンできます。 OIDC を使用する場合は、ASM インスタンスのバージョンが 1.15.3.120 以降である必要があります。 ASM インスタンスの更新方法の詳細については、「ASM インスタンスの更新」をご参照ください。
IdP を構成します。詳細については、「Alibaba Cloud IDaaS と ASM を統合してシングルサインオンを実装する」の手順 1 と手順 2 をご参照ください。
CLB インスタンスを使用してメッシュトポロジーにアクセスする場合は、[リダイレクト URI] を CLB インスタンスの IP アドレスに設定します。または、ASM ゲートウェイを使用してメッシュトポロジーにアクセスする場合は、このパラメーターを ASM ゲートウェイの IP アドレスに設定します。構成例:
CLB インスタンスを使用してメッシュトポロジーにアクセスし、CLB インスタンスの IP アドレスが
xxx.xxx.xxx.xxxの場合、[リダイレクト URI] パラメーターをhttp://xxx.xxx.xxx.xxx:20001に設定します。 20001 の後にスラッシュ (/) を付けないでください。たとえば、20001/xxx、20001/、20001/xxx/、および 20001/xxx/yyy は許可されていません。ASM ゲートウェイを使用してメッシュトポロジーにアクセスし、ASM ゲートウェイの IP アドレスが
yyy.yyy.yyy.yyyの場合、[リダイレクト URI] パラメーターをhttp://yyy.yyy.yyy.yyy:20001に設定します。 20001 の後にスラッシュ (/) を付けないでください。たとえば、20001/xxx、20001/、20001/xxx/、および 20001/xxx/yyy は許可されていません。
OIDC を使用してメッシュトポロジーにログオンします。
ASM コンソール にログオンします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、管理する ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[認証] セクションで、[OIDC でログイン] を選択し、関連パラメーターを構成します。 [メッシュトポロジーの構成を保存] をクリックします。次に、[ここをクリックして ASM メッシュトポロジーにアクセス] をクリックします。
メッシュトポロジーのログオンページで、[openid でログイン] をクリックして、OIDC アプリケーションのログオンページにリダイレクトします。
方法 3: Alibaba Cloud アカウントを使用してメッシュトポロジーにログオンする
OIDC プロトコルを使用して Alibaba Cloud RAM OAuth アプリケーションに接続できます。この方法では、Alibaba Cloud アカウントを使用してメッシュトポロジーにログオンできます。詳細については、「Web アプリケーションから Alibaba Cloud API にアクセスする」をご参照ください。
この方法を使用すると、ASM は asm-kiali で始まる名前の Alibaba Cloud RAM OAuth アプリケーションを自動的に作成し、アプリケーションをメッシュトポロジーと統合します。この方法を使用するには、ASM バージョンが 1.16.4.5 以降である必要があります。 ASM インスタンスの更新方法の詳細については、「ASM インスタンスの更新」をご参照ください。
ASM コンソール にログオンします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[認証] セクションで、[Alibaba Cloud アカウントを使用してログオン] を選択します。表示されるダイアログボックスで、[リダイレクト URI を追加] をクリックし、コールバック URL を入力して、[OK] をクリックします。
ASM インスタンスは短時間更新されます。更新が完了するまで待ってから、次の手順に進みます。
説明コールバック URL の形式の詳細については、「メソッド 2: OIDC を使用してメッシュトポロジにログオンする」のリダイレクト URI をご参照ください。
メッシュトポロジーに直接アクセスする方法を使用する場合、コールバック URL は自動的に指定されます。
メッシュトポロジーのログオンページで、[OpenID でログイン] をクリックして、Alibaba Cloud アカウントとしてログオンします。
FAQ
メッシュトポロジが Managed Service for Prometheus を使用してメトリクスを収集したときに読み込みに失敗したのはなぜですか?
ASM インスタンスで ARMS Prometheus を使用して監視指標を収集する を選択し、Managed Service for Prometheus インスタンスのトークンベース認証を有効にしている場合、メッシュトポロジは Managed Service for Prometheus インスタンスにアクセスできない可能性があります。その結果、メッシュトポロジを読み込めませんでした。次の方法を使用して、この問題を解決できます。詳細については、「Prometheus 監視データをローカルの Grafana システムと統合する」をご参照ください。
方法 1: ARMS コンソール の [設定] ページで、Managed Service for Prometheus インスタンスのトークンを無効にします。詳細については、「HTTP API URL を使用して Prometheus インスタンスを自己管理型 Grafana システムに接続する」をご参照ください。
方法 2:メッシュトポロジが Managed Service for Prometheus インスタンスにアクセスするための Managed Service for Prometheus 認証トークンを設定します。
説明この操作には、ASM インスタンスのバージョンが 1.15.3.120 以降である必要があります。
ASMコンソール にログインします。左側のナビゲーションペインで、 を選択します。
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションペインで、 を選択します。
[ARMS Prometheus との接続] の下のテキストフィールドに、Managed Service for Prometheus 用に設定された認証トークンを入力し、[メッシュトポロジの設定を保存] をクリックして、メッシュトポロジが Managed Service for Prometheus インスタンスにアクセスするための認証トークンを設定します。
メッシュトポロジでトラフィックの一部しか表示できないのはなぜですか?
この問題のトラブルシューティングを行うには、次の考えられる原因を確認できます。
構成
メッシュトポロジで、gRPC、HTTP、TCP など、正しいトラフィックタイプが選択されていることを確認します。これらのオプションを選択しないと、すべてのトラフィック情報を表示できません。
名前空間
メッシュトポロジで、正しい名前空間が選択されていることを確認します。選択されていない名前空間にトラフィックが存在する場合があります。
データの収集と更新
Prometheus インスタンスのメトリック収集が正常であることを確認します。ASM は、正常に収集されたデータのみを表示する場合があります。遅延やパケット損失など、さまざまな理由により、トポロジに一部のトラフィックデータが表示されない場合があります。
クラスター内のすべてのワークロードにサイドカープロキシが挿入されていることを確認します。サイドカープロキシが挿入されたワークロードのみが、トラフィックのメトリックデータを報告します。
メッシュトポロジページがリアルタイムで更新されているかどうかを確認するか、メッシュトポロジページを手動で更新して最新のトラフィックデータを取得します。
サイドカープロキシ構成とサイドカートラフィック構成
ASM のサイドカープロキシ構成またはサイドカートラフィック構成が原因で、一部のトラフィックはサイドカープロキシを通過せず、監視できません。サイドカープロキシ構成でポートまたは IP アドレスによってトラフィックがサイドカープロキシをバイパスするように構成されているかどうか、またはサイドカートラフィック構成で目的のインバウンドトラフィックとアウトバウンドトラフィックが正しく構成されているかどうかを確認します。
参照資料
一部のリクエストの応答レイテンシが高い場合は、アクセスログを使用して高レイテンシの原因を特定できます。詳細については、「ASM でアクセスログを使用して高レイテンシの原因を特定する」をご参照ください。
サービスコールのレイテンシを最小限に抑えたい場合は、ゾーン認識ルーティング機能を使用して、クライアントが同じゾーンにデプロイされている宛先サービスを最初に呼び出すようにすることができます。詳細については、「ASM インスタンストポロジでゾーン認識ルーティング機能を確認する」をご参照ください。
複数のクラスターのトラフィックトポロジを監視する場合は、マネージドモードでメッシュトポロジ機能を使用できます。マネージドモードでは、ASM インスタンス全体に対して 1 つのメッシュトポロジサービスのみをデプロイする必要があります。これにより、構成の作業負荷が軽減されます。詳細については、「マネージドモードでメッシュトポロジを有効にする」をご参照ください。
サイドカープロキシのリクエストインターセプトメカニズムは、ASM インスタンス内のアプリケーションのヘルスチェックを妨害し、チェックが失敗する可能性があります。ヘルスチェックリクエストのリダイレクトを有効にして、チェックが正しく実行されるようにすることができます。詳細については、「ASM インスタンス内のアプリケーションの HTTP または TCP ヘルスチェックリクエストのリダイレクトを構成する」をご参照ください。