CNCF CNI 学习笔记
如何使用 CNI
1 首先在每个结点上配置 CNI 配置文件(/etc/cni/net.d/xxnet.conf),其中 xxnet.conf 是某一个网络配置文件的名称;
2 安装 CNI 配置文件中所对应的二进制插件;
3 在这个节点上创建 Pod 之后,Kubelet 就会根据 CNI 配置文件执行前两步所安装的 CNI 插件
4 在节点运行的 Daemon 进程学习到集群所有 Pod 的 IP 地址及其所在节点信息
CNI 插件选择
类型
- Overlay: Flannel-vxlan、Calico-ipip、Weave.
- 路由模式 flannel-hostgw、sriov
- Underlay 模式中容器和宿主机位于同一层网络,两者拥有相同的地位。容器之间网络的打通主要依靠于底层网络
功能需求
1 安全需求:NetworkPolicy
2 需要集群外的资源与集群内的资源互联互通
3 K8s 的服务发现与负载均衡的能力:Underlay 模式的插件可能流量无法走到宿主机所在的命名空间,因此也无法应用 kube-proxy 在宿主机配置的规则
环境限制
1 虚拟化环境(例如 OpenStack)中的网络限制较多,overlay可能是唯一选择
2 物理机环境,Underlay 或者路由模式的插件
3 公有云环境
- 尽量选择公有云厂商提供的 CNI 插件
- Aliyun
- Terway 插件
- Aliyun
性能需求
- Pod 的创建速度:Overlay 或者路由模式的网络插件占优
- Pod 的网络性能:Underlay 或者路由模式的 CNI 插件
开发
二进制的 CNI 插件去配置 Pod 网卡和 IP 地址
1 给 Pod 准备一个网卡:一个 “veth” 这种虚拟网卡,一端放到 Pod 的网络空间,一端放到主机的网络空间
2 Pod 分配 IP 地址:唯一的 IP
3 配置 Pod 的 IP 和路由
- 3.1 IP 地址配置给 Pod 的虚拟网卡
3.2 Pod 的网卡上配置集群网段的路由
3.3 宿主机上配置到 Pod 的 IP 地址的路由
Daemon 进程去管理 Pod 之间的网络打通
1 CNI 在每个节点上运行的 Daemon 进程会学习到集群所有 Pod 的 IP 地址及其所在节点信息,监听 K8s APIServer
2 网络进行打通
- 2.1 Daemon 会创建到整个集群所有节点的通道
2.1.1 Overlay 隧道、阿里云上的 VPC 路由表、或者是自己机房里的 BGP 路由
2.2 所有 Pod 的 IP 地址跟上一步创建的通道关联起来
2.2.1 Linux 路由、fdb 转发表或者OVS 流表
2.2.2 fdb 转发表是 forwarding database 的缩写,就是把某个 Pod 的 IP 转发到某一个节点的隧道端点上去(Overlay 网络)
负责事情
1 给Pod配置网卡和IP等网络配置
2 配置Network Policy
3 打通Pod间网络的访问
CNCF CNI 学习笔记相关推荐
- CNCF RuntimeClass学习笔记
RuntimeClass 容器运行时的演进过程 Kubernetes 正式开源,Docker 是当时唯一的.也是默认的容器运行时. Kubernetes v1.3:Rkt 合入 Kubernetes ...
- Kubernetes学习笔记之Calico CNI Plugin源码解析(二)
女主宣言 今天小编继续为大家分享Kubernetes Calico CNI Plugin学习笔记,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算" ...
- Kubernetes学习笔记之Calico CNI Plugin源码解析(一)
女主宣言 今天小编为大家分享Kubernets Calico CNI Plugin的源码学习笔记,希望对正在学习k8s相关部分的同学有所帮助: PS:丰富的一线技术.多元化的表现形式,尽在" ...
- Kubernetes学习笔记-未整理
Kubernetes学习笔记 标签:Kubernetes 学习笔记 原文:https://github.com/wtysos11/NoteBook/blob/master/微服务/Kubernetes ...
- 管理节点连接不上sql节点_华为云IEF智能边缘平台十万边缘节点管理技术深度解读学习笔记...
华为云智能边缘平台IEF首席架构师张琦在3月27-28日举办的华为开发者大会2020(Cloud)上,深度解读了十万边缘节点的管理技术,以及如何通过云原生技术和边缘计算结合,构建边缘计算实战场景中所需 ...
- Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量
原文链接:Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量 在 Kubernetes 中运行大规模以 Web 为中心的工作负载,最关键的需求之一就是在 L7 ...
- 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)
长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...
- Linux性能优化实战学习笔记:第四十六讲=====实战分析
Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...
- 尚硅谷云原生学习笔记(76~143集)
笔记列表: 尚硅谷云原生学习笔记(1-75集) 尚硅谷云原生学习笔记(76~143集) 尚硅谷云原生学习笔记(144~172集) 尚硅谷云原生学习笔记(173~XXX集) 目录 76.为什么用kube ...
最新文章
- Kubernetes 中 设置pod不部署在同一台节点上
- opengl加载显示3D模型obj类型文件
- [poj2446]Chessboard
- 通过Python实现马尔科夫链蒙特卡罗方法的入门级应用
- jzoj6305-最小值【线段树,dp,双端链表】
- 5000元性价比高的笔记本_2018性价比笔记本电脑品牌推荐 5000左右笔记本性价比推荐...
- django2.x报错No module named 'django.core.urlresolvers'
- 如何真正让小程序,WebRTC和APP互通连麦直播
- 科学发明家特斯拉传记
- ie11浏览器For win7 x86 官方下载 V9600 官方版
- 新标准的发布关联的液相色谱-三重四极杆质谱技术的联用
- 美国低速自动驾驶在公共交通应用详解 | 自动驾驶系列
- 普惠联接,让人类诗意地栖居在大地上
- python不好找工作怎么办信用卡_利用python进行信用卡欺诈检测
- java memcmp_【转】 memcmp源码实现
- jenkins下载插件失败的解决方案
- Java生成SSL证书
- OSA账户新出政策,个人SOHO该如何开离岸账户?
- android studio 使用CMAKE,在terminal终端里敲cmake命令
- nginx的rewrite中last和break 及 permanent和redirect的介绍