当前位置: 首页 > news >正文

【K8s】整体认识K8s之集群的pod之间的通信

先来说说K8s中最流行的两个网络插件Calico和Flannel。他们的目标都是,让K8s的pod不通过NAT直接通信。

NAT(网络地址转换):将内部私有的IP地址转换为对外共有的IP地址

Calico网络插件。

Calico是一个三层虚拟网络方案,三层指的是OSI模型中的网络层,他将每个节点都当作路由器,节点的每个pod当作一个终端,分配一个ip,pod内的容器共享这个ip,该IP来自Calico配置的IP池每个节点路由器通过BGP学习生成路由规则,从而将不同节点上的pod连接起来。

Flannel网络插件。

采用Overlay网络(隧道网络),他在物理网络之上又构建了一个虚拟网络。Pod的数据包被封装在主机的数据包中进行传输。他会为每个节点分配一个子网段,节点的pod在这个子网段中获取ip地址。数据转发使最常用的是VXLAN(virtual extensible local area network虚拟可扩展局域网)。比如podA(node1)向podB(node2)发送数据时,node1的flanneld进程会将数据包重新封装到一个UDP数据包中,这个新数据包的源地址是node1的ip,目标地址是node2的ip,网络设备只能看到结点间的UDP通信,无需关心podIP,node2收到后。由flanneld解封装,再将原始数据包发送给podB。

集群的pod之间的通信

 K8s通过一个扁平的网络模型以及CNI容器网络接口来为pod提供网络服务,每个pod都有一个独一无二的IP,依赖这个ip通信,为实现这个目标,k8s依赖以下下关键机制:

核心网络模型。K8s规定了所有的pod都处于一个扁平的网络空间中,这意味着不需要NAT任何一个pod都可以直接通过IP地址访问另一个pod,不管他们在不在同一个节点。

实现方式。CNI它是一个可插拔的网络接口,k8s本身不直接实现这个网络模型,而是定义了这套标准接口,它将具体的网络实现委托给了第三方的网络插件,比如calico、 flannel当一个pod被创建的时候,它会自动调用已经安装的CNI插件来完成以下工作。

  1. 首先为pod分配一个IP地址,从一个预定义的IP池中分配一个唯一的IP。
  2. 然后设置网络连接                                                                                                              1)、同一个节点的pod通信:CNI插件,它会创建一个虚拟的网桥,并将这个节点内的所有的pod都连接到这个网桥上,让它们可以像连接在同一个交换机上一样通信。                        2)、跨节点的pod通信,这是最关键的部分,CNI插件通过不同的技术来实现。最常见的两种,第一种覆盖网络overlay network,比如flannel、 weave net,它会在各个节点之间创建一个虚拟的隧道,如VXLAN,它将一个节点上pod发出的数据包封装起来,再通过节点网络传送给目标pod的所在的节点,再解包,并且交给目标pod,就像在物理网络之上建立了一个虚拟的网络高速公路。另一种是是路由,比如Calico,它不会创建隧道,它是直接配置节点的路由表,每个节点都会被告知要去往某个pod,应该把数据包发给哪个节点,这种方式避免了封包和解包的开销,性能更高。
http://www.dtcms.com/a/356664.html

相关文章:

  • LSM6DS3姿态芯片和LIS2MD磁力计芯片数据读取(stm32)
  • 千年智造,一触即发 耐达讯自动化Profibus集线器如何让HMI触摸屏在工业4.0中“点石成金“?
  • 嵌入式Linux驱动开发 - 并发控制机制
  • 【视频讲解】R语言海七鳃鳗性别比分析:JAGS贝叶斯分层逻辑回归MCMC采样模型应用
  • 嵌入式Linux驱动开发 - 新字符设备LED驱动
  • Go Vendor 和 Go Modules:管理和扩展依赖的最佳实践
  • Redis vs Elasticsearch:核心区别深度解析
  • Vue 项目首屏加载速度优化
  • Mysql系列--11、使用c/c++访问mysql服务
  • ViennaCL并行异构库介绍和使用
  • Pinterest自动化 “Pin“得高效
  • SpringMvc下
  • Oracle SQL 性能调优的基石:深入解读与驾驭执行计划
  • 商家协同生态下的复购革命:跨店收益如何激活12%增量消费
  • 【新启航】3D 逆向抄数的工具技术与核心能力:基于点云处理的扫描设备操作及模型重建方法论
  • 【活动回顾】“智驱未来,智领安全” AI+汽车质量与安全论坛
  • OpenEuler部署LoganaLyzer
  • 【开题答辩全过程】以 基于SpringBootVue的智能敬老院管理系统为例,包含答辩的问题和答案
  • 黑芝麻智能与云深处科技达成战略合作,共推具身智能平台全球市场应用
  • 基于互补素数与最小素因子性质的哥德巴赫猜想证明-陈墨仙
  • ROS2学习打卡表
  • 外卖大战之后,再看美团的护城河
  • vue3获取子组件
  • PostgreSQL15——子查询
  • 采用机器学习的苗期棉株点云器官分割与表型信息提取
  • GPT-Realtime架构与Token成本控制深度解析
  • Linux/UNIX系统编程手册笔记:基本概念
  • Redis面试题--介绍下Redis几种集群模式
  • Shell 秘典(卷二)——号令延展秘术 与 流程掌控心法・if 天机判语篇精解
  • 力扣p1011在D天送达包裹的能力 详解