コンテンツに移動
ネットワーキング

プロキシレス gRPC サービス メッシュのデバッグ

2021年5月25日
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 ウォレット メッシュの例のようなトレースを表示できるようになります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/gRPC_Wallet_mesh.max-900x900.jpg

Traffic Director での gRPC の使用と、これらの新機能の詳細については以下のリンクをご参照ください。

-プロキシレス gRPC サービス メッシュ担当エンジニア Lidi Zheng

-プロキシレス gRPC サービス メッシュ担当エンジニア Eric Gribkoff

投稿先