k8s的网络约束非常宽泛:节点上的 Pod 可以不通过 NAT 和其他任何节点上的 Pod 通信并且节点上的服务可以直接和Pod通信。也就说是网络插件只要能实现这个功能就可以符合K8s的网络规范,作为k8s容器网络。
很多小伙伴经常会问我,k8s中容器是怎样通信的。这个问题的答案连k8s自己都不知道。
和上一篇介绍的存储适配器一样,k8s只定义了网络接口。具体网络的实现都是交给第三方网络插件各种完成,譬如基于vxlan的flannel、基于BGP的calico以及基于eBPF的cilium等。
CNI的接口非常简单,核心就两个ADD和DEL,其中ADD负责就网卡插入容器,相反DEL就是将网卡从容器中移除。和CSI使用grpc通信不一样,CNI是直接通过二进制调用的方式,将参数以标准输入的方式接着传给CNI插件。
CNI只是将网卡插入容器,将容器接入到网络中,但具体网络是怎样实现连通的,完全取决于网络插件的自身实现。
页面更新:2024-04-26
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号