AI

オープンソースサービスメッシュ比較:Istio vs Linkerd vs Cilium でKubernetesのマイクロサービスを管理する

オープンソースラボ編集部2026年6月13日

オープンソースサービスメッシュ比較:Istio vs Linkerd vs Cilium でKubernetesのマイクロサービスを管理する

Kubernetes上のマイクロサービスが増えるにつれ、サービス間通信のセキュリティ・可観測性・トラフィック管理が複雑化します。サービスメッシュはこれらをインフラレイヤーで解決し、アプリケーションコードの変更なしにmTLS・サーキットブレーカー・カナリアリリースを実現します。

サービスメッシュが解決する問題

マイクロサービス規模が10を超えると顕在化する問題:

  • サービス間通信の暗号化: 各サービスが独自にTLSを実装する手間
  • サービスディスカバリー: どのPodが健全かをリアルタイムで把握
  • カナリアリリース: 新バージョンへのトラフィックを徐々に移行
  • 分散トレーシング: 障害箇所の特定(どのサービスで遅延が発生しているか)
  • サーキットブレーカー: 障害の連鎖を防ぐ

主要ツールの概要

Istio

CNCF(Cloud Native Computing Foundation)のGraduatedプロジェクトで最も機能豊富なサービスメッシュです。Google・IBM・Lyftが共同開発し、エンタープライズ採用率が最も高いです。

# Istioのインストール
curl -L https://istio.io/downloadIstio | sh -
istioctl install --set profile=default -y

# NamespaceへのSidecar自動注入を有効化
kubectl label namespace default istio-injection=enabled

# VirtualServiceでカナリアリリース設定
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: my-service
spec:
  hosts:
  - my-service
  http:
  - match:
    - headers:
        canary:
          exact: "true"
    route:
    - destination:
        host: my-service
        subset: v2
  - route:
    - destination:
        host: my-service
        subset: v1
      weight: 90
    - destination:
        host: my-service
        subset: v2
      weight: 10
EOF

Linkerd

「最もシンプルで軽量なサービスメッシュ」を目指すCNCF Graduatedプロジェクトです。Rustで書かれたデータプレーン(linkerd2-proxy)により、Istioより大幅に低いメモリ・CPU消費を実現します。

# Linkerdのインストール
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -

# Deploymentへの注入
kubectl get deploy -o yaml | linkerd inject - | kubectl apply -f -

# トラフィック分割(SMI標準)
kubectl apply -f - <<EOF
apiVersion: split.smi-spec.io/v1alpha1
kind: TrafficSplit
metadata:
  name: my-split
spec:
  service: my-service
  backends:
  - service: my-service-v1
    weight: 900m
  - service: my-service-v2
    weight: 100m
EOF

Cilium

eBPFをベースにした次世代ネットワーキング・サービスメッシュです。カーネルレベルで動作するため、サイドカーコンテナが不要(Sidecarless)で最高のパフォーマンスを実現します。

# Cilium Service MeshのCNIとしてのインストール
helm repo add cilium https://helm.cilium.io/
helm install cilium cilium/cilium --version 1.16.0 \
  --namespace kube-system \
  --set kubeProxyReplacement=true \
  --set k8sServiceHost=API_SERVER_IP \
  --set k8sServicePort=API_SERVER_PORT

機能比較表

比較項目IstioLinkerdCilium
アーキテクチャEnvoyサイドカーRustサイドカーeBPF(Sidecarless)
mTLS(相互認証)
トラフィック分割✅ 高機能✅ SMI準拠
カナリアリリース
サーキットブレーカー⚠️ 限定
分散トレーシング✅ Jaeger/Zipkin
メトリクス✅ Prometheus✅ Prometheus✅ Prometheus
ダッシュボード✅ Kiali✅ Viz✅ Hubble
ネットワークポリシー✅ 高機能
Wasm拡張
メモリ消費(サイドカー)高い(~50MB)低い(~10MB)最小(不要)
学習コスト高い中程度中程度
CNCFステータスGraduatedGraduatedGraduated
ライセンスApache 2.0Apache 2.0Apache 2.0
GitHub Stars36k+10k+20k+

IstioとEnvoyの関係

Istioのデータプレーン(サイドカープロキシ)はEnvoyです。各PodにEnvoyコンテナが自動挿入され、すべての受発信トラフィックをプロキシします。IstioのコントロールプレーンIstiodがEnvoyへの設定(どのサービスにどうルーティングするか・mTLS設定等)を動的に配信します。

DevOps基盤・Kubernetes関連ツールはDevOpsカテゴリ(/categories/devops)で一覧でき、ネットワークセキュリティ関連はセキュリティカテゴリ(/categories/security)でも探せます。

FAQ

Q. サービスメッシュは必ずしも必要ですか?

A. Kubernetesのサービス数が10未満なら、まずはKubernetesのネイティブなネットワークポリシー(NetworkPolicy)とService Accountで対応を検討してください。サービス数が増え、mTLS・カナリアリリース・分散トレーシングが必要になった段階でサービスメッシュを導入するのが適切です。過早に導入すると運用複雑性が増します。

Q. IstioとLinkerdのどちらを選べばいいですか?

A. 豊富な機能(Wasm拡張・高度なトラフィック制御・WebAssembly拡張)が必要な大企業ならIstio。シンプル・軽量・低リソース消費を重視するスタートアップや中規模チームならLinkerdが向いています。Linkerdの方が初期セットアップが2〜3倍速く、ドキュメントもシンプルです。

Q. CiliumはサービスメッシュとCNIの両方として使えますか?

A. はい。CiliumはKubernetes CNI(ネットワークプラグイン)として動作しながら、Cilium Service Meshとしてサービスメッシュ機能も提供します。EKS・GKEなど多くのマネージドKubernetesサービスでCiliumをCNIとして使えます。eBPFベースなのでサイドカーコンテナが不要で、最も低いオーバーヘッドを実現します。

Q. サービスメッシュを導入するとパフォーマンスに影響しますか?

A. サイドカー型(Istio・Linkerd)は1リクエストにつき2回のL7プロキシ通過が発生し、レイテンシが数ミリ秒増加します。ベンチマークではIstioが約5ms、Linkerdが約1ms増加します。Ciliumはカーネルレベルで動作するためオーバーヘッドが最小(〜0.1ms)です。高スループットAPIではCiliumが最適です。

Q. Istioのダッシュボード(Kiali)を使うにはどうすればいいですか?

A. kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.22/samples/addons/kiali.yaml でKialiをデプロイし、istioctl dashboard kiali でローカルポートフォワードして確認できます。サービスマップ・トラフィックフロー・エラーレートのリアルタイム可視化が確認できます。

まとめ

ユースケース推奨ツール
エンタープライズ・フル機能Istio
軽量・シンプル・低メモリLinkerd
CNI統合・最高性能Cilium
Wasm拡張が必要Istio

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。