【しりうむ】

Cilium(シリウム) とは?

💡 eBPFの力でKubernetesのネットワークを「神経系」レベルで制御
📌 このページのポイント
Cilium:eBPFベースのKubernetesネットワーク Kubernetes クラスタ Pod A Frontend Pod B API Server Pod C Database GET /api SQL query Cilium(eBPF データプレーン) L3/L4/L7 ポリシー適用 | ロードバランシング | 暗号化 従来:iptables ルール数増加で性能劣化 Cilium:eBPF カーネル内で高速処理 Hubble Service Mesh
CiliumによるKubernetesネットワークの構成
ひよこ ひよこ

Ciliumって何?シリウムって読むの?

ペンギン先生 ペンギン先生

そうだよ。Ciliumは生物学の「繊毛」が名前の由来で、Kubernetesネットワークをきめ細かく制御するツールなんだ。最大の特徴はeBPFという技術を使ってカーネルレベルで超高速にパケットを処理できることだよ

ひよこ ひよこ

従来のKubernetesネットワークと何が違うの?

ペンギン先生 ペンギン先生

従来はiptablesというルールテーブルでパケットを処理してたんだけど、Podが増えるとルール数が爆発して遅くなる問題があったんだ。Ciliumはiptablesを使わずeBPFカーネル内で直接処理するから、大規模環境でも速度が落ちにくいんだよ

ひよこ ひよこ

速いだけじゃなくてセキュリティにもいいの?

ペンギン先生 ペンギン先生

そこがCiliumの真骨頂だね。普通のネットワークポリシーはIPアドレスポート番号でしか制御できないけど、CiliumはHTTPのパスやメソッドgRPCのサービス名まで見てポリシーを適用できるんだ。「このPodからはGETリクエストだけ許可」みたいな細かい制御ができるよ

ひよこ ひよこ

すごい!他にも機能はあるの?

ペンギン先生 ペンギン先生

Hubbleという可視化ツールが組み込まれていて、どのPodがどのPodと通信しているかをリアルタイムで見られるんだ。マイクロサービスの通信フローが一目瞭然になるから、障害調査にもめちゃくちゃ便利だよ。2022年にはCNCFのGraduatedプロジェクトになって、KubernetesデフォルトCNIとして採用する企業も増えているね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Cilium」って出てきたら「eBPFベースのKubernetes用高速ネットワークツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Cilium」 = 繊毛(せんもう)
💬 生物学の「繊毛(cilia)」が由来。細胞の表面にある細かい毛のように、きめ細かくネットワークを制御するイメージだよ
← 用語集にもどる