MENU

Istioとは?Service Meshの本命の今を読み解く

Istio アイキャッチ
Istio

IstioはKubernetes上にService Meshを実装するためのオープンソースプラットフォームで、2017年5月にGoogle、IBM、Lyftが共同で発表した。マイクロサービス間の通信を制御するためにEnvoyをサイドカーとして注入し、トラフィック制御、観測、認可、暗号化を統合的に提供する。本稿ではIstioの構造、登場時の事情、典型ユースケース、LinkerdやCiliumなど競合との違いを順を追って整理する。

目次

この記事の目次

  1. Istioの構成要素
  2. 2017年、三社連合の船出
  3. 本番投入で重宝される使い方
  4. Linkerd・Cilium Service Meshとの比較
  5. まとめ

Istioの構成要素

Istioの構成要素

Istioはデータプレーンとコントロールプレーンの二層からなる。データプレーンはLyftが開発したEnvoyプロキシで、Podごとにサイドカーとして注入される(または2023年に正式化したambient modeでL4は共有Ztunnelに集約される)。Envoyが全L7通信を中継し、ルーティング、リトライ、サーキットブレーカ、レート制御、認可判定などを行う。

コントロールプレーンはかつてPilot/Citadel/Galleyに分かれていたが、2020年のIstio 1.5で「istiod」として統合され大幅に簡素化された。VirtualService、DestinationRule、Gateway、AuthorizationPolicyなどKubernetes CRDで宣言を行うと、istiodがEnvoyに動的設定(xDS)として配布する。証明書はSPIFFE互換のIDで配布され、サービス間のmTLSが標準で有効になる。

2017年、三社連合の船出

2017年、三社連合の船出

2017年5月、Google CloudのGoogle Cloud Next、IBM Interconnect、LyftのEnvoyConが連動する形でIstioが発表された。Googleは社内Service Meshの知見、IBMはAmalgam8の経験、LyftはEnvoyを持ち寄り、三者連合という珍しい体制で始まった。Louis Ryan、Lin Sun、Matt Klein(Envoyの父)といった人物が初期の議論を主導した。

2018年7月に1.0 GAとなりエンタープライズ採用が進む一方、長らくCNCF入りを果たさず独自Foundationで運営されたため、コミュニティとの距離が議論を呼んだ。2022年9月にCNCFのインキュベーションプロジェクトとして合流、2023年7月にはサイドカー不要のambient meshが正式採用され、運用負荷とリソース消費を大幅に下げる選択肢が生まれた。同年Open Source Summitでの議論ではLinkerdとの設計差が改めて注目を集めた。

本番投入で重宝される使い方

本番投入で重宝される使い方

本番で評価されるのは、まずサービス間のmTLSが自動で有効になり、開発者が証明書を意識せずゼロトラスト寄りの構成を作れる点だ。VirtualServiceの重み付けでカナリアリリースを実装する手法は標準化されており、Argo Rolloutsとの統合も整っている。Rate LimitingやTimeout、Retry設定もポリシーで宣言できる。

観測面ではEnvoyが各リクエストのレイテンシ、ステータスコード、サイズを記録し、Prometheus + Grafana + Jaegerの組み合わせで「Golden Signals」を即座に可視化できる。AuthorizationPolicyを使うと、たとえば「frontend名前空間からだけpaymentサービスに到達できる」といったL7アクセス制御がYAMLで宣言可能となり、内部ファイアウォールとして機能する。eBay、Salesforce、Airbnbなどの大規模事例が公開されている。

Linkerd・Cilium Service Meshとの比較

Linkerd・Cilium Service Meshとの比較

LinkerdはBuoyant社が開発するService Meshで、独自プロキシをRustで書き直したことで軽量・低レイテンシを実現している。設定の簡潔さと学習コストの低さが評価され、CNCF Graduatedとして堅実な地位を保つ。Cilium Service MeshはeBPFをデータプレーンに使い、サイドカー不要を最初から打ち出してネットワーク層から再考した。

Istioは機能が最も網羅的だが、その分覚えるCRDも多く、運用には専任チームが必要となる場面が多い。Linkerdは「シンプルさを最優先」、Ciliumは「ネットワーク層に取り込み高速化」というそれぞれの哲学があり、案件のサービス数、性能要求、運用チーム規模で選び分けるのが妥当だ。Istio側もambient meshで軽量化と運用性の改善を進めている。

まとめ

Istioはマイクロサービスの通信問題に総合的な解を与え、Service Meshという概念を一般化させた立役者と言える。学習コストは小さくないが、mTLSや観測、認可をアプリから切り離せる効果は大きい。ambient meshの登場で運用負荷も下がりつつあり、組織の規模と要件に合った形で取り入れる価値は十分にある選択肢だ。

※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次