【しーえぬあい】

CNI(コンテナネットワークIF) とは?

公開:
💡 コンテナに網をつなぐ共通ルール!K8sネットワークの立役者
📌 このページのポイント
CNI(Container Network Interface)の仕組み コンテナ ランタイム ADD CNI プラグイン Flannel / Calico 設定 ネットワーク veth / bridge CNI プラグインが行うこと ① vethペア作成 コンテナ⇔ホスト ② IPアドレス付与 IPAM連携 ③ ルート設定 Pod間通信確保
CNI(コンテナネットワークインターフェース)のイメージ
ひよこ ひよこ
CNIって何のためにあるの?
ペンギン先生 ペンギン先生
コンテナIPアドレスを割り当てて、他のコンテナと通信できるようにするためのルールだよ。USBポートが共通規格でどのメーカーの機器もつながるように、CNIがあればどのネットワークプラグインでもKubernetesで使えるんだ
ひよこ ひよこ
プラグインって色々あるみたいだけど、何が違うのかな?
ペンギン先生 ペンギン先生
Flannelはシンプルなオーバーレイ型で導入が簡単、CalicoはBGPを使ったルーティング型で高性能、CiliumeBPFを使った最新世代で監視機能も充実しているよ。要件に応じて選ぶんだ
ひよこ ひよこ
CNIがないとコンテナは通信できないの?
ペンギン先生 ペンギン先生
Kubernetes上では基本的にCNIプラグインが必須だよ。クラスタを構築したらまずCNIプラグインを入れないと、Podが起動しても通信できない状態になるんだ
ひよこ ひよこ
どれを選べばいいか迷っちゃうね!
ペンギン先生 ペンギン先生
小規模ならFlannelで十分、ネットワークポリシーが必要ならCalico、eBPFの高性能と可観測性が欲しいならCiliumがおすすめだよ。最近はCiliumの採用が急増していて、クラウドベンダーのマネージドKubernetesでもデフォルトになりつつあるんだよ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CNI」って出てきたら「コンテナネットワークをつなぐための共通ルール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Container Network Interface」 = コンテナネットワークインターフェース
💬 Container(コンテナ)のNetwork(ネットワーク)のInterface(接点・仕様)で、コンテナとネットワークをつなぐ共通仕様だよ
← 用語集にもどる