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

k8s(二)

文章目录

  • 前言
  • 一、K8S 中 Pod 网络通信的三种情况
    • 1.1 同一nod节点中
    • 1.2 同一pod中的容器
    • 1.3 不同node节点上
  • 二、Flannel方案
    • 2.1 Flannel UDP 模式通信流程
    • 2.2 Flannel VXLAN 模式通信流程
    • 2.3 Flannel Host-gw 模式通信流程
  • 三、calico
  • 四、Flannel与calico的区别
  • 总结

前言

本文主要讲解k8s集群中pod网络通讯原理

一、K8S 中 Pod 网络通信的三种情况

1.1 同一nod节点中


同一node的每个pod都有自己独立的ip并且在同一网段,当pod1尝试访问pod2时,访问会通过网卡docker0进行转发到pod2,最终实现通讯。

1.2 同一pod中的容器

在前一篇博客我们了解到了pod中可以有很多个容器,而同一个pod中的所有容器都在同一个命名空间中,因此就相当于两个容器在同一个虚拟主机上,可以直接通过本地ip进行访问。

1.3 不同node节点上

这种相当于跨主机进行通信,由于外部ip互相不认识,因此这种通讯不能直接访问,跨主机方式进行通讯有两种方案,一种是Flannel另一种是calico。

二、Flannel方案

flannel方案又分为三种模式

2.1 Flannel UDP 模式通信流程


举例:container1(pod1)访问container2(pod2),pod1会将自己的ip与要通讯的目标(pod2)ip进行打包,发给网关,网关(cni)通过网桥发送给node1节点的网卡(eth0),网卡中的Flannel0再将网卡的ip与对端node2的网卡ip打包进入数据包中形成UDP包,然后通过宿主机网卡eth0将数据帧发送给对端node节点,node节点收到包后层层解包,先是拆出node2的ip,发现是找自己的就会继续拆包,拆出pod2的ip,然后会将包转发给pod2,最后pod2发现是找自己的就会拆数据包,提取里面的数据,实现互通。

2.2 Flannel VXLAN 模式通信流程


原理:podA1到podB2,pod1将自己的ip与对端pod2的ip和数据打包,形成数据包发送给网卡,网卡通过虚拟网桥cni将数据帧发送给Flannel1,flannel1给原始数据包加外层封装再发给node1的网卡,nod1的网卡ens160将自己的网卡ip与对端node2的网卡ip写入数据包中,同时将vxlan头部也加入到数据帧中,最后通过物理网卡ens160和vxlan隧道将数据帧快速的发送给对端网卡ens160,对端收到后,进行解包,发现是找自己的就会继续解包,发现要找podB2,就会将数据包转发给podB2。
特点:
1、转发速度快,通过vxlan进行数据帧转发。(与UDP的区别)
2、需要进行打包、解包

2.3 Flannel Host-gw 模式通信流程

原理:PodA1(10.244.1.2,Node A 的 Pod 子网)要访问 PodB2(10.244.4.3,Node B 的 Pod 子网),数据包从 Pod 的eth0发出,通过veth转发到 Node A 的cni0网桥。cni0发现目标 IP(10.244.4.3)属于 “10.244.4.0/24” 子网,查 Node A 的路由表,找到一条路径通往pod2,Node A 的ens160(物理网卡)直接将数据包发送到 Node B 的ens160,Node B 的ens160收到数据包后,查自己的路由表,发现 “10.244.4.0/24” 是自己的 Pod 子网,于是将数据包转发到 Node B 的cni0网桥,cni0将数据包通过veth转发到 PodB2 的eth0,PodB2 收到数据。
核心特点
1、无封装开销,性能最高(因为是纯路由转发);
2、Node 必须处于同一个二层网络(不能跨网段转发)。

三、calico


举例:pod1ip:10.244.1.2 pod2ip:10.244.2.3
原理:pod1访问pod2,pod1位于node1节点中,pod2位于node2节点中,pod将数据写入数据包发送给pod1的网卡eth0,eth0再通过网桥将数据包发送给node1节点的网卡,node1查找路由规则,BGP为node1找出转发的最佳路径,node1通过自己的物理网卡将数据包发送到对端的node2网卡,node2查找路由表发现有pod2后,将包发给pod2。

Calico 的核心思想
把每一台 Node 当成一台路由器
不使用隧道
不修改原始数据包
通过 BGP 同步路由表
直接三层转发

四、Flannel与calico的区别

总结

本文主要讲解k8s集群中pod网络通讯原理,谢谢观看。

http://www.jsqmd.com/news/218604/

相关文章:

  • k8s(四)
  • 联想拯救者工具箱终极指南:5大核心功能深度解析与实战应用
  • 本地化部署更安全:企业敏感数据翻译用CSANMT开源方案
  • 30B 参数跑出 1T 性能 | 陈天桥代季峰团队大模型MiroThinker 1.5
  • TranslucentTB启动失败终极修复:3步彻底解决VCLibs依赖问题
  • java并发调用OCR API:多线程处理大批量图片识别任务
  • 手把手教程:零基础快速掌握Blender MMD插件安装与使用
  • AI翻译服务监控:关键指标与异常报警设置指南
  • 如何快速配置ViGEmBus虚拟手柄驱动:实现双平台控制器完美模拟的完整指南
  • LAV Filters终极使用指南:快速解决视频播放问题的简单教程
  • TranslucentTB启动失败:VCLibs组件缺失的完整修复指南
  • OCR技术趋势分析:2026年轻量级模型将成主流
  • 终极Python抢票脚本:3步搞定热门演唱会门票
  • 游戏画质优化工具深度解析:DLL版本管理与AI技术应用
  • 告别手动刷票时代:大麦抢票智能助手全攻略
  • AI翻译在医疗文献中的应用实践
  • DamaiHelper大麦抢票神器:Python自动化脚本带你告别手速烦恼
  • 智能翻译系统搭建:从模型选择到WebUI开发的完整流程
  • 百度网盘高速下载终极指南:轻松突破限速限制
  • Unity游戏自动翻译插件XUnity Auto Translator使用指南
  • 飞书文档批量导出终极指南:3分钟学会700+文档自动备份
  • LeagueAkari终极指南:免费快速掌握英雄联盟全功能辅助工具
  • 微信跨群消息智能流转:解放双手的自动化解决方案
  • B站视频下载专家DownKyi:从零开始掌握高效离线收藏技巧
  • LAV Filters视频解码器:新手也能轻松解决的播放问题终极方案
  • 5分钟高效掌握:DLSS Swapper游戏性能优化终极方案
  • TranslucentTB启动失败终极解决方案:3步诊断与修复指南
  • SillyTavern极致体验:解锁AI对话界面的无限潜能
  • 3MF格式终极指南:用Blender插件实现完美3D打印文件处理
  • 如何在15分钟内让游戏画质实现质的飞跃?