IPAM (IP Address Management) 负责IP地址分配和设置容器所需的路由
1.网络配置格式(Network configuration format)
cniVersion(String):使用cni的标准的版本
name (string):网络名称
disableCheck (boolean):跳过检查
plugins (list):插件
其它key:type(string)、capabilities(dictionary)、ipMasq (boolean)、ipam (dictionary)等等
2.执行协议(Execution Protocol)
参数传递通过操作系统环境变量:CNI_COMMAND、CNI_CONTAINERID、CNI_NETNS、CNI_IFNAME等
CNI定义的操作:ADD, DEL, CHECK, and VERSION
ADD:将容器添加到网络,或应用修改
DEL:从网络中删除容器,或取消应用修改
CHECK:检查容器的网络是否符合预期
VERSION:探测插件版本支持
3.网络配置执行(Execution of Network Configurations)
attachment
capabilities
4.插件委托(Plugin Delegation)
5.结果类型(Result Types):包括成功(Success)、错误(Error)和版本(_Version)
执行后会输出一个JSON文档,输出各种配置等、错误代码等、版本信息等
CNI规定了一个容器runtime和网络插件之间的简单的契约。这个契约通过JSON的语法定义了CNI插件所需要提供的输入和输出。一个容器可以被加入到被不同插件所驱动的多个网络之中。一个网络有自己对应的插件和唯一的名称。CNI 插件需要提供两个命令:一个用来将网络接口加入到指定网络,另一个用来将其移除。这两个接口分别在容器被创建和销毁的时候被调用。