如何使用 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. Beta阶段总结博客(麻瓜制造者)
  2. 网络空间安全Windows系统命令行学习笔记
  3. 田志刚:企业知识库如何跟Google、百度竞争?
  4. 【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )
  5. 036_CSS导航条
  6. Ant Design Pro 2.0/umijs站点配置到非站点根目录下处理
  7. 拓端tecdat|R语言对股票风险“溃疡指数”( Ulcer Index)曲面图可视化
  8. wince 播放器 最终版本
  9. Google Map MarkerCluster 点聚合使用简介
  10. pytest tox.ini使用
  11. SpringBoot的幕后推手,Java后端知识体系
  12. verilog 中的可综合与不可综合
  13. 程序员除了代码还应该有什么
  14. 中国液冷数据中心市场发展研究
  15. 同步以太网-SyncE介绍
  16. python基础(一):python简介
  17. 理解性能的奥秘——应用程序中慢,SSMS中快(4)——收集解决参数嗅探问题的信息
  18. 关于 Swiper 的坑——只有3.3.1的非压缩版正常,非常奇怪
  19. 300+零售CIO大咖齐聚杭州 他们聊了什么?
  20. 打印机更换感光鼓单元k_感光鼓更换技法_维修技术

热门文章

  1. 程序员减肚子的小运动
  2. springboot 纯洁的微笑
  3. MYSQL-主键索引与二级索引
  4. 火锅店日销售情况可视化
  5. 【软件测试】测试人,生活不止眼前的测试,还有诗和远方......
  6. 女生学习大数据专业未来前景怎么样
  7. 《Web前端设计与开发-HTML+CSS+JavaScript+HTML 5+jQuery》-漫步时尚广场代码-2
  8. 腾讯首款区块链游戏开始预约,主打区块链+AR
  9. 刻录光盘的方方面面和诀窍
  10. Android项目集成高德地图定位功能