如何使用 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 插件

性能需求

  1. Pod 的创建速度:Overlay 或者路由模式的网络插件占优
  2. 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 学习笔记相关推荐

  1. CNCF RuntimeClass学习笔记

    RuntimeClass 容器运行时的演进过程 Kubernetes 正式开源,Docker 是当时唯一的.也是默认的容器运行时. Kubernetes v1.3:Rkt 合入 Kubernetes ...

  2. Kubernetes学习笔记之Calico CNI Plugin源码解析(二)

    女主宣言 今天小编继续为大家分享Kubernetes Calico CNI Plugin学习笔记,希望能对大家有所帮助. PS:丰富的一线技术.多元化的表现形式,尽在"360云计算" ...

  3. Kubernetes学习笔记之Calico CNI Plugin源码解析(一)

    女主宣言 今天小编为大家分享Kubernets Calico CNI Plugin的源码学习笔记,希望对正在学习k8s相关部分的同学有所帮助: PS:丰富的一线技术.多元化的表现形式,尽在" ...

  4. Kubernetes学习笔记-未整理

    Kubernetes学习笔记 标签:Kubernetes 学习笔记 原文:https://github.com/wtysos11/NoteBook/blob/master/微服务/Kubernetes ...

  5. 管理节点连接不上sql节点_华为云IEF智能边缘平台十万边缘节点管理技术深度解读学习笔记...

    华为云智能边缘平台IEF首席架构师张琦在3月27-28日举办的华为开发者大会2020(Cloud)上,深度解读了十万边缘节点的管理技术,以及如何通过云原生技术和边缘计算结合,构建边缘计算实战场景中所需 ...

  6. Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量

    原文链接:Contour 学习笔记(一):使用 Contour 接管 Kubernetes 的南北流量 在 Kubernetes 中运行大规模以 Web 为中心的工作负载,最关键的需求之一就是在 L7 ...

  7. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  8. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  9. 尚硅谷云原生学习笔记(76~143集)

    笔记列表: 尚硅谷云原生学习笔记(1-75集) 尚硅谷云原生学习笔记(76~143集) 尚硅谷云原生学习笔记(144~172集) 尚硅谷云原生学习笔记(173~XXX集) 目录 76.为什么用kube ...

最新文章

  1. Kubernetes 中 设置pod不部署在同一台节点上
  2. opengl加载显示3D模型obj类型文件
  3. [poj2446]Chessboard
  4. 通过Python实现马尔科夫链蒙特卡罗方法的入门级应用
  5. jzoj6305-最小值【线段树,dp,双端链表】
  6. 5000元性价比高的笔记本_2018性价比笔记本电脑品牌推荐 5000左右笔记本性价比推荐...
  7. django2.x报错No module named 'django.core.urlresolvers'
  8. 如何真正让小程序,WebRTC和APP互通连麦直播
  9. 科学发明家特斯拉传记
  10. ie11浏览器For win7 x86 官方下载 V9600 官方版
  11. 新标准的发布关联的液相色谱-三重四极杆质谱技术的联用
  12. 美国低速自动驾驶在公共交通应用详解 | 自动驾驶系列
  13. 普惠联接,让人类诗意地栖居在大地上
  14. python不好找工作怎么办信用卡_利用python进行信用卡欺诈检测
  15. java memcmp_【转】 memcmp源码实现
  16. jenkins下载插件失败的解决方案
  17. Java生成SSL证书
  18. OSA账户新出政策,个人SOHO该如何开离岸账户?
  19. android studio 使用CMAKE,在terminal终端里敲cmake命令
  20. nginx的rewrite中last和break 及 permanent和redirect的介绍

热门文章

  1. Android P的APP适配总结,让你快人一步
  2. 快速选择算法及C++代码
  3. excel如何快速选择一列数据
  4. html向上符号怎么打,html空格符号怎么打
  5. 全国一级计算机证书可以入户东莞吗,哪些证书可以达到入户东莞的资格
  6. assets路径 资源uri
  7. 解析网页后门与网页挂马原理
  8. bootstrap4 常用样式类名 (供自己参考)
  9. 【优化】1288- 分享我的webpack优化经验,首屏渲染从9s到1s
  10. jupyter notebook内核报错解决