浅谈k8s中cni0和docker0的关系和区别
最近在复习k8s网络方面的知识,查看之前学习时整理的笔记和文档还有过往自己总结的博客之后发现一个问题,就是在有关flannel和calico这两个k8s网络插件的文章和博客中,会涉及到cni0和docker0这两个网桥设备,但是都没有明确说明他们俩之间的关系,有的甚至将两者混为一谈,这也是我之前的学习当中所忽略掉的问题,这次发现之后我疯狂查阅资料和认真思考后,后对两者有了如下的总结和浅析:
首先在Kubernetes的flannel网络下,并不是用docker0来作为网桥,而是通过一个CNI接口来替代docker0,它在宿主机上的默认名字叫cni0。
以Flannel的vxlan模式为例,其在Kubernetes中的工作流程不变,只是其中的docker0网桥替换为cni0网桥了,其流程如下:

而在命令行中通过route -n可以看出cni0和docker0并不是一个设备:
通过brcte show命令也可以查看该node节点下的网桥设备有哪些,对应的虚拟网卡都有哪些:
而在k8s的calico网络下并没有使用cni网桥模式,因此无论是IPIP模式还是BGP模式都查不到对应的cni0网桥,只有docker0网桥设备,如下所示:
在IPIP模式下查看路由配置:

在BGP模式下查看路由配置:

由此可见,cni0和docker0都属于网桥设备,但完全不是一个东西不是一回事,一个是基于docker的网桥设备,一个是基于k8s所创建的网桥设备,希望该篇文章能够在k8s网络的学习当中帮助到大家,如需转载请标明出处,谢谢
浅谈k8s中cni0和docker0的关系和区别的更多相关文章
- 浅谈HTTP中GET和POST请求方式的区别
浅谈HTTP中GET和POST请求的区别 HTTP认知: HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议.HTTP的底层是TCP/IP.所以GET和POST的底层也是TCP/IP,也 ...
- 浅谈mysql中varchar(m)与char(n)的区别与联系
mysql建表长度的限制 在mysql建表时,出现以下报错信息: 错误一:行大小过大,所使用的表这种类型的最大的行大小,不算BLOB类型,是65535.(这是我翻译的) 原因是MySQL在建表的 ...
- 浅谈javascript中stopImmediatePropagation函数和stopPropagation函数的区别
在事件处理程序中,每个事件处理程序中间都会有一个event对象,而这个event对象有两个方法,一个是stopPropagation方法,一个是stopImmediatePropagation方法,两 ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 转【】浅谈sql中的in与not in,exists与not exists的区别_
浅谈sql中的in与not in,exists与not exists的区别 1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...
- 浅谈iOS中的userAgent
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
- 浅谈JavaScript中的闭包
浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...
随机推荐
- 如何通过前后端交互的方式制作Excel报表
前言 Excel拥有在办公领域最广泛的受众群体,以其强大的数据处理和可视化功能,成了无可替代的工具.它不仅可以呈现数据清晰明了,还能进行数据分析.图表制作和数据透视等操作,为用户提供了全面的数据展示和 ...
- WordPress CVE-2022-4230复现分析
前言 开始CVE审计之旅 WP Statistics WordPress 插件13.2.9之前的版本不会转义参数,这可能允许经过身份验证的用户执行 SQL 注入攻击.默认情况下,具有管理选项功能 (a ...
- kali使用apt-get update 出现数字签名失效
kali使用apt-get update 出现数字签名失效 下载签名:wget archive.kali.org/archive-key.asc 安装签名:apt-key add archive-ke ...
- CSS样式第四篇
针对现在网站的图片过大问题,可以用相应的工具进行压缩,并且可对图片进行切割处理. 1.如果一个页面的图片过大,可以对其切割,代码<img src="1.jpg">&l ...
- 如何修改npm包源码后,重新npm包的时候能是修改后的版本
肯定是clone一份到gitHub啦 保存一份修改后的npm包到自己的私有库 npm 安装 git 仓库的方式 npm install <git remote url> 例如 npm in ...
- 一次glide内存泄漏排查分析
glide是一款非常优秀的图片加载框架,目前很多项目在使用.提供了非常方法,在此,笔者就不一一列举了,可以到官网查找. 目前项目在做内存排查,因为是车机项目,之前开发的时候没有注意内存方面的问题(车机 ...
- 用Java 实现一个异步任务 可终止,可中断,可继续功能
在 Java 中实现一个异步任务可以使用多线程和线程池技术,同时需要考虑终止.中断和继续等功能.下面展示一个简单的示例代码,实现异步任务的终止.中断和继续等功能: import java.util.c ...
- 远程协助软件哪个好,IT远程支持用什么软件
软件行业做售后支持,有时候需要远程控制客户电脑以实现远程协助,远程解决客户问题. IT远程支持用什么软件比较好?这个我们可以逐个分析下. 一.QQ远程 一看就不专业,的确也不专业.QQ远程协助可以实现 ...
- windows 10安装python2.7
一.官网下载 1.百度搜索"python"或者点击这个网址下载https://www.python.org/downloads/release/python-2716/ pytho ...
- Machine Learning - 梯度下降
一.梯度下降:目的是为了寻找到最合适的 $w$ 和 $b$ ,让成本函数的值最小 \[w = w - α\frac{\partial J(w,b)}{\partial w} \] \[b = b - ...