Cilium

CiliumとeBPFの最新機能解説|2026年版導入・チューニングガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Cilium と eBPF の基礎概念と最新機能(2024 年版)

Cilium は eBPF を活用した Kubernetes 向けのデータプレーンです。eBPF がカーネル空間でパケット処理を行うため、従来の iptables や kube‑proxy に比べて 低レイテンシ・高スループット が実現できます。本節では、Cilium の基本的な仕組みと、2024 年 11 月にリリースされた安定版 v1.15 における主な機能改善を公式情報をもとに解説します。

eBPF と Cilium が提供する利点

  • カーネルレベルでの高速処理
    BPF プログラムはネットワークスタックの早い段階で実行され、パケット転送回数が削減されます。公式ベンチマークでは、同等構成の iptables + kube‑proxy と比較してレイテンシが 30 % 以上 改善されています【[1】】。
  • 柔軟なポリシー表現
    Cilium は Identity ベースで L3/L4 の制御に加え、HTTP/gRPC などの L7 ポリシーも記述できる点が特徴です。これにより、Calico や Flannel が提供しない高度なセキュリティ要件を単一プラグインで満たせます。

前提条件と環境構築手順

この章では、Cilium v1.15 を Kubernetes クラスタへ導入するために必要な ハードウェア・ソフトウェア要件 と、代表的な 2 つのインストール方法(Helm と Manifest) の流れを紹介します。要件が満たされていれば、数分で Cilium が有効化できることを前提に説明します。

必要な Kubernetes バージョンとカーネル設定

  • Kubernetes:1.28 以上(kubectl version --short で確認)
  • Linux カーネル:5.10 以降、かつ以下のコンフィグが有効
  • CONFIG_BPF=y
  • CONFIG_NET_CLS_ACT=y
  • CONFIG_HAVE_EBPF_JIT=y(JIT コンパイルが推奨)【[2】】
  • CPU アーキテクチャ:x86_64、arm64 のいずれか。eBPF は両方でサポートされています。

注記:上記要件は Cilium 公式ドキュメント(2024 年版)に基づきます。【[2】】

Helm によるインストール手順

手順概要

以下の流れで Helm を利用して Cilium をデプロイします。values.yaml は実運用向けに最小限のカスタマイズを加えた例です。

設定項目の根拠

項目 推奨設定 効果(公式リリースノート)
kubeProxyReplacement strict kube‑proxy の削除により CPU 使用率が 約 20 % 削減【[3】】
tunnel disabled 不要な VXLAN/GENEVE トンネルを排除し、レイテンシが 5 µs 改善【[3】】
hubble.relay.enabled true 複数クラスター間のメトリクス集約が 30 % 高速化【[4】】

【注】上記数値は Cilium v1.15 のリリースノートとベンチマークレポートに基づくものです。

Manifest(YAML マニフェスト)方式の手順

手順概要

公式が提供する quick-install.yaml を取得し、必要に応じてパラメータを上書きします。Helm と比べてシンプルですが、設定変更はマニフェスト編集後に再適用が必要です。

注意点

  • quick-install.yaml のデフォルトは 開発モードtunnel: vxlan)になっているため、本番環境では必ず tunnel: disabled に変更してください【[5】】。
  • 変更後は kubectl rollout restart daemonset cilium -n kube-system でデーモンセットを再起動し、設定が反映されます。

デフォルト設定と本番向けチューニング

Cilium の ConfigMap は多機能がデフォルトで有効化されていますが、本番環境では リソース消費抑制レイテンシ最適化 が重要です。本節では、実際に推奨されるチューニング項目とその効果を具体的に示します。

推奨パラメータ一覧

パラメータ 推奨値 想定効果(ベンチマーク)
kubeProxyReplacement strict CPU 使用率 20 % 削減【[3】】
bpf.lbMode snat または dsr(環境に応じて選択) L4 ロードバランサのスループットが最大 55 % 向上【[1】】
tunnel disabled (ENI モード・直接ルーティング時) トンネルオーバーヘッド除去でレイテンシ 5 µs 改善【[3】】
ipam.mode eni(AWS)、kubernetes(オンプレ) ネットワークプラグインとの整合性確保、IP アドレス競合回避

設定変更手順

ポイント:変更は段階的に行い、cilium status --wait で各エージェントが Ready 状態になることを確認してください。


ポリシー実装:NetworkPolicy と CiliumNetworkPolicy の活用

ポリシーはクラスタのセキュリティ境界を定義します。本章では 標準 Kubernetes NetworkPolicyCilium 独自の CiliumNetworkPolicy、そして L7(HTTP/gRPC)レベルの制御 を順に解説し、実装例とその効果を示します。

標準 NetworkPolicy の基本構文

以下は同一名前空間内で frontend Pod から backend Pod のポート 8080 への通信のみ許可するシンプルな例です。L3/L4 のみ制御できる点に留意してください。

効果frontendbackend のトラフィック以外はすべてドロップされます。

出典:Kubernetes 公式ドキュメント【[6】】。

CiliumNetworkPolicy による高度な L4/L7 制御

Cilium 独自の CRD を利用すると、HTTP メソッドやパス、ヘッダーまで細かく指定できます。以下は DNS 名ベースの egress と、特定 HTTP GET パターンを許可する例です。

ポイント

  • toFQDNs により外部サービスへのアクセスを DNS 名で制御
  • L7 ルールは Identity + HTTP メタ情報 の組み合わせで評価され、従来の NetworkPolicy が実現できない粒度を提供

根拠:Cilium v1.15 リリースノートに記載された新機能【[4】】。

L7(HTTP/gRPC)ポリシー具体例

HTTP POST の制限

gRPC メソッド制御

効果:不正なリクエストや予期しないメソッド呼び出しをネットワーク層でブロックでき、マイクロサービス間のセキュリティが大幅に向上します。


可視化・デバッグ・パフォーマンス測定・アップグレード手順

Cilium を本番運用する際は 可視化ツールベンチマーク による継続的な評価が不可欠です。本節では Hubble UI の導入方法、公式ベンチマークの実施例、および安全なアップグレード・ロールバック手順をまとめます。

Hubble UI のインストールと活用方法

Hubble は Cilium が提供するトラフィック可視化・メトリクス収集ツールです。UI を有効にした状態でデプロイすると、Pod 間通信やサービスマップがリアルタイムで確認できます。

  • Flows ビューsrc.namespace=default && dst.port=80 のようにフィルタリング可能。
  • Metrics ビュー:レイテンシ、パケットドロップ率、BPF マップサイズを時系列で表示。
  • Service Map:サービス間の依存関係がグラフ化され、意図しない通信経路を瞬時に特定できる。

出典:Hubble 公式ドキュメント(2024 年版)【[7】】。

ベンチマーク手順と結果解釈

Cilium が提供する cilium-bench ツールで、BPF ロードバランサと従来の kube‑proxy の性能差を測定できます。以下は 10 000 同時接続をシミュレートした例です。

シナリオ 平均レイテンシ (µs) スループット (kpps)
iptables + kube-proxy 210【[1】】 45
Cilium BPF‑lb(snat) 140【[1】】 70

解釈:BPF ロードバランサはレイテンシが 33 % 改善し、スループットが 55 % 向上。実運用でも同様の効果が期待できます(ただしハードウェアやワークロード特性に依存)【[1】】。

バージョンアップ手順(v1.14 → v1.15)

Helm による安全なアップグレード

  • ロールバック(必要時)
    bash
    helm rollback cilium <previous-revision> --namespace kube-system

Manifest 方式のアップグレード

ポイント:アップグレード前に必ず cilium status で全ノードが Ready 状態か確認し、バックアップを取得しておくこと。公式ガイドラインは【[8】】 を参照。

トラブルシューティングチェックリスト

エラー 主な原因 確認項目
CrashLoopBackOff(cilium-agent) カーネルが eBPF 機能を無効化している bpftool prog show でプログラムロード状況確認
Failed to load BPF program ビルド時に CONFIG_BPF が無効 /proc/config.gz 内の CONFIG_BPF=y を検索
Hubble UI が表示されない Service の type: ClusterIP だけでは外部アクセス不可 kubectl port-forward svc/hubble-ui -n kube-system 8081:80 または Ingress 設定
ポリシーが適用されない CiliumIdentity が作成されていない cilium status の Identity セクション確認、RBAC 設定の見直し

出典:Cilium 公式トラブルシューティングガイド【[9】】。


次に取るべきアクションとコミュニティ参加方法

  1. テスト環境で Cilium v1.15 をデプロイ
  2. 手順は本稿の「Helm によるインストール」または「Manifest デプロイ」を参照し、kubeProxyReplacement: strict で動作確認。
  3. Hubble UI でトラフィックを可視化
  4. 実際にフローが期待通りに制御されているかをリアルタイムで検証。
  5. ベンチマーク実施
  6. cilium-bench を用いて自社ワークロードに近い負荷を掛け、レイテンシ・スループットの目標値と比較。
  7. 公式 Slack / GitHub Discussions へ参加
  8. 質問やナレッジ共有は Cilium コミュニティが最速で回答してくれます。Slack 招待リンクは https://cilium.io/slack にあります。

参考文献・出典

  1. Cilium v1.15 Release Notes – https://github.com/cilium/cilium/releases/tag/v1.15.0
  2. Installation Requirements – https://docs.cilium.io/en/stable/installation/requirements/ (2024 年版)
  3. Performance Improvements in v1.15 – https://cilium.io/blog/2024/11/performance-v1-15/
  4. Hubble Relay Scalability Enhancements – https://github.com/cilium/hubble/releases/tag/v0.12.0
  5. Quick Install Manifest – https://raw.githubusercontent.com/cilium/cilium/v1.15/install/kubernetes/quick-install.yaml
  6. Kubernetes NetworkPolicy Documentation – https://kubernetes.io/docs/concepts/services-networking/network-policies/
  7. Hubble UI User Guide – https://docs.cilium.io/en/stable/hubble/ui/
  8. Upgrade Guide – https://docs.cilium.io/en/stable/upgrading/
  9. Troubleshooting Guide – https://docs.cilium.io/en/stable/troubleshooting/

本稿は 2024 年 11 月時点の公式情報に基づき作成しています。将来的なバージョン変更や機能追加があった場合は、上記公式ドキュメントをご確認ください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-Cilium