Mirantis Kubernetes EngineでCiliumが使える!
#Cilium #CNI #Kubernetes #Mirantis
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
本稿は2022年3月23日公開のMirantisブログ「Cilium now integrates with Mirantis Kubernetes Engine」を翻訳・編集したものです。
Mirantis Kubernetes Engine(MKE/旧Docker Enterprise)とCiliumが統合され、今後はクラウドネイティブなインフラストラクチャのコンテナネットワークインターフェース(CNI)プラグインとして強力な選択肢を提供できるようになりました。
Mirantis Kubernetes Engine クラスタにデプロイされるアプリケーションやサービスの数が増えるにつれて、お客様からCNIの実装や構成のサポートについての更なる選択肢に対応するCNIの実装や構成のサポートを求める声が上がってきました。Mirantis は Cilium の生みの親である Isovalent 社との協働を経て、AWS・Google・GitLab・Bell など多くの企業で利用され、業界をリードするオープンソースソリューションである Cilium と統合できたことを誇りに思います。現在CiliumはCloud Native Computing Foundation (CNCF)のIncubating Projectです。
CNIとは
コンテナネットワークインターフェース(CNI)とは一体何でしょうか。そしてなぜそれがKubernetes ユーザにとって重要なのでしょうか。
Kubernetes のネットワーク、つまり Kubernetes 環境におけるコンテナネットワークは、今のところ普遍的に正しいソリューションが存在しない発展途上の分野です。その代わり様々なアプローチがあり、そのどれもが特定のユースケースにおいて最適である可能性があります。そのため CNCF が支援するオープンソースプロジェクトである Container Networking Interface Project では、ネットワークプラグインの仕様を定めています。
これによりプラグイン制作者は標準化された方法で問題なく動くソリューションを構築でき、ユーザは自らのニーズに最適なCNIプラグインの選択が可能です。
Ciliumがどのようにしてスケーラビリティを向上させるのか
Ciliumは、コンテナネットワークの主要なテクノロジーであるExtended Berkeley Packet Filter(eBPF)を用いるCNIプラグインです。CiliumはeBPFを使用して、Linuxのカーネルレベルでネットワーク制御ロジックを動的に埋め込みます。カーネルレベルで eBPF が動作することにより、Cilium のエージェントが各クラスタノード上で Pod のように動作します。これにより個々のコンテナやアプリケーションの設定に変更を加えることなく、クラスタスタック全体で Cilium の機能を活用できます。このことがなぜ重要なのでしょうか?Cilium の機能は、Kubernetes クラスタの運用をスケールアップさせるためのものです。ロードバランシング向けの kube-proxy を置き換えることで、サービス数を増やした際に、クラスタ内の状態が収束する時間を短縮します。
Cilium はスピードに加え、クラスタ全体のネットワークセキュリティをカバーし、マルチクラスタルーティングを可能にすることで、通信量・クラウドセキュリティ、柔軟性を高めます。
Mirantis Kubernetes Engine で Cilium が使える
Isovalent社との協働により、Mirantis Kubernetes Engine は kube-proxyを有効化せずにデプロイできることが確認できました。この変更は、クラスタの作成前後に関わらず適用を設定できます。またこの設定を有効にした際、kube-proxy -cleanup コマンドを実行すればkube-proxy によって設定されたすべての iptables ルールが削除されることを確認しました。
Mirantis Kubernetes Engine ユーザは、Kube Proxy Replacement モードでCilium をいつでもデプロイできるようになりました。これにより kube-proxy が通常提供する内部ロードバランシングを eBPF で処理できるようになり、カーネルレベルでのネットワーク制御が利用可能になりました。さらに良いことには、Cilium は Kubernetes 上で展開するため、コンテナランタイムから CNI プラグインまで、ユーザがニーズに合わせて選択可能です。そしてこれは Mirantis 社の理念にも合致しています。
Cilium の実装に関する技術的な詳細を知りたい人は、Ciliumの入門書をご参照ください。Mirantis Kubernetes Engine を初めて利用する人は次をご参照ください。
- Mirantis Kubernetes EngineとMirantis Secure RegistryをLaunchpadでVirtualbox/Vagrantにインストールしてみよう
- 無料トライアルについて(英語)
Mirantis製品に関するお問い合わせはこちら。