容器网络规范CNM vs. CNI
CNM1 由Docker公司提出,在docker项目下的libnetwork项目中被采用。2 工作流程CNI1 CNI是由CoreOS提出的容器组网规范,被K8s、Mesos、Cloud Foudry、rkt等项目采用,目前也是CNCF的一个重要项目。2 工作流程CNM vs. CNI相同点都支持插件化的组网功能。二者中的许多概念是相似的。比如CNM的sandbox和CNI的container、C
·
CNM
1 由Docker公司提出,在docker项目下的libnetwork项目中被采用。
2 工作流程
CNI
1 CNI是由CoreOS提出的容器组网规范,被K8s、Mesos、Cloud Foudry、rkt等项目采用,目前也是CNCF的一个重要项目。
2 工作流程
CNM vs. CNI
-
相同点
- 都支持插件化的组网功能。
- 二者中的许多概念是相似的。比如CNM的sandbox和CNI的container、CNM的network和CNI的network。
- 类似CNM中的endpoint概念,CNI中将其隐含在Add和Delete动作中。
- K8s项目下的to_docker工具提供了将CNI调用转换为CNM的方案。
-
不同点
- CNM的优点
- 模式实现更加完善,比较贴近传统的容器网络。
- 在Docker/libnetwork中内置了常见的CNM drivers。
- 相比CNI plugin的命令行规范,CNM plugin/drivers更友好些,remote plugin通过HTTP请求进行,docker daemon可以通过指定端口与plugin通信。
- CNI的优点
- 接口规范更简洁,也因此更易扩展。
- CNM/libnetwork中隐含了Docker自己的service机制、dns机制等约束,对别的runtime不友好。
- 更多的工作在container runtime以及网络的管理者上。
- CNM的优点
原文链接:https://blog.nowcoder.net/n/667dbb0d177345499608232496f1e4d9
更多推荐
已为社区贡献5条内容
所有评论(0)