CNI Plugin 介绍

        CNI 插件包括两种类型: CNI Plugin 和 IPAM (IP Address Management) Plugin 。 CNI Plugin 负责为容器配置网络资源,IPAM Plugin 负责对容器的 IP 地址进行分配和管理。 IPAM Plugin 作为 CNI Plugin的一部分,与 CNI Plugin 一起工作 。

        CNI Plugin 必须是一个可执行程序,由容器管理系统(如 Kubernetes) 调用 。

        CNI Plugin 负责将网络接口 ( network interface ) 插入容器网络名称空间(例如 Veth 设备对的一端),并在主机上进行任意必要的更改(例如将 Veth 设备对的另一端连接到网桥),然后调用适当的 IPAM 插件,将 IP 地址分配给网络接口,并设置正确的路由规则。

        CNI Plugin 需要支持的操作包括 ADD (添加 )、 DELETE (删除)、 CHECK (检查)和 VERSION (版本查询)。 这些操作的具体实现均由 CNI Plugin 可执行程序完成。

        (1) ADD: 将容器添加到某个网络中,主要过程为在 Container Runtime 创建容器时,先创建好容器内的网络命名空间,然后调用 CNI 插件为该 netns 完成容器网络的配置 。

        (2) DEL: 在容器销毁时将容楛从某个网络中删除 。

        (3) CHECK: 检查容器网络是否正确设置,其结果为空(表示成功)或错误信息(表示失败)。

        (4) VERSION: 查询网络插件支持的 CNI 规范版本号,无参数,返回值为网络插件支持的 CNI 规范版本号。

猜你喜欢

转载自blog.csdn.net/shanyaodou/article/details/131126741
cni