Buoyant / CNCF Graduated 2021 のサービスメッシュ。Rust 製超軽量プロキシ + シンプル設定 + ゼロトラストセキュリティ、Istio 競合で軽量性 + 運用容易性で 2020 年代に普及。
Linkerd(リンカード)は、Buoyant Inc.(2015 年シリコンバレー創業、William Morgan / Oliver Gould 共同創業)が 2016 年 2 月に公開、後年 CNCF Graduated(2021 年昇格、初のサービスメッシュ CNCF Graduated)プロジェクトとなった Kubernetes ベースサービスメッシュです。「Linkerd」の名称は「Linker D」の合成で、サービス間の D = データプレーン リンカー(Linker)を表現しています。
開発の背景は、(1)William Morgan + Oliver Gould が Twitter Finagle(Twitter 内部のサービスメッシュフレームワーク)の開発経験を活かし、Kubernetes ベースの汎用サービスメッシュとして Linkerd を 2015 年に着想・(2)Linkerd 1.x(2016 年 2 月公開、Scala + Java + Twitter Finagle ベース、JVM 重い)が初のクラウドネイティブサービスメッシュ・(3)Istio(Google + IBM + Lyft、2017 年公開)+ Envoy ベースのメッシュが急速にシェア獲得・(4)Buoyant が 2018 年に Rust + Go で Linkerd 2.x として完全リライト + 超軽量化・(5)2021 年 CNCF Graduated 昇格(初のサービスメッシュ Graduated)、というパスでした。
技術仕様は、(1)実装言語: linkerd2-proxy(Rust)+ Control Plane(Go)、Apache 2.0 ライセンス・(2)アーキテクチャ: サイドカープロキシ(linkerd2-proxy、Pod 単位でデプロイ)+ Control Plane(Identity / Destination / Proxy Injector / Linkerd Service Mirror)・(3)プロトコル: HTTP/1.1 / 2 / gRPC / TCP・(4)機能: L7 ロードバランサ + サーキットブレーカー + リトライ + タイムアウト + mTLS 自動暗号化 + 観測性 + Tap(リアルタイムトレース)・(5)プロキシメモリ: 10-50MB(Envoy の 1/3-1/5)、です。
Linkerd 2.x の最大の特徴は、(1)「軽量性 + 運用容易性 + ゼロトラストセキュリティ」を差別化した実装・(2)Rust 製超軽量プロキシ「linkerd2-proxy」(Envoy 競合、メモリ 10-50MB、Envoy の 1/3-1/5)・(3)シンプル設定(YAML 数十行で完結、Istio の数百-数千行と対比)・(4)mTLS 自動暗号化(ゼロトラスト、設定不要で全サービス間通信が自動暗号化)・(5)Tap(リアルタイム HTTP トレース、linkerd tap deploy/myapp で即時)、で運用容易性を最優先した設計です。
Istio との比較で Linkerd の利点は、(1)Rust 製超軽量プロキシ(Envoy より高速 + 省メモリ)・(2)シンプル設定(設定ファイル数十行 vs Istio の数百-数千行)・(3)CRD 数 10 個程度(Istio は 50+ CRD)・(4)mTLS 自動 + デフォルトゼロトラスト、Istio の利点は、(1)機能豊富(Envoy + WASM フィルタ + 100+ 機能)・(2)エコシステム + コミュニティ規模 + ベンダーサポート、というトレードオフです。
主な採用は、(1)Buoyant Cloud(SaaS、Linkerd マネージドサービス)・(2)Buoyant Enterprise(オンプレ + サポート)・(3)自前ホスティング(Apache 2.0 ライセンス、無料、Helm Chart 1 コマンドデプロイ)・(4)Microsoft / Salesforce / Adidas / H-E-B(米スーパーマーケット)/ ProgrammingHero / Wrike(SaaS)等の大企業 + スタートアップ・(5)Kubernetes 環境全般、です。
CNCF Graduated 昇格(2021、初のサービスメッシュ Graduated)により、本番運用 + エンタプライズ採用 + 長期サポートが保証されており、Istio 競合として 2020-2026 年に着実に普及拡大、特に運用負荷低減 + シンプル要件のエンタプライズで採用が広がっています。
| Service Mesh | プロキシ | メモリ | 設定容易性 |
|---|---|---|---|
| Linkerd 2.x | linkerd2-proxy(Rust) | 10-50MB | 高 |
| Istio | Envoy(C++) |
| 50-150MB |
| 低(複雑) |
| Cilium Service Mesh | Cilium(eBPF) | 数 MB(eBPF) | 中 |
| Consul Service Mesh | Envoy(C++) | 50-150MB | 中 |
| AWS App Mesh | Envoy(C++) | 50-150MB | 中(AWS 統合) |
| Anthos Service Mesh | Envoy(Istio フォーク) | 50-150MB | 中(GCP 統合) |
Linkerd は通常のコンシューマ自作 PC で必要になる技術ではありませんが、ホビーホームラボ + 自宅 Kubernetes 環境 + マイクロサービス開発の上級者には極めて有用です。linkerd install | kubectl apply -f -(無料)で自宅 Kubernetes クラスタに 1 コマンドデプロイ可能、Helm Chart も提供されています。
シンプル設定 + Tap によるリアルタイム HTTP トレース + mTLS 自動暗号化で、Service Mesh の概念 + 運用を低い学習コストで習得できます。linkerd dashboard で Web UI 表示、linkerd tap deploy/myapp でアプリのリアルタイムトラフィック監視も可能で、業務 Kubernetes + マイクロサービス + Service Mesh + 観測性スキルの習得に直接役立ちます。
Istio と比較して、(1)学習曲線が緩やか・(2)設定 + 運用が容易・(3)リソース消費が少ない、ため、Service Mesh 入門 + 中規模本番運用には Linkerd が推奨されることが多いです。
Q1: Linkerd と Istio どちらを選ぶべきですか? A: シンプル + 軽量 + 運用容易 + ゼロトラスト → Linkerd、機能豊富 + Envoy WASM 拡張 + エンタプライズ + ベンダーサポート → Istio です。中小規模 + シンプル要件では Linkerd、大企業 + 複雑要件 + 既存 Envoy エコシステム活用なら Istio が適しています。
Q2: Rust 製プロキシの利点は? A: メモリ安全性 + 高パフォーマンス + 低リソース消費(10-50MB、Envoy の 1/3-1/5)です。サイドカープロキシは数百-数千の Pod に同時デプロイされるため、メモリ消費削減が運用コスト + クラスタリソース節約に直接つながります。
Q3: 自宅で Linkerd を試す方法は?
A: curl -fsL https://run.linkerd.io/install | sh で CLI インストール後、linkerd check(前提条件確認)+ linkerd install | kubectl apply -f -(クラスタにデプロイ)で簡単起動。linkerd dashboard で Web UI、linkerd tap deploy/myapp でリアルタイムトラフィック監視できます。学習用デモアプリ「emojivoto」も提供されており、業務級 Service Mesh 学習が容易です。