áážááşááťááşá ááŹááŹááźááşâ LinkedIn ááž SRE áĄááşááťááşááŽááŹáá áşáŚá¸ááž ááąá¸ááŹá¸ááŹá¸ááąáŹ á¤ááąáŹááşá¸ááŤá¸áááş Kubernetes áážá áĄáá˝ááşá¸áážáąáŹáşáááŹáĄááźáąáŹááşá¸ áĄááąá¸á áááşááąáŹáşááźááŹá¸áááş - áááŻáááŻááááťá á˝áŹá CRIá CNI áážááˇáş kube-apiserver áááŻáˇá áĄááźááşáĄáážááşáááşáá˝ááşáážáŻ - ááąáŹááş pod ááᯠIP ááááşá áŹáá áşááŻáááşáážááşááąá¸áááşáááŻáĄááşááąáŹáĄááŤáá˝ááş ááźá áşááąáŤáşááŹáááşá
áĄááźáąááśáááŻáĄááşááťááşááťáŹá¸áá˛ááž áá
áşááŻááźá
áşáááşá
Kubernetes áážááˇáş á
áááşáĄááŻááşááŻááşá
ááşá pods ááťáŹá¸áááş áááşá¸áááŻáˇá IP ááááşá
áŹááťáŹá¸ááᯠáĄáááĄááťáááşáá˛áˇáááŻáˇááážááááşááᯠááťá˝ááşáŻááşáĄáá˝ááş ááŻáśá¸ááážááşá¸áááşá¸á
á˝áŹááááááŤá áĄá
áááşáĄáááŻááşá¸áá
áşááŻááťááşá¸á
áŽá ááŻááşááąáŹááşááŻáśááᯠááŹá¸áááşááŹá¸ááąáŹáşáááşá¸ áááşá¸áááŻáˇááᯠáĄáá°ááá˝ ááŻááşááąáŹááşáááş á
áááşáá°á¸ááááşááŤáááşá áĽáááŹáĄáŹá¸ááźááˇáşá CNI ááááşáĄááşááťáŹá¸áááş ááŹáĄáá˝ááşááźá
áşáááşááᯠááťá˝ááşáŻááşáááááşá áááŻáˇááąáŹáş áááşá¸áááŻáˇááᯠáááşáá˛áˇáááŻáˇááąáŤáşáááŻáááşááᯠáĄáááĄááťáááááŤá áááŻáˇááźáąáŹááˇáşá áĄááťááŻá¸ááťááŻá¸ááąáŹ áá˝ááşáááşáĄá
áááşáĄáááŻááşá¸ááťáŹá¸áĄááźáąáŹááşá¸ áĄáááááŹááťážááąáááşáážááˇáş pod áá
áşááŻá
áŽáá˝ááş áááşá¸ááááŻááşáááŻááş IP ááááşá
áŹááᯠááážáá
áąáááˇáş Kubernetes áĄá
áŻáĄááąá¸áá
áşááŻáá˝ááş áááşá¸áááŻáˇ áĄáá°ááá˝ááŻááşááąáŹááşááŻáśááᯠááťážááąáááş á¤ááąáŹááşá¸ááŤá¸ááᯠááąá¸ááŹá¸áááş ááŻáśá¸ááźááşáá˛áˇáááşá
áá˝ááşááááşááŹááťáŹá¸áĄáá˝ááş ááá°ááŽááąáŹ runtime áá˝áąá¸ááťááşá
ááŹááťáŹá¸áá˛áˇáááŻáˇ Kubernetes áá˝ááş áá˝ááşáááşááťáááşáááşáážáŻááᯠá
áŻá
ááşá¸áááş ááá°ááŽááąáŹáááşá¸áááşá¸ááťáŹá¸áážááááşá á¤á
áŹá
áąáŹááşááᯠáĄááŻáśá¸ááźáŻááŤáááşá
áĄááźáąááśáááąáŹáááŹá¸áĄááťááŻáˇ
áá˝ááşááááşááŹááťáŹá¸áážááˇáş áá˝ááşáááş- áĄááťááşá¸ááťáŻááş ááŻáśá¸áááşááťááş
áá˝ááşááááşááŹááťáŹá¸áááş áá˝ááşáááşááąáŤáşáážá áá˝ááşááááşááŹááťáŹá¸ áĄááťááşá¸ááťááşá¸ áááşáá˝ááşááŻáśááᯠáážááşá¸ááźáááˇáş áĄááşááŹáááşááąáŤáşáá˝ááş ááąáŹááşá¸áá˝ááşááąáŹ á áŹááąááťáŹá¸á á˝áŹ áážáááŤáááşá áááŻáˇááźáąáŹááˇáşá ááťá˝ááşáŻááşáááş áĄááźáąááśáááąáŹáááŹá¸ááťáŹá¸áááŻáᏠááąááŻááťááźáŻáśááŻáśááŻáśá¸áááşááźáŽá¸ Linux ááśááŹá¸ááᯠáááşááŽá¸ááźááşá¸áážááˇáş ááŻááşáááŻá¸ááŹá¸ááąáŹ áááşááąáˇááşáťááťáŹá¸ááŤáááşáááˇáş ááťááşá¸áááşáážáŻáá áşááŻáá˝ááş ááťá˝ááşáŻááşáááŻááşáááŻááş áááˇáşáááşááŹá¸áááşá áá˝ááşááááşááŹáá˝ááşáááşááťáááşáááşááźááşá¸áááŻááşáᏠááąáŤááşá¸á ááşáááŻááşáááŻááşá ááŽá¸ááźáŹá¸ááąáŹááşá¸ááŤá¸áážááˇáş áááŻááşáááşááąáŹááźáąáŹááˇáş áĄááąá¸á áááşáĄááťááşáĄáááşááťáŹá¸ááᯠááťááşáážááşááŹá¸áááşá áĄáá°á¸áááźááˇáş áááŻá¸áá˝ááşá¸ááááźááşáááŻááşááąáŹ áááŹááąá¸á áŹá áąáŹááşáĄááťááŻáˇá áááˇáşááşááťáŹá¸ááᯠáĄáąáŹááşáá˝ááş ááąáŹáşááźááąá¸ááŤáááşá
áĄáááşáážááşáá áşáŚá¸áá˝ááş áá˝ááşááááşááŹááťáŹá¸
áá°ááŽááąáŹáĄáááşáážááşááąáŤáşáá˝ááşáááşáááşááąááąáŹáá˝ááşááááşááŹááťáŹá¸ááźáŹá¸ IP ááááşá
áŹááťáŹá¸áážááááˇáşáááşáá˝ááşááąá¸áááŻá
áŻá
ááşá¸áááşáááşá¸áááşá¸áá
áşááŻáážáŹ Linux ááśááŹá¸áá
áşááŻáááşááŽá¸ááźááşá¸ááŤáááşáááşá á¤áááşáá˝ááşááťááşáĄáá˝ááşá á
ááşáá
ášá
ááşá¸ááťáŹá¸ááᯠKubernetes (áážááˇáş Docker) áá˝ááş áááşááŽá¸ááŹá¸áááşá
áá°ááŽááąáŹáĄáááşáážááşáážá áá˝ááşááááşááŹáĄáŹá¸ááŻáśá¸áá˝ááş IP ááááşá áŹááťáŹá¸áážáá áşáááˇáş áĄááťááşá¸ááťááşá¸ áááşáá˝ááşáááŻááşáááˇáş ááśááŹá¸áá áşááŻáážááˇáş ááťáááşáááşááŹá¸áááˇáş veth áĄááŻáśá¸áá áşááŻáážááááşá Linux ááśááŹá¸áá˝ááş IP ááááşá áŹáááşá¸áážáááźáŽá¸ áĄááźáŹá¸ node ááťáŹá¸áĄáá˝ááş áááşáá˝ááşááŹá¸ááąáŹ pods ááťáŹá¸ááž egress traffic áĄáá˝ááş gateway áá áşááŻáĄááąááźááˇáş ááŻááşááąáŹááşáááşá
ááá°ááŽááąáŹáĄáááşáážááşááťáŹá¸áá˝ááş áá˝ááşááááşááŹááťáŹá¸
Packet encapsulation áááş IP ááááşá
áŹááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá ááá°ááŽááąáŹ node ááťáŹá¸áážá container ááťáŹá¸áĄááťááşá¸ááťááşá¸ áááşáá˝ááşáááŻááşá
áąáááˇáş áááşá¸áááşá¸áá
áşááŻááźá
áşáááşá Flannel áá˝ááşá áááşá¸áááŹáááş á¤áĄáá˝ááˇáşáĄááąá¸áĄáá˝ááş ááŹáááşáážááááşá
Kubernetes áĄá áŻáĄááąá¸áá áşááŻáá˝ááşá Flannel áááş vxlan á ááşáá áşááŻááᯠáááşááŽá¸ááźáŽá¸ node áá áşááŻá áŽáážá áááşá¸ááźáąáŹááşá¸áááŹá¸ááᯠáĄááşááááşááŻááşáááşá ááá°ááŽááąáŹ host áá áşááŻááąáŤáşáážá áá˝ááşááááşááŹáá áşááŻáĄáá˝ááş áááşáážááşááŹá¸ááąáŹ áááşáááşáá áşááŻá áŽáááş vxlan á ááşáá ášá ááşá¸ááᯠááźááşáááşá¸áá˝áŹá¸áᏠUDP áááşáááşáá˝ááş ááŻáśá¸áĄáŻááşááŹá¸áááşá áŚá¸áááşááŹáá˝ááşá nested packet ááᯠááŻááşáá°ááźáŽá¸ áááŻááťááşááąáŹ pod áááŻáˇ áááşáááˇáşáááŻáˇáááşá
áážááşááťááş- á¤áááşáážáŹ áá˝ááşááááşááŹááťáŹá¸ááźáŹá¸áá˝ááş áá˝ááşáááşáááşáá˝ááşáážáŻááᯠá
áŻá
ááşá¸áááş áááşá¸áááşá¸áá
áşááŻááŹááźá
áşáááşá
CRI áááŻááŹááŹáá˛á
CNI áááŻááŹááŹáá˛á
pods ááťáŹá¸áááŻáˇ IP ááááşá áŹááťáŹá¸áááşáážááşááźááşá¸áĄáá˝ááş subnets ááťáŹá¸áá˝á˛ááąááźááşá¸á
áĄá áŻáĄááąá¸áá áşááŻá áŽáážá pod áá áşááŻá áŽáá˝ááş IP ááááşá áŹáá áşááŻáážáááááşááźá áşááąáŹááźáąáŹááˇáş á¤ááááşá áŹáááş áá áşáá°áá°á¸ááźáŹá¸ááźáąáŹááşá¸ ááąááťáŹá áąáááş áĄááąá¸ááźáŽá¸áááşá áááşá¸áááş node áá áşááŻá áŽááᯠááŽá¸ááźáŹá¸áá˝á˛áááşáá áşááŻáĄááźá áş áááşáážááşááąá¸ááźááşá¸ááźááˇáş áááşá¸ááᯠááážáááźáŽá¸ áááşá¸áááş áĄáááŻá፠node ááąáŤáşáážá pods ááťáŹá¸ááᯠIP ááááşá áŹááťáŹá¸áĄááźá áş áááşáážááşááąá¸ááźááşá¸ááźááˇáş áĄáąáŹááşááźááşáááşá
Node IPAM Controller
áááąáŹáĄá፠nodeipam
áĄááśááąáŹááşáá
áşááŻáĄááźá
áş ááťáąáŹáşáá˝áŹá¸áá˛áˇáááşá --controllers
áĄá áŻáĄááąá¸áá˝ááş áááŚá¸áážááşááŻáśáááşáááˇáşáĄá፠Kubernetes node ááᯠpodCIDR áá áşáᯠáááşáážááşááąá¸áááşá node ááťáŹá¸á podCIDR áááŻááźáąáŹááşá¸áá˛áááşá áááşá¸áááŻáˇááᯠáážááşááŻáśáááşáááş áááŻáĄááşááźáŽá¸ áááşá¸áááŻáˇááᯠááźááşáááşáážááşááŻáśáááşáááş áááŻáĄááşááźáŽá¸ áááşá¸áááŻáˇáĄááźáŹá¸áážá Kubernetes ááááşá¸ááťáŻááşáážáŻ áĄáá˝ážáŹáá˝á˛áˇá ááşá¸ááŻáśáĄáá˝ááş áááˇáşááťáąáŹáşááąáŹááźáąáŹááşá¸áá˛áážáŻááťáŹá¸ ááźáŻááŻááşááŤá áĄáąáŹááşá፠command ááᯠáĄááŻáśá¸ááźáŻá node áá áşááŻá podCIDR ááᯠáááşááźááááŻááşáááş-
$ kubectl get no <nodeName> -o json | jq '.spec.podCIDR'
10.244.0.0/24
Kubeletá container runtime áážááˇáş CNI plugins- áĄáŹá¸ááŻáśá¸áĄááŻááşááŻááşááŻáś
node áá áşááŻá áŽáĄáá˝ááş pod áá áşááŻááᯠá áŽá ááşááŹáá˝ááş ááźááŻáááşááźááşáááşáážáŻ áĄáááˇáşááťáŹá¸á á˝áŹ ááŤáááşááŤáááşá á¤ááášááá˝ááşá ááťá˝ááşáŻááşáááş pod network áá áşááŻáááşááąáŹááşááźááşá¸áážááˇáş áááŻááşáááŻááşáááşáááŻááşáááˇáşáĄááŹááťáŹá¸áááŻáᏠáĄáŹááŻáśá ááŻááşááŤáááşá
pod áá áşááŻáĄáŹá¸ áĄááťááŻáˇááąáŹ node áá áşááŻáááŻáˇ áĄááťáááşáááŹá¸áá˝á˛ááźááşá¸áááş áĄáąáŹááşááŤááźá áşáááşááťáŹá¸á áá˝ááşá¸áááşááᯠáĄá ááťááŻá¸á áąáááş-
ááąá¸ááąáˇáážáááąáŹááąá¸áá˝ááşá¸ááťáŹá¸:
áá˝ááşááááşáᏠruntime áážááˇáş CNI ááááşáĄááşááťáŹá¸áĄááźáŹá¸ áĄááźááşáĄáážááşáĄááťááŻá¸áááşááąáŹááşáážáŻ
áá˝ááşáááşááśáˇáááŻá¸ááąá¸áá°áááŻááşá¸áá˝ááş áááşá¸ááááŻááşáááŻááş CNI ááááşáĄááşááŤáážááááşá á
áááşááťáááşáá˝ááş áá˝ááşááááşááŹá runtime áááş pod áĄáá˝ááş network ááᯠconfigure ááźáŻááŻááşáááş áááşá¸ááᯠrun áááşá containerd áá˝ááşá CNI plugin ááᯠplugin áážá
áááşáááşá
áááŻáˇáĄááźááşá áááşááąáŹááşáážáŻááąá¸áá°áááŻááşá¸áá˝ááş áááşá¸ááááŻááşáááŻááşáĄáąá¸ááťááˇáşáážááááşá áááşá¸ááᯠKubernetes node ááťáŹá¸áĄáŹá¸ááŻáśá¸áá˝ááş áááˇáşáá˝ááşá¸ááŹá¸ááźáŽá¸ pods ááťáŹá¸á áá˝ááşáááşáá˝á˛áˇá ááşá¸ááŻáśáĄáá˝ááş ááŹáááşáážááááşá á¤áĄáąá¸ááťááˇáşáááş CNI config áá˝ááş ááŤáááşáááş áááŻáˇáááŻááş áááşá¸ááᯠnode áá˝ááş áá˝ááşáááşá á˝áŹ áááşááŽá¸áááşá config áááş CNI ááááşáĄááşáááŻááąáŤáşáááŻáááşáááşáážááşááŹá¸áááˇáş CRI ááááşáĄááşáááŻáá°ááŽááąá¸áááşá
CNI config ááááşááąááŹáááŻá
áááşááźááŻááşááźááşáááşáááŻááşáááşá ááŻáśáážááşáĄáŹá¸ááźááˇáş áááşá¸áááş áá˝ááşáážááááşá /etc/cni/net.d/<config-file>
. Cluster á
áŽááśáááˇáşáá˝á˛áá°ááťáŹá¸áááş áĄá
áŻáĄááąá¸áá
áşááŻá
áŽáá˝ááş CNI ááááşáĄááşááťáŹá¸ááᯠáááˇáşáá˝ááşá¸áááşáĄáá˝ááşáááşá¸ ááŹáááşáážáááŤáááşá áááşá¸áááŻáˇááááşááąááŹáááŻáááşá¸ á
áááşááźááŻááşááźááşáááşáááŻááşáááşá áá°áááşá¸áááşá¸áá˝ážááş - /opt/cni/bin
.
containerd áááŻáĄááŻáśá¸ááźáŻááąáŹáĄááŤá plugin config áážááˇáş binaries áĄáá˝ááşáááşá¸ááźáąáŹááşá¸ááťáŹá¸áááŻáĄáááŻááşá¸áá˝ááşáááşáážááşáááŻááşáááşá [plugins.ÂŤio.containerd.grpc.v1.criÂť.cni]
в
ááťá˝ááşáŻááşáááŻáˇáááş ááťá˝ááşáŻááşáááŻáˇááá˝ááşáááşááśáˇáááŻá¸ááąá¸áá°áĄááźá áş Flannel áááŻáĄááŻáśá¸ááźáŻááąááąáŹááźáąáŹááˇáşá áááşá¸áááŻá áááşáááşáážááşááźááşá¸áĄááźáąáŹááşá¸ áĄáááşá¸áááşááźáąáŹáááŻááźááŤá ááŻáˇá
- Flannel (Flannel's daemon) ááᯠDaemonSet áĄááźá
áş áĄá
áŻáĄááąá¸áá
áşááŻáá˝ááş áááˇáşáá˝ááşá¸ááąáˇáážááááşá
install-cni
áĄááźá áşinit container . Install-cni
áááşááŽá¸áááşCNI áá˝á˛áˇá ááşá¸áážáŻáááŻááş (/etc/cni/net.d/10-flannel.conflist
node áá áşááŻá áŽáá˝ááş)- Flanneld áááş vxlan á ááşáá ášá ááşá¸ááᯠáááşááŽá¸áᏠAPI ááŹááŹááž áá˝ááşáááşáááşááŹááąááŹááᯠááá°áᏠááąáŤáˇááşáĄááşááááşááťáŹá¸ááᯠá áąáŹááˇáşááźááˇáşáááşá áááşá¸áááŻáˇááᯠáááşááŽá¸áááŻááşáááşáážááˇáşáĄááťážá áááşá¸áááş áĄá áŻáĄááąá¸áá áşááťážáąáŹááşáážá pods ááťáŹá¸áĄáŹá¸ááŻáśá¸áááŻáˇ áááşá¸ááźáąáŹááşá¸ááťáŹá¸ááᯠááźááˇáşááąááąá¸áááşá
- á¤áááşá¸ááźáąáŹááşá¸ááťáŹá¸áááş pod ááťáŹá¸ááᯠIP ááááşá áŹááťáŹá¸áážááááˇáş áĄááťááşá¸ááťááşá¸ áááşáá˝ááşáááŻááşá áąááŤáááşá
Flannel ááĄááŻááşáážááˇáşáááşáááşááąáŹáĄááąá¸á áááşáĄááťááşáĄáááşááťáŹá¸áĄáá˝ááşá ááąáŹááşá¸ááŤá¸ááĄááŻáśá¸áá˝ááş links ááťáŹá¸áááŻáĄááŻáśá¸ááźáŻáááşáĄááźáśááźáŻááŤáááşá
á¤áááşáážáŹ Containerd CRI ááááşáĄááşáážááˇáş CNI ááááşáĄááşááťáŹá¸áĄááźáŹá¸ áĄááźááşáĄáážááşáĄááťááŻá¸áááşááąáŹááşáážáŻá ááŻáśááźááşá¸ááźá áşáááşá
áĄáááşáá˝ááşáá˝áąáˇááźááşááááˇáşáĄáááŻááşá¸á kubelet áááş Pod ááá˝ááşáááşááᯠconfigure ááŻááşáááş CNI ááááşáĄááşáááŻááąáŤáşááźáŽá¸ pod áááŻáááşááŽá¸áááş Containerd CRI ááááşáĄááşáááŻááąáŤáşáááşá áááŻáááŻáˇááŻááşááąáŹááşááŹáá˝ááşá áá˝ááşáááşááśáˇáááŻá¸ááąá¸áá°á CNI ááááşáĄááşáááş áá˝ááşáááşá áážáŻááąáŹááˇáşáĄááťááŻá¸ááťááŻá¸ááᯠá
áŽá
ááşáááşáážááşáááş áĄááźáŹá¸ core CNI ááááşáĄááşááťáŹá¸ááᯠááąáŤáşáááşá
CNI ááááşáĄááşááťáŹá¸áĄááźáŹá¸ áĄááźááşáĄáážááşááŻáśáˇááźááşáážáŻ
host ááąáŤáşáážá containers ááťáŹá¸ááźáŹá¸áá˝ááş network communication ááᯠset up ááŻááşáááşáážáŹ CNI plugin áĄááťááŻá¸ááťááŻá¸áážááááşá á¤ááąáŹááşá¸ááŤá¸áá˝ááş áááşá¸áááŻáˇááŻáśá¸áŚá¸ááᯠáá˝áąá¸áá˝áąá¸ááŤáááşá
CNI ááááşáĄááş Flannel
Flannel ááᯠáá˝ááşáááşááśáˇáááŻá¸ááąá¸áá°áĄááźá
áş áĄááŻáśá¸ááźáŻááąáŹáĄááŤá Containerd CRI áĄá
áááşáĄáááŻááşá¸ááž ááŻááşá¸ááąáŤáşáááŻáááşá /etc/cni/net.d/10-flannel.conflist
.
$ cat /etc/cni/net.d/10-flannel.conflist
{
"name": "cni0",
"plugins": [
{
"type": "flannel",
"delegate": {
"ipMasq": false,
"hairpinMode": true,
"isDefaultGateway": true
}
}
]
}
Flannel CNI ááááşáĄááşáááş Flanneld áážááˇáş áá˝á˛áááşáĄááŻááşááŻááşáááşá á
áááşá
ááşáĄáá˝ááşá¸á Flanneld áááş podCIDR áážááˇáş áĄááźáŹá¸áá˝ááşáááşáááŻááşááŹáĄááąá¸á
áááşáĄááťááşáĄáááşááťáŹá¸ááᯠAPI ááŹááŹááž ááá°ááźáŽá¸ áááŻááşáá
áşááŻáá˝ááş ááááşá¸áááşá¸áááş /run/flannel/subnet.env
.
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=false
Flannel CNI ááááşáĄááşáááş ááąááŹááᯠáĄááŻáśá¸ááźáŻáááşá /run/flannel/subnet.env
Configure ááŻááşááźáŽá¸ CNI Bridge plugin ááᯠááąáŤáşááŤá
CNI ááááşáĄááşááśááŹá¸
á¤ááááşáĄááşááᯠáĄáąáŹááşááŤáá˝á˛áˇá ááşá¸ááŻáśááźááˇáş ááąáŤáşáááş-
{
"name": "cni0",
"type": "bridge",
"mtu": 1450,
"ipMasq": false,
"isGateway": true,
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24"
}
}
ááááĄááźáááşááąáŤáşááąáŹáĄááŤá áááşá¸áááş Linux ááśááŹá¸áááŻáááşááŽá¸áááşá ÂŤnameÂť: ÂŤcni0Âť
config áá˝ááşááąáŹáşááźááŹá¸ááąáŹá áááŻáˇááąáŹááş pod áá
áşááŻá
áŽáĄáá˝ááş veth pair áá
áşááŻááᯠáááşááŽá¸áááşá áááşá¸á áĄááŻáśá¸áá
áşáááşáááş áá˝ááşááááşááŹá áá˝ááşáááşáĄáááşááąááŹáážááˇáş ááťáááşáááşááŹá¸ááźáŽá¸ ááťááşáá
áşáááşááᯠáááşááśáá˝ááşáááşáážá Linux ááśááŹá¸áá˝ááş áááˇáşáá˝ááşá¸ááŹá¸áááşá
veth pair ááᯠá áá áşáááˇáşáá˝ááşá¸ááźááşá¸ ááźáŽá¸áá˝áŹá¸ááąáŹáĄá፠Bridge plugin áááş host-local IPAM CNI plugin ááᯠááąáŤáşáááşá Flannel CNI ááááşáĄááşáááŻááąáŤáşáááş CRI ááááşáĄááşááĄááŻáśá¸ááźáŻááąáŹ IPAM ááááşáĄááşáĄááťááŻá¸áĄá áŹá¸ááᯠCNI config áá˝ááş configure ááŻááşáááŻááşááŤáááşá
áááşááśáá°-ááźááşáá˝ááşá¸ IPAM CNI ááááşáĄááşááťáŹá¸
ááśááŹá¸ CNI ááąáŤáşáááŻáážáŻááťáŹá¸
{
"name": "cni0",
"ipam": {
"type": "host-local",
"subnet": "10.244.0.0/24",
"dataDir": "/var/lib/cni/networks"
}
}
áááşááśáá°-ááźááşáá˝ááşá¸ IPAM ááááşáĄááş (IP Aáááş Má
áŽááśáááˇáşáá˝á˛áážáŻ - IP ááááşá
áŹá
áŽááśáááˇáşáá˝á˛áážáŻ) subnet ááž áá˝ááşááááşááŹáĄáá˝ááş IP ááááşá
áŹááᯠááźááşááąá¸áᏠáĄáááŻááşá¸áážá áááşáážááşááŹá¸áááˇáş áááşá¸áá˝ážááşáá˝ááş áááşááśááąáŹááşáá˝ááşááąá¸ááąáŹ IP ááąáŤáşáá˝ááş áá˝á˛ááąááťááŹá¸ááąá¸áááş dataDir
- /var/lib/cni/networks/<network-name=cni0>/<ip>
. á¤áááŻááşáá˝áẠᤠIP ááááşá
áŹááᯠáááşáážááşááąá¸ááŹá¸áááˇáş áá˝ááşááááşáᏠID ááŤáážááááşá
host-local IPAM ááááşáĄááşááᯠááąáŤáşááąáŹáĄááŤá áááşá¸áááş áĄáąáŹááşááŤááąááŹááᯠááźááşááąá¸áááş-
{
"ip4": {
"ip": "10.244.4.2",
"gateway": "10.244.4.3"
},
"dns": {}
}
áĄááťááşá¸ááťáŻááş
Kube-controller-manager áááş node áá áşááŻá áŽáá˝ááş podCIDR áá áşááŻááᯠáááşáážááşááąá¸áááşá node áá áşááŻá áŽá pods ááťáŹá¸áááş áá˝á˛ááąááťááŹá¸ááąá¸ááŹá¸ááąáŹ podCIDR áĄáááŻááşá¸áĄááźáŹá¸áážá ááááşá áŹááąááŹááž IP ááááşá áŹááťáŹá¸ááᯠáááşááśááážááááş á node ááťáŹá¸á podCIDR ááťáŹá¸áááş áááşááááşááąáŹááźáąáŹááˇáşá pod ááťáŹá¸áĄáŹá¸ááŻáśá¸áááş áá°á¸ááźáŹá¸ááąáŹ IP ááááşá áŹááťáŹá¸ááᯠááážáááźáááşá
Kubernetes áĄá áŻáĄááąá¸ á áŽááśáááˇáşáá˝á˛áá°áááş kubeletá áá˝ááşááááşááŹáá˝ááˇáşááťáááşá áá˝ááşáááşááśáˇáááŻá¸ááąá¸áá° áĄáąá¸ááťááˇáşááᯠá áŽá ááşááźáŽá¸ áááˇáşáá˝ááşá¸áᏠnode áá áşááŻá áŽáááŻáˇ CNI ááááşáĄááşááťáŹá¸ááᯠáá°á¸áá°áááşá á áááşááťáááşáá˝ááşá áá˝ááşáááşááśáˇáááŻá¸ááąá¸áá° áĄáąá¸ááťááˇáşáááş CNI config áá áşááŻááᯠááŻááşááąá¸áááşá pod áá áşááŻáááş node áá áşááŻáááŻáˇá áŽá ááşááąáŹáĄááŤá kubelet áááş áááşá¸áááŻáááşááŽá¸áááş CRI plugin áááŻááąáŤáşáááŻáááşá áááŻáˇááąáŹááşá containerd áááŻáĄááŻáśá¸ááźáŻááŤáá Containerd CRI plugin áááş pod á network ááᯠconfigure ááŻááşáááşáĄáá˝ááş CNI config áá˝ááşáááşáážááşááŹá¸ááąáŹ CNI plugin áááŻááąáŤáşáááŻááŤáááşá ááááşáĄááąááźááˇáş pod áááş IP ááááşá áŹáááŻáááşááśááážááááşá
á¤áĄááŹáĄáŹá¸ááŻáśá¸á ááááşáá˝áąáˇáážáŻáážááˇáş áá˝á˛áá˝á˛ááťááşááťáŹá¸ááᯠááŹá¸áááşáááş áĄááťáááşáĄáááşá¸áááşáá°áá˛áˇááááşá á¤áĄáá˝áąáˇáĄááźáŻáśáááş Kubernetes áĄááŻááşááŻááşááŻáśááᯠáááŻáááŻááŹá¸áááşáááŻááşá
áąáááş áá°ááŽááąá¸ááááˇáşáááşáᯠááťážáąáŹáşáááˇáşááŤáááşá áá
áşááŻááŻáážáŹá¸ááŹáážááááş ááťáąá¸áá°á¸ááźáŻááźáŽá¸ ááťá˝ááşááąáŹáˇáşááᯠáááşáá˝ááşááąá¸ááŤá
áááŻá¸ááŹá¸
áá˝ááşááááşááŹááťáŹá¸áážááˇáşáá˝ááşáááş
áá˝ááşááááşááŹáá˝ááşáááş ááźáŻáśááŻáśááŻáśá¸áááşááťááş Demystifying container networking
Flannel áááşáááŻáĄááŻááşááŻááşááá˛á
Flannel Networking Demystify Flannel ááŤáážáááąáŹ Kubernetes - áá˝ááşáááşááťáááşáááşááźááşá¸ááᯠááŹá¸áááşááźááşá¸á
CRI áážááˇáş CNI áááŻáˇááźá áşáááşá
PS ááŹááŹááźááşááž
ááťá˝ááşáŻááşáááŻáˇááááąáŹáˇááşáá˝ááşáááşá¸áááşááŤ
- ÂŤ
Kubernetes áážá áá˝ááşáááşááťáááşáááşáážáŻáĄáá˝ááş Calico- ááááşáááşááźááşá¸áážááˇáş áĄáá˝áąáˇáĄááźáŻáśáĄáááşá¸áááş "; - " Kubernetes áá˝ááş áá˝ááşáááşááťáááşáááşááźááşá¸áááŻááşáᏠááŻááşááźáááşá¸áá˝ážááş"-
áĄáááŻááşá¸ á áážááˇáş á (áá˝ááşáááşááŻáśá áśá áááşáááˇáşáá˝ááşáááşááťáŹá¸) ,áĄáááŻááşá¸ 3 (áááşááąáŹááşáážáŻááťáŹá¸áážááˇáş ááŹááşáĄáá˝áŹá¸áĄáᏠááŻááşááąáŹááşááźááşá¸) ; - ÂŤ
Container Networking Interface (CNI) - Linux áá˝ááşááááşááŹááťáŹá¸áĄáá˝ááş áá˝ááşáááşááťáááşáááşáážáŻ áážááˇáş á áśáážáŻááşá¸ "á
source: www.habr.com