Service Directory と GKE の統合: すべてのサービスが 1 つのレジストリに
Google Cloud Japan Team
※この投稿は米国時間 2021 年 8 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。
Kubernetes サービスは、多くの場合、大規模なデプロイメントの一部を形成しています。Google Kubernetes Engine(GKE)に加えて、さまざまな Google Cloud テクノロジーで他のサービスを実行している場合や、外部クラウドやオンプレミスでサービスを実行している場合もあります。
Service Directory は、さまざまなプラットフォームのサービスが相互を検出して接続できるように、すべてのサービスのインベントリを 1 か所で管理できるようにするマネージド プロダクトです。Service Directory には、次のようなコア機能があります。
サービスのためのフルマネージド レジストリ。
GKE、その他の Google Cloud プロダクト、外部環境を含むすべての環境での標準化されたサービス ディスカバリ。
メタデータをサービスに追加し、メタデータに基づいてサービスをフィルタリングするための Service アノテーション。
サービスごとの論理的な IAM 権限。
HTTP、gRPC、DNS を介したアクセス。Service Directory は Cloud DNS と統合されているため、Service Directory に登録されたサービスに、対応する DNS レコードが Cloud DNS で自動的に作成されます。
そして今回、GKE サービスが Service Directory に自動的に登録されるようになりました。このプレビュー リリースでは、オーケストレーション コードを記述せずに GKE サービスを Service Directory に登録および登録解除できます。Service Directory では、サービスは、以下のシンプルなオンライン ショップのように、GKE 内と他の場所の両方で他のサービスをアドバタイズできます。


Service Directory に GKE サービスを設定する
Service Directory の登録は、GKE Connect 機能として利用できます。この例では、オンライン ショップのバックエンドの一部として「payments」(支払い)と呼ばれる新しい GKE サービスを作成して、Service Directory GKE Connect 機能を有効にし、登録ポリシーを構成し、以下のサービス YAML を適用して Service Directory に登録しました。
この payments サービスは、デプロイメント内の他のサービスとともに、Service Directory に表示されます。


GKE サービスを Service Directory にオンボーディングする際、GKE と Service Directory の間でサービスを同期するためのオンボーディング コードを記述する必要はありません。代わりに、サービスを Service Directory に自動的に登録と登録解除を行えます。
GKE サービスは、サービスごとに追加できます。自動統合は、ClusterIP、Headless、LoadBalancer、NodePort サービスタイプをサポートしています。
Service Directory からのサービスのクエリ
DNS、HTTP、gRPC を介して Service Directory のサービスにアクセスできます。Service Directory は Cloud DNS と統合されており、サービスが追加されると自動的に DNS レコードにデータを入力できます。すでに DNS を使用しているクライアントは、Service Directory 内のサービスにクエリを実行するときに引き続き DNS を使用できます。
アノテーションに基づいてサービスにクエリを実行することもできます。サービスに関する特定のビューを取得するために、アノテーションに基づいて複雑なクエリを作成できます。たとえば、Service Directory を使用して、「experimental」というアノテーションが付けられていて、「needs-deprecation」というアノテーションが付けられていないすべてのサービスを検索できます。
Service Directory は複数の環境にわたるサービス用に設計されているため、サービスが構築されている基盤となるインフラストラクチャに関係なく、サービス ルックアップとアノテーション ベースのクエリの両方がすべてのサービスで同じように機能します。
Service Directory の GKE サービスのサポートにより、堅牢な分散アプリケーションを構築するために必要なすべてのサービスを 1 か所で追跡できるようになりました。Service Directory への GKE サービスの登録を開始するには、ドキュメントをご覧ください。
-ソフトウェア エンジニア Katie Hochberg
-Service Directory 担当 PM、Abhijeet Kalyan