プロキシレス gRPC サービス メッシュのデバッグ
Google Cloud Japan Team
※この投稿は米国時間 2021 年 5 月 5 日に、Google Cloud blog に投稿されたものの抄訳です。
サービス メッシュ内のプロキシレス gRPC アプリケーションが、サイドカー Envoy プロキシを使用したデプロイメントと同じ機能の多くをサポートしています。しかし、これまでは、メッシュ内の特定のノードに関する問題についてアプリケーション レベルで分析情報を得るのは困難でした。本日、プロキシレス gRPC アプリケーションのデバッグを容易にする新しいツール、サンプルコード、ドキュメントがリリースされました。
プロキシレス gRPC に、メッシュ内のノードのライブデバッグを可能にする管理 API が追加されました。また、xDS CSDS プロトコルのサポートにより、ノードごとのコントロール プレーン構成をさらに詳しく調べて問題を特定し、解決できるようになりました。さらに、OpenCensus インストルメンテーションを gRPC のクライアントとサーバーに追加して、Cloud Monitoring と Cloud Trace に指標とトレースデータを送信する方法を示したドキュメントとサンプルコードもご用意しました。
gRPC はネットワーク ライブラリとして、デバッグを容易にする事前定義された管理サービスを提供します。一例として、Channelz(gRPC ブログを参照)という名前のチャネル トレース サービスがあります。Channelz を使用すると、各チャネルを通過するリクエストに関する指標(送信された RPC の数、成功した数、失敗した数など)にアクセスできます。既存の各管理サービスは個別のライブラリとしてパッケージ化されていて、事前定義された管理サービスのドキュメントも 1 か所にまとまってはいません。それぞれの管理サービスの依存関係管理、モジュールの初期化、ライブラリのインポートを正しく行うには時間がかかる場合があります。
先日、管理サービスを公開するための gRPC サーバーを簡単に作成できるようにする管理インターフェース API を gRPC に導入いたしました。これにより、将来追加する可能性のある新しい管理サービスが、gRPC バージョンをアップグレードするだけで、管理インターフェースを介して自動的に利用できるようになります。
大規模なサービス メッシュのデバッグは複雑な作業になる可能性があります。構成の誤り、バックエンドの異常、コントロール プレーンやデータプレーンの問題があると、予期しないルーティング動作が発生してしまいます。gRPC は、管理インターフェース API の一部として xDS 構成を公開できるようになりました。これは、Google のフルマネージド サービス メッシュである Traffic Director が gRPC アプリケーションへの送信を行うサービス メッシュ構成です。この構成は CSDS サービスを介して公開され、管理インターフェース API を使用して簡単に開始できます。Google の grpcdebug CLI ツールは、ターゲット gRPC アプリケーションから取得した情報に基づいて、人間が読み取り可能な出力を表示します。
また、OpenCensus ライブラリを使用して gRPC の C++、Go、Java クライアントおよびサーバーをインストルメント化し、指標とトレースを Cloud Monitoring と Cloud Trace に送信できるようになりました。OpenCensus への gRPC の統合は以前から利用可能でしたが、ユーザーガイドとサンプルコードによって、サービス メッシュのコンテキストで OpenCensus インストルメンテーションを構成し、プロキシレス gRPC と Envoy サイドカー アプリケーションの両方でトレースの互換性を確保する方法が明確にわかるようになります。プロキシレス gRPC アプリケーションをインストルメント化すると、次の gRPC ウォレット メッシュの例のようなトレースを表示できるようになります。


Traffic Director での gRPC の使用と、これらの新機能の詳細については以下のリンクをご参照ください。
-プロキシレス gRPC サービス メッシュ担当エンジニア Lidi Zheng
-プロキシレス gRPC サービス メッシュ担当エンジニア Eric Gribkoff



