Istioが新たな仕組み「Ambient Mesh」を発表。サイドカーなしでサービスメッシュを実現
今回は「Istioが新たな仕組み「Ambient Mesh」を発表。サイドカーなしでサービスメッシュを実現」についてご紹介します。
関連ワード (注目、経由、通信等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Istioは、サービスメッシュを実現する新たな仕組み「Ambient Mesh」を発表しました。
現在のIstioは、各サービス(≒KubenetesのPod)ごとにプロキシを配置し、サービス間のネットワークをプロキシ経由で構成することによってサービスメッシュを構築しています。これによりサービス間の通信のトラフィックコントロール、暗号化、可観測性(オブザーバビリティ)などの機能が実現されるわけです。
この仕組みは、サービスの隣にプロキシを配置することから、「サイドカー」パターンなどと呼ばれています。
新たな仕組み「Ambient Mesh」では、Pod群をホストしているノードにプロキシを配置し、このプロキシによってサービスメッシュの機能を実現します。
Podごとのプロキシ配置が不要になる、つまり「サイドカーレス」(Sidecar-less)なパターンとなることで、デプロイや管理の容易、コンピュータリソースを効率よく利用できることなどが期待できます。
このAmbient Meshの仕組みは、GoogleとSolo.ioが貢献したと説明されています。
Istio Ambient Mesh was just announced! What is it and why did we create it? https://t.co/8SD5Rz94I0 pic.twitter.com/21KgyKPEXg
— solo.io (@soloio_inc) September 7, 2022
L7のコントロールには引き続きサイドカーパターンを用いる
下記がSolo.ioによるAmbient Meshの説明図です。左が従来のサイドカーパターンで、各サービス(水色の四角)の左に「P」で示されたプロキシが配置され、サービス間の通信はプロキシ経由で行われます。
右がAmbient Meshによるサイドカーレスのパターンです。ノード(灰色の長方形)にプロキシが配置され、サービス間の通信はノード上のプロキシ経由で行われます。
ただしこの図にもあるように、Ambient Meshにおけるノード上のプロキシはL4(≒TCP)の通信に対するプロキシとして働きます。L7(≒HTTP)でのトラフィックコントロールやセキュリティ、オブザーバビリティを実現したい場合には、従来のサイドカーパターンに似た形式でEnvoyベースのWaypointプロキシと呼ばれる仕組みを利用します。
このAmbient Meshは今後数カ月以内に投入される見通しです。
競合するCiliumではサイドカーフリーを実現済み
実は、Istioに選考してサイドカーパターンを用いずにサービスメッシュを実現する仕組みを持つソフトウェアがすでに登場しています。Ciliumです。
Ciliumは、Linuxカーネルの内部をフックして機能を拡張できる「eBPF」と呼ばれる注目の技術を用いてサービスメッシュを実現するソフトウェアとして、その存在感を日増しに高めています。
そして7月にリリースされたCilium 1.12ではサイドカーパターンを用いずにサービスメッシュの構築が可能になりました。ちなみにCiliumではこれを「サイドカーフリー」(Sidecar-free)と呼んでいます。下記の図の左下がそれです。
Ciliumでも高度な機能を利用したい場合にはサイドカーパターンを用いることになっていますが、シンプルなトラフィックコントロールやオブザーバビリティであればサイドカーフリーで簡単に導入できるようになりました。
サイドカーパターンを不要にする仕組みはサービスメッシュの分野においてゲームチェンジャーになりそうな可能性を十分に秘めていると言えるでしょう。
Istioと比べればCiliumは知名度も実績もまだまだと言えますが、Istioはこの仕組みで先行するCiliumを大いに意識して、今回のAmbient Meshの発表を行ったのかもしれません。