MENU

Cilium — eBPFで描く高速なKubernetesネットワーク

Cilium アイキャッチ
Cilium

Ciliumは2017年に登場したOSSのCNI実装で、Linuxカーネル機能のeBPFを徹底活用してKubernetesのネットワーク・セキュリティ・ロードバランシングを一括で担います。開発元はIsovalent社で、創業者であるトーマス・グラフ氏は元Red Hatのカーネルネットワーキングエンジニアです。iptablesによる従来のService振り分けやネットワークポリシー実装に伴う遅延・スケーラビリティ限界を、カーネルに直接ロードする小さなプログラムで置き換えるのが基本コンセプトで、2021年10月にCNCFのインキュベーション、2023年10月にはGraduatedプロジェクトに昇格しました。

目次

この記事の目次

  1. Ciliumを支える3つの柱
  2. Isovalent創業からCNCF卒業までの歩み
  3. 導入時に確認しておく要素
  4. Calico・Flannelとの違い
  5. まとめ

Ciliumを支える3つの柱

Ciliumを支える3つの柱

Ciliumの世界は3つのサブプロジェクトで描かれます。1つ目はCilium本体で、CNIプラグインとしてPod間通信のルーティング、ネットワークポリシー実装、kube-proxy相当のServiceロードバランシングを担います。全てeBPFプログラムをLinuxカーネルにロードして実現するため、iptablesのルール数に縛られず大規模クラスタでも安定した性能を発揮します。

2つ目のHubbleはCiliumと組み合わせて使うネットワーク観測ツールで、Pod間の通信フローを「どのアプリからどのアプリへ、どんなHTTPリクエストが流れたか」レベルで可視化します。L7プロトコル(HTTP・gRPC・Kafka・DNS)まで分解して見られるため、マイクロサービス間の依存関係調査やインシデント解析で重宝します。3つ目のTetragonはeBPFを使ったランタイムセキュリティで、プロセス起動・ファイルアクセス・ネットワーク接続の挙動をカーネル側から監視・遮断します。これら3つを束ねてCiliumエコシステムを形成しています。

Isovalent創業からCNCF卒業までの歩み

Isovalent創業からCNCF卒業までの歩み

Ciliumのコードベースは2016年から開発が始まり、2017年に最初のリリースが公開されました。中心人物はトーマス・グラフ氏で、Red Hat時代からLinuxカーネルのネットワーキング領域に深く関わっており、iptablesではない次世代の方式を模索した結果がCiliumに結実しました。2020年にIsovalent社(米サンノゼ)が設立され、Ciliumを商用サポート付きで提供するビジネスが始まります。

2021年10月にCNCFインキュベーションプロジェクトに採択され、2022年にはGoogle CloudのGKE Dataplane V2がCilium採用を公式に発表しました。AWSのEKS Anywhereや、Microsoft Azure Kubernetes Service(AKS)のAdvanced Container Networking Services(Ciliumベース)など、クラウド大手の取り込みが一気に進みます。2023年10月にはCNCFのGraduatedプロジェクトに昇格し、2024年にはCiscoがIsovalent社を買収して開発体制がさらに強固になりました。オープンソースとして見ても近年最も勢いのあるネットワーク基盤の1つです。

導入時に確認しておく要素

導入時に確認しておく要素

Ciliumを使うにはLinuxカーネルのバージョンに気を配る必要があり、基本機能でも4.19以上、最新機能を活用するなら5.10以上が推奨されます。古い社内環境ではOSアップグレードと併走させるのが現実的です。kube-proxyレス構成(kube-proxyを無効化し、Service振り分けまでeBPFで完結させるモード)を選ぶとiptablesのオーバーヘッドを完全に排除できますが、運用知見が変わるため事前検証が欠かせません。

Hubble UIをデプロイすると、Pod間のフローがリアルタイムでグラフ表示され、初学者でも依存関係を把握しやすくなります。複数クラスタを束ねたい場合はClusterMesh機能で、別クラスタのService発見や通信暗号化(WireGuard・IPsec)を有効化できます。L7レベルのネットワークポリシーも特徴で、HTTPメソッドやURLパス単位で許可・拒否を宣言できるため、「フロントエンドからのGET /api/orders のみ許可」といった細やかな統制が、サービスメッシュなしで実現できます。本番導入前にはこうした目玉機能を1つずつ試して、運用チームの理解を揃えておくのが定石です。

Calico・Flannelとの違い

Calico・Flannelとの違い

CNI市場には長らくFlannel・Calico・WeaveといったプロダクトがあるなかでCiliumは後発でした。Flannelは2014年にCoreOS(当時)が公開した最も素朴なCNIで、VXLANオーバーレイでPod間通信を確立しますが、ネットワークポリシーは別途Calicoを併用する構成が一般的でした。Calicoは同じく2014年にTigera社(当時の親会社はMetaswitch Networks)が始めたプロジェクトで、BGPによるルート広報で広域なネットワーク統合が可能、というIPルーティング寄りの世界観を持ちます。

Ciliumはこれらとは方向性が異なり、「カーネルにeBPFを書き込んで全部やる」アプローチで、L4だけでなくL7まで踏み込んだポリシーや、kube-proxyを置き換える機能までCNI側に統合した点が新しい価値でした。現実にはCalico自身もeBPFモードを実装してCiliumに追従しており、競合かつ刺激し合う関係です。選定の指針は「eBPFをフル活用したい・観測性に投資したい→Cilium」「シンプルなオーバーレイで十分→Flannel」「BGPで物理ネットワークと統合したい→Calico」といった整理になります。

まとめ

Ciliumは2017年に登場したeBPFベースのCNI実装で、Isovalent社が中心となって開発し2023年にCNCFを卒業しました。ネットワーク・観測性・セキュリティをHubbleやTetragonと組み合わせて束ねて提供し、kube-proxy代替まで一手に担えます。Calico・Flannelと棲み分けながら、大規模Kubernetes環境の標準ネットワーク基盤として急速に普及している存在です。

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

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

この記事を書いた人

コメント

コメントする

目次