Cilium とは?

Cilium

Cilium最新情報

NRIのOpenStandiaが提供するCilium最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Ciliumバージョンアップ情報

すべてを見る

更新日:2023-03-22

Ciliumの概要

Ciliumは、カーネル技術eBPFを利用した、コンテナワークロード間のネットワーク接続を提供、保護、監視するためのオープンソースソフトウェアで、クラウドネイティブです。

また、Ciliumは2021年10月13日にCloud Native Computing Foundation(CNCF)に参加し、Incubating projectとして認定されています。

TOPに戻る

Ciliumの主な特徴

Ciliumには次のような特徴があります。

  • eBPFとXDPを活用した堅牢なロードバランシング
  • 高度なコントロールプレーンにより大規模なKubernetesクラスターで動作
  • 複数クラスターにまたがるゾーンを使用したシンプルなクラスター間接続を実現
  • Hubbleフレームワークを使用したコンテキストやプロトコルの可視化
  • IPsec機能を使用した透過的な暗号化
  • IDを認識したログとコンテキストによる長期的なフォレンジック調査が可能

TOPに戻る

Ciliumの主な機能

APIの透過的な保護 CiliumはREST/HTTP、gRPC、Kafkaなどの最新のアプリケーションプロトコルを保護します。
従来のファイアウォールはネットワーク層やトランスポート層で動作し、特定のポートで実行されるプロトコルに対し、全て信頼するか全てブロックするのどちらかを行います。
それに対し、Ciliumは個々のアプリケーションプロトコルリクエスト毎に許可/拒否を行うことができます。
IDに基づいたセキュアなサービス間通信 現代の分散型アプリケーションは、アプリケーションコンテナのような技術に依存しており、短時間に大量のコンテナが起動します。
そのため、送信元IPアドレスと送信先ポートをフィルタリングする従来のファイアウォールでは、コンテナが起動するたびに全サーバ上のファイアウォールを操作する必要があり、アプリケーションの規模が制限されていました。
このような状況を回避するため、Ciliumは同一のセキュリティポリシーを共有するアプリケーションコンテナのグループにIDを割り当てます。このIDはアプリケーションコンテナから送信される全てのネットワークパケットに関連付けられ、受信ノードでIDの検証を行うことができます。
また、IDの管理はkey-value storeを通して行われます。
外部サービスとのセキュアな接続 ラベルベースのセキュリティは、クラスター内部のアクセス制御のために選択されたツールです。
外部サービスとのアクセスを保護するために、イングレスとエグレスの両方で従来のCIDRベースのセキュリティポリシーがサポートされています。これにより、アプリケーションコンテナへのアクセスやアプリケーションコンテナからのアクセスを特定のIP範囲に制限することができます。
シンプルなネットワーキング 複数のクラスターにまたがるレイヤー3ネットワークが全てのアプリケーションコンテナを接続します。IPの割り当てはホストのスコープアロケータを使用することで各ホストがホスト間の調整なしに行うことができるようになっています。
また、以下のマルチノードネットワーキングモデルがサポートされています。
  • オーバーレイ
    全てのホストにまたがるカプセル化ベースの仮想ネットワークでです。現在、VXLANとGeneveが組み込まれていますが、Linuxでサポートされている全てのカプセル化形式を有効にすることができます。
  • ネイティブルーティング
    Linuxホストの通常のルーティングテーブルを使用します。ネットワークにアプリケーションコンテナのIPアドレスをルーティングする機能が必要になります。
ロードバランサー Ciliumは、アプリケーションコンテナ間や外部サービスへのトラフィックの分散ロードバランシングを実装しており、kube-proxyのようなコンポーネントを完全に置き換えることが可能です。ロードバランサーは、効率的なハッシュテーブルを使用してeBPFに実装されており、ほぼ無制限に拡張することができます。
North-South型のロードバランシングの場合、CiliumのeBPF実装は最大のパフォーマンスを得るために最適化されており、XDP(eXpress Data Path)に接続でき、負荷分散のオペレーションがソースホスト上で行われない場合はDSR(Direct Server Return)およびMaglev consistent hashingもサポートします。
East-West型のロードバランシングでは、Ciliumは、Linux カーネルのソケット層でサービスからバックエンド変換を効率的に行い、下位層でのパケットごとのNAT操作のオーバーヘッドを回避できます。
帯域幅の管理 Cilium は、ノードから出るコンテナトラフィックに対して、eBPF による効率的な EDT(Earliest Departure Time) ベースのレート制限による帯域幅の管理を実装しています。これにより、例えば帯域幅CNIプラグインで使用されているHTB(Hierarchy Token Bucket)やTBF(Token Bucket Filter)などの従来のアプローチと比較して、アプリケーションの送信テール遅延を大幅に短縮し、マルチキューNICでのロックを回避することができます。
モニタリングとトラブルシューティング Ciliumでは問題をモニタリングし、トラブルシューティングするためのツールとして以下のようなツールを提供しています。
  • メタデータによるイベントモニタリング
    パケットがドロップされたとき、ツールはパケットの送信元と送信先のIPを報告するだけでなく、他の多くの情報の中で送信者と受信者の両方の完全なラベル情報を提供します
  • Prometheus経由のメトリックスエクスポート
    主要なメトリクスはPrometheus経由でエクスポートされ、既存のダッシュボードに統合することができます。
  • Hubble
    Cilium専用に開発された可観測性を実現するプラットフォームです。サービスの依存関係マップ、運用監視とアラート、フローログに基づくアプリケーションとセキュリティの可視化などを提供します。

TOPに戻る

Ciliumの動作環境

  • コンテナイメージを使用して Cilium を実行する場合
    Linux kernel:4.9.17以上
  • ホスト上で Cilium をネイティブ プロセスとして実行する場合(コンテナイメージを使用しない場合)
    clang+LLVM:10.0以上
    eBPF テンプレートパッチを適用したiproute2
  • Kubernetes なしで Cilium を実行する場合
    次の追加要件を満たす必要があります。
    • Key-Value store etcd:3.1.0以上
  • 各Linuxディストリビューションの互換性
    ディストリビューション 最小バージョン
    Amazon Linux 2 All
    Container-Optimized OS All
    CentOS 7.0以上
    Debian 9 Stretch以上
    Fedora Atomic/Core 25以上
    Flatcar All
    LinuxKit All
    RedHat Enterprise Linux 8.0以上
    Ubuntu Azure :16.04.1以上、Canonical:16.04.2以上、16.10以上
    Opensuse Leap 15.0以上、Tumbleweed
    RancherOS 1.5.5以上

高度な機能など詳細な要件につきましては以下をご参照ください。
https://docs.cilium.io/en/stable/operations/system_requirements/

TOPに戻る

Ciliumのライセンス

CiliumはApache License, Version2.0の下でリリースされているオープンソースソフトウェアです。 営利、非営利を問わず、だれでも自由かつ無償で利用・改変することができるほか、ライセンスのコピーの提供や変更内容の告知など、特定の条件を満たすことで再配布も認められています。

TOPに戻る

参考情報

Ciliumの公式サイト

TOPに戻る

Ciliumのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO