Kubernetesで構築したマイクロサービス同士の通信を管理するオープンソースソフトウェア「Istio」の開発チームは、Istioの新しいデータプレーンモデル「Ambient Mesh」を9月7日(現地時間)に公開した。
Istioでは、個々のマイクロサービスに「Sidecar」と呼ぶプロキシを挿入し、Sidecar経由で通信する手法を採っている。しかし、この手法ではSidecarが消費するプロセッサ時間とメモリ量が問題となることがある。プロセッサ時間とメモリは、最悪の場合に備えて割り当てるものであり、個々のマイクロサービスにSidecarを挿入していては、プロセッサやメモリを余計に用意しなければならない。
そこでIstioの開発チームが考え出したAmbient Meshでは、データプレーンに必要な機能を基本の層とアプリケーション層(L7)の2層に分割した。基本の層ではTCP通信のルーティングや、TLSによるセキュリティなど、低層の基本的な機能だけを提供し、アプリケーション層ではHTTPルーティングやロードバランシング、高度な認証などの高度な機能を提供する。
そして、基本の層だけを利用する場合は、「Ztunnel(Zero-trust tunnel)」と呼ぶトンネルを通して通信する。この場合はKubernetesノードに配置したエージェント同士の通信となり、HTTPなどのアプリケーション層の処理はせず、TCPやTLSなどのトランスポート層(L4)以下の層の通信のみを処理する。
アプリケーション層の処理が必要になったら、エージェント同士の通信だったものを、「Waypoint Proxy」と呼ぶプロキシを挟んだ通信に切り替える。Waypoint Proxyは、単独のKubernetesポッドとして独立しており、マイクロサービスに挿入する形式を採らない。実際のトラフィックの量に応じてKubernetesが自動的にスケールさせるため、Sidecarのように最悪の状況を想定してプロセッサやメモリを用意する必要はない。
Istioの開発チームは、Ambient Meshが利用可能なIstioのプレビュー版を用意しており、開発者にダウンロードして試してみてほしいと呼びかけている。
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です