CNI@ネットワーク系¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. CNI¶
CNIとは¶
CNI は、Cluster 内に L2 または L3 を提供する (CNI によってさまざま) 。
Pod を新しく作成するときに、kubelet からのリクエストによって、新しい Pod を Cluster ネットワークに参加させる。
kubelet は、設定ファイルで指定された CNI を実行する。
その後、CNI は Pod に仮想 NIC を紐付け、Node 内の Cluster ネットワークの IP アドレスを Pod の仮想 NIC に割り当てる。
Pod を Node 内の Cluster ネットワークに参加させると、異なる Node 上の Pod 間で通信できるようになる。

CNIとCRIの関係¶
CNIによるクラスター内の通信¶
▼ PodとNode間の通信¶
▼ 同じNode上のPod間¶
▼ 異なるNode上のPod間¶
02. オーバーレイモード¶
オーバーレイモードとは¶
オーバーレイモードは、複数のコンポーネントから構成される。例えば、Pod のネットワークインターフェース (eth) 、Node の仮想ネットワークインターフェース (veth) 、Node のブリッジ (cni) がある。また、NAT ルーター (Cilium 以外の CNI は iptables、Cilium CNI は Cilium) と、Node のネットワークインターフェース (eth) がある。
オーバーレイネットワークを使用して、Cluster ネットワークを作成し、異なる Node 上の Pod 間を接続する。

- https://www.netone.co.jp/knowledge-center/netone-blog/20191226-1/
- https://www.netstars.co.jp/kubestarblog/k8s-3/
- https://www1.gifu-u.ac.jp/~hry_lab/rs-overlay.html
- https://www.slideshare.net/ThomasGraf5/cilium-bringing-the-bpf-revolution-to-kubernetes-networking-and-security#28
- https://caddi.tech/archives/3864
CNI例¶
CNI によって、L2 または L3 を提供する。
- calico-ipip (
L3、Kubeadm で推奨) - flannel-vxlan (
L2) - Weave (
L2) - Cilium (
L3/L4/L7)
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network
- https://techblog.yahoo.co.jp/infrastructure/kubernetes_calico_networking/
- https://zenn.dev/taisho6339/books/fc6facfb640d242dc7ec/viewer/0d112c#flannel%E6%96%B9%E5%BC%8F
- https://medium.com/mhiro2/learn-calico-3f4962b2c26c
オーバーレイモードの仕組み¶
▼ 同一Node上のPod間通信¶
Pod のネットワークインターフェース (eth) 、Node の仮想ネットワークインターフェース (veth) 、Node のブリッジ (cni) を使用して、同じ Node 上の Pod 間でパケットを送受信する。

▼ 異なるNode上のPod間通信¶
Pod のネットワークインターフェース (eth) 、Node の仮想ネットワークインターフェース (veth) 、Node のブリッジ (cni) を使用する。また、NAT ルーター (Cilium 以外は iptables、Cilium) と Node のネットワークインターフェース (eth) を使用する。そして、異なる Node 上の Pod 間でパケットを送受信する。

03. ルーティングモード¶
ルーティングモードとは¶
ルーティングテーブルを使用して、Cluster ネットワークを作成し、異なる Node 上の Pod 間を接続する。
CNI例¶
CNI によって、L2 または L3 を提供する。
- calico-bgp (
L3、Kubeadm で推奨) - flannel-hostgw (
L3) - sriov
04. アンダーレイモード¶
アンダーレイモードとは¶
アンダーレイネットワークを使用して、Cluster ネットワークを作成し、異なる Node 上の Pod 間を接続する。
CNI例¶
CNI によって、L2 または L3 を提供する。
- Aliyun
06. その他のCNI¶
- Antrea (
L3/L4) - Multus
- Whereabout