分享好友 最新动态首页 最新动态分类 切换频道
docker cni插件分析
2024-12-27 03:05

Container Networking Interface(CNI)提供了一种linux的应用容器的插件化网络解决方案。最初是由rkt Networking Proposal发展而来。他的模型只涉及两个概念:

docker cni插件分析

容器(container) : 容器是拥有独立linux网络命名空间的独立单元。比如rkt/docker创建出来的容器。
网络(network): 网络指代了可以相互联系的一组实体。这些实体拥有各自独立唯一的ip。这些实体可以是容器,是物理机,或者其他网络设备(比如路由器)等。

Github地址

 

这个地址包括两个项目,一个是CNI项目,一个是plugin项目,plugin主要用来适配CNI项目。
plugin项目主要包括以下插件

 

以常见的bridge插件开始分析

插件路径

 

函数入口

 

skel.PluginMain函数由"github.com/containernetworking/cni/pkg/skel"包导入,这个包属于CNI项目,代码路径

 

进入skel.go文件,查看PluginMain函数

 

PluginMain函数把传入的变量再传入PluginMainWithError函数,PluginMainWithError函数再调用dispatcher变量的pluginMain方法,pluginMain方法定义如下

 

pluginMain方法首先根据环境变量获取当前请求的动作是ADD或者DEL还是CHECK,然后进入对应的分支,接着使用checkVersionAndCall方法检查传入的版本号然后调用传入的参数,这里被调用的函数就是插件本身传入的函数,如bridge.go文件里面定义的“cmdAdd, cmdGet, cmdDel”这些函数,过程如下

 

最终使用toCall调用到了bridge.go文件对应的函数。

bridge插件的cmdAdd方法用于添加一个容器到指定的网桥,核心过程是首先在宿主机创建网桥然后在容器内部通过系统调用创建VETH接口对,然后把属于host的接口设备为host命名空间,最后再配置容器接口IP地址

1、加载输入参数

 

2、创建网桥

 

3、获取容器命名空间

 

4、创建VETH接口对

 

5、使用ipam获取IP地址并计算网关地址

 

6、配置容器IP地址

 

7、网关地址设置为网桥IP

最新文章
用AI工具生成超逼真美女写真,你准备好了吗?
在这个每个人都希望自己看起来美丽的时代,我们很多人都希望能拥有一张完美的照片。然而,无论是专业摄影师的照相技术还是后期修图,成本和时间都是不小的。因此,借助新科技的力量,许多人开始尝试使用AI绘画工具来生成超逼真美女写真。这
百度快速排名的方法代发—推广加微信,排名1-3天上首页!
我司是专业的百度排名推广平台,拥有众多百度高权重网站,擅长通过百度霸屏策略实现流量最大化,并配备智能系统自动挖掘高流量关键词。我们能在短时间内迅速提升排名,确保流量稳定增长。针对您面临的排名波动、效果评估难、内容优化挑战、
极越“非正常死亡”启示录:没有共识的牵手
对大部分极越员工而言,公司的钱是突然没的。11月5日,极越开了一次全员会,CEO夏一平当着全体员工说:“我在公司一天,公司就不会没钱。”直到12月11日下午,员工们才知道自己11月的个税、社保、公积金都没有交上。但是对极越职级P9以上的
【系统架构核心服务设计】使用 Redis ZSET 实现排行榜服务
目录 一、排行榜的应用场景 二、排行榜技术的特点 三、使用Redis ZSET实现排行榜 3.1 引入依赖 3.2 配置Redis连接 3.3 创建实体类(可选) 3.4 编写 Redis 操作服务层  3.5 编写控制器层 3.6 测试 3.6.1 测试 addMovieScore
解码SEO优化,策略解析、实用技巧及未来趋势展望
深度解析网站SEO优化,涉及策略、技巧与未来趋势。本文全面探讨SEO优化方法,包括关键词研究、内容优化、外部链接建设等,并展望AI、移动优化等新兴趋势对SEO的影响。掌握SEO优化技巧,助力网站提升排名,实现网络营销目标。随着互联网的快
我校举办第二届大学生职业规划大赛
近日,我校在弘远楼一楼多功能大厅举行第二届大学生职业规划大赛(校赛),大赛邀请了贵州师范大学、贵州民族大学、贵州中医药大学及知名企业专家老师担任大赛评委。此次大赛紧扣“筑梦青春志在四方,规划启航职引未来”主题,旨在引导大学
Python Web开发的秘密武器:测试驱动方法让你的Web应用无懈可击!
《Python Web开发:测试驱动方法》主要介绍了使用Python进行Web开发时的测试驱动开发(TDD)方法,包括从基础的环境搭建、功能测试和单元测试的编写,到Web开发过程中的各种要素如布局、样式、表单验证、用户认证等的处理,以及高级话题如
服务器选择与使用经验分享:从国外到国内,云主机免费试用与VPS租用指南
新用户专享:「香港/美国云服务器」新购6折 低至9元/月!点击查看活动介绍>>>担任网站管理者,挑选服务器极为关键。然而,华为云服务器既有吸引人的优点,也有让人烦恼的缺点。这背后究竟隐藏着哪些值得我们重视的问题?国外服务器的往昔国
奥迪终于做到了,245马力7破百
横向线条整体造型非常符合国人的消费审美。新车前脸气场配备前脸格栅,运动感明显增强,两侧车灯造型颇为犀利,前后大灯点亮后显得很有精神气。腰线上扬的流线型的车身侧面营造出了一种蓄势待发之感,看起来运动感很强,有助于突出的造型。
乡城发电机租赁-实时反馈/全+镜+派+送
  乡城发电机租赁-实时反馈/全+镜+派+送  柴油发电机组出租是一种、可靠的电力解决方案,适用于各种紧急情况或临时电力需求。我们提供的柴油发电机组具有出的性能和可靠性,可提供稳定的电力输出。租赁过程简便,无需担心维护和修理问
相关文章
推荐文章
发表评论
0评