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