CNI
সিএনআই
Container Network Interface — একটা standard contract যা দিয়ে container runtime networking সেটআপের দায়িত্ব pluggable বহিরাগত plugin binary-র কাছে delegate করে।
also: container network interface
stdin: JSON network config (type, subnet, ipam, ...)
env: CNI_COMMAND=ADD CNI_NETNS=/var/run/netns/<id> CNI_IFNAME=eth0
stdout: JSON result (interfaces, ips, routes)
- plugin-এর দায়িত্ব: veth pair তৈরি, namespace-এ move, bridge/overlay-তে সংযুক্তি, IP বরাদ্দ, routing/NAT বসানো
- runtime শুধু plugin ডাকতে জানে — বাস্তবায়ন (bridge? BGP? eBPF?) সম্পূর্ণ অস্বচ্ছ ও প্রতিস্থাপনযোগ্য
- Kubernetes-এর Calico, Flannel, Cilium — সবাই একই CNI contract-এর ভিন্ন বাস্তবায়ন, তাই কোনো core কোড না বদলেই সুইচযোগ্য