Skip to content

Aeraki Mesh

Dubbo・Thrift・Kafka など HTTP 以外の L7 (Layer-7) プロトコルをサービスメッシュで扱えるよう、Istio を拡張するコントロールプレーン。

  • カテゴリ: Service Mesh & Networking
  • CNCF 成熟度: Sandbox
  • 言語: Go
  • ライセンス: Apache-2.0
  • リポジトリ: aeraki-mesh/aeraki
  • ドキュメント基準コミット: 56e4de0 (master, 2025-05-12)

何をするものか

Aeraki Mesh は、既存の Istio メッシュに L7 (Layer-7。Dubbo・Thrift・Kafka などのプロトコルが属する OSI アプリケーション層) のトラフィック管理を足すコントロールプレーンです。Istio をはじめ多くのメッシュは HTTP と gRPC はよく扱えますが、それ以外の L7 プロトコルへの対応は非常に限定的で、Dubbo や Thrift の呼び出しはプロトコル対応のルーティングを受けられません (README.md:49)。Aeraki は Istio や Envoy をフォークせずにこの隙間を埋めます。

Aeraki は自前のデータプレーンを持ちません。Istiod の隣で動き、Istio の設定を MCP over xDS (Mesh Configuration Protocol over xDS。Istiod が設定リソースを配信する xDS ベースのストリーム) で監視し、宣言的なルールを Istio の EnvoyFilter リソースへ翻訳して Envoy サイドカーを再設定します (README.md:71)。併設の MetaProtocol Proxy 上に構築されたプロトコルに対しては、RDS (Route Discovery Service) サーバとしても振る舞い、接続を切らずに実行時のルート変更を可能にします。

想定利用者は、すでに Istio を運用していて、Istio がネイティブにルーティングできない RPC (remote procedure call)・メッセージング・データベースのプロトコルを使っており、かつプロトコルごとに EnvoyFilter パッチを手書きしたくないチームです。

いつ使うか

  • Istio を運用していて、Dubbo・Thrift・Kafka・Redis・Zookeeper や独自 RPC プロトコルのプロトコル対応ルーティングが必要なとき。
  • 非 HTTP プロトコルで、稼働中の接続を切らずに動的なルート更新をしたいとき。Istio のインラインルートではこれができない (README.md:50)。
  • 独自プロトコルがあり、Envoy filter とコントロールプレーンをフルに書く代わりに MetaProtocol codec を実装できるとき。
  • トラフィックが HTTP と gRPC だけなら不要。素の Istio で足りる。
  • Istio を使っていないなら不要。Aeraki は Istiod と Envoy に依存する。

このディープダイブの構成

出典

  1. aeraki-mesh/aeraki リポジトリと README
  2. CNCF プロジェクトページ: Aeraki Mesh
  3. Aeraki Mesh が CNCF Sandbox 入り (作者ブログ, 2022-06-17)
  4. Aeraki 紹介 (作者ブログ, 2021-09-27)
  5. IstioCon 2022: Tencent Music の Istio + Aeraki 実践
  6. IstioCon 2022 と Tencent Music (作者ブログ, 2022-04-26)
  7. Aeraki Mesh インストールガイド (v1.x)
  8. Aeraki Mesh クイックスタート (v1.x)
  9. データプレーン: aeraki-mesh/meta-protocol-proxy
  10. 採用事例収集 issue #105
  11. Aeraki Mesh プロジェクトサイト
  12. CNCF Landscape: Aeraki Mesh