叶工好容2-云原生网络

news2024/11/15 17:25:41

前言

IT行业中网络技术本身就是最枯燥但又最复杂的一块,kebernetes用到的这些虚拟网络技术更是难上加难,许多知识点容易记混淆,或者说能背过概念但不清楚它出现的前因后果和应用场景,本篇博文会按照底层协议->上层技术->顶层框架的顺序来为大家好好分享下云原生网络的基本概念,帮助大家形成框架式的知识结构。

协议

二层和三层

二层(数据链路层):将数据封装在点对点协议的中通过互联网络发送。
三层(网络层):将数据包封装在附加的IP头中通过IP网络传送。
二层网络是直接通过MAC寻址,三层网络是通过IP寻址,要搞懂二层网络和三层网络的区别,只需要搞明白交换机路由器就行。
交换机:连入同一交换机的机器是直接通过MAC寻址的,直接发送“帧”,因为已经确定是对方的东西所以可以无脑发过去。
路由器:局域网自动分配IP,处理TCP/IP协议,根据IP地址寻址,局域网内机器对外共享同一个IP地址。
以上是较为概念性的解释,现在用白话再讲解一下。
目的不一样:交换机解决的是同层网络规模的平行扩展问题,路由器解决的是跨网络传输问题。
举个例子,宿舍10个人一起打Dota,如果你们只是自己局域网玩5V5,只需要购买一个具备10个接口的交换机即可;如果你们要开黑跟别人打,那交换机前必须加一个路由器帮你们把网络打通。
二层网络就是通过交换机组成的网络,网络中机器是直接互通的。 三层网络是通过路由器组成的网络,会引入子网的概念,而子网之间的互通就用到了路由技术。

TPC/IP协议

官方定义: 传输控制协议/网际协议,是指能够在多个不同网络间实现信息传输的协议簇。OK,看到“不同网络”四个字,就知道他是为了解决三层问题的。
核心协议:
TCP: 三次握手、传输、四次挥手,是一种可靠低效的传输。
UDP:客户端有多大胆网络有多大产,是一种不靠谱高效的传输。
TCP大家都了解,UDP需要多说几句。UDP在安全上存有很大问题。
洪流攻击:伪造大量小UDP包发往同一个目标随机端口,受害系统必须对流入数据进行分析以确定哪个应用服务请求了数据,溢出的UDP报文能使受害主机网络饱和。

技术

overlay网络

任何网络的底层不是二层网络就是三层网络,因为没有这个底层就不存在网络访问能力,kubernetes也不例外。但kubernetes因为自己的虚拟化技术对网络维护带来巨大的管理成本,所以干脆先把网络划分为两大层。底层叫underlay,就是上述的二层或三层网络,是真正负责传输且真实存在的物理网络;上层叫overlay,使用网络虚拟化在物理基础设施之上建立连接的逻辑网络,实现了控制平面与转发平面的分离。

其实不仅是kubernetes,整个云计算领域网络层的发展都离不开Overlay的功劳,而Overlay是依托SDN(Software Defined Network)技术来实现的,最常用的Overlay技术是VXLAN。

VXLAN

通过三层的网络来搭建虚拟二层网络的虚拟化隧道通信技术,底层原理是将二层以太网帧封装在UDP中,实现了看似直连的效果。
VTEP:隧道断点,是进行报文封包和解包操作的网络设备,是Overlay与Underlay联通的核心。
VNI:网络标识ID,每个Overlay中的租户对应一个VNI,一个租户代表一个虚拟机器或容器,租户内网络直通,租户间网络隔离。
Tunnel:VXLAN隧道,一个逻辑上的概念,或者说是想象中的概念。通过VXLAN技术让VNI双方看似搭建了一个单独的通信信道,但其实底层是UDP技术。

BGP

BGP用于在不同的自治系统(AS)之间交换路由信息。自治系统就是处于一个管理机构控制之下的路由器和网络群组.
优势:
1、使用TCP作为传输协议,提高了路由传输的可靠性;
2、可自定义路由汇总和使用路由惩罚实现路由的稳定性;
3、可支持英特网规模的网络。

eBPF

直接在内核层对网络流量做过滤和复制的技术,我曾经写过一篇博文详细介绍eBPF的由来,详见《BPF相关技术与发展史》 

以上都是具体的实现虚拟网络的技术,我们真正使用是需要依赖具体的技术框架。

框架

flannel

flannel的设计目的是为集群中的所有节点重新规划IP地址的使用规则,从而使得集群中的不同节点主机创建的容器都具有全集群“唯一”且“可路由的IP地址”,并让属于不同节点上的容器能够直接通过内网IP通信。

实现原理:
flannel以守护进程方式运行在node上,没有master节点的概念,所有的flannel对接etcd,由etcd做为存储和控制。集群中所有容器共享一个IP段,每个node使用其中一个小地址段,容器启动时向flannel注册申请一个本node中空闲IP。跨node容器间访问时采用VXLan隧道技术。

calico

Calico的功能更为全面,不仅提供主机和pod之间的网络连接,还涉及网络安全和管理。
Calico不基于overlay,而是基于BGP路由协议,所以没有封包解包的过程,CPU消耗和性能上要优于flanel。
calico支持3种模式:BIRD模式(两两互联);RR模式(路由反射器);IPIP模(多租户跨网互通)。

cilium

基于eBPF为Kubernetes提供基本的网络互连互通的能力,实现容器集群中包括Pod、Service等在内的基础网络连通功能。
依托eBPF,实现Kubernetes中网络的可观察性以及基本的网络隔离、故障排查等安全策略;
依托eBPF,突破传统主机防火墙仅支持L3、L4微隔离的限制,支持基于API的网络安全过滤能力。
Cilium有两种模式:叠加网络Overlay模式和直接本地路由模式,其实本质可参考flanel和calico,前者依赖隧道,后者依赖BPG。

CNI

网络框架有这么多,k8s是怎么对接它们的,换框架怎么办?这里需要引入一个概念:CNI(Container Network Interface)容器层和网络层之间的一个接口规范,相当于一个抽象层用于容器与网络的松偶,flannel、calico-、cilium它们都基于这个规范。

总结

云原生网络发展历程:overlay网络->BGP->eBPF,flannel->calico->cilium

目前对Kubernetes网络的认知也趋于一致。大致分为两大类,一类是Cluster IP,是一层反向代理的虚拟网络;一类是 Pod IP,是容器间交互数据的网络数据平面。
目前主流是calico,而且calico也开始支持eBPF,cilium还未流行的原因是内核要求太高,需要4.9.17以上,但cilium才是未来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业园区的智慧安监方案:AI视频边缘计算技术的应用场景剖析

一、方案背景 针对工业园区化工企业多且安全及环保等方面存在风险高、隐患多、精细化管控复杂的情况,需要全面整合并优化园区现有基础设施、系统平台等信息化资源,建立园区的智能化风险预警管理平台,利用信息化手段,增强园区安全…

Baklib知识库搭建平台产品操作手册

产品概述 Baklib是一款专业的知识库搭建平台,它帮助客户搭建内部知识库和对外帮助中心。在今天的信息时代,知识已经成为组织的核心竞争力,而Baklib正是为了帮助组织构建完整的知识体系,提高组织的核心竞争力而生。 Baklib具有以…

刷题之另类加法与走方格的方案数

目录 一、编程题 1.另类加法 2.走方格的方案数 二、选择题 一、编程题 1.另类加法 链接:另类加法_牛客题霸_牛客网 (nowcoder.com) 描述 给定两个int A和B。编写一个函数返回AB的值,但不得使用或其他算数运算符。 测试样例: 1,2 返回&am…

GitHub简单使用

一、安装git客户端(查看版本git --version): Linux:yum install -y git Mac:brew install git windows:https://git-scm.com/downloads 配置git(可通过git config --list查看配置的内容): git config --global user.name "用户名&qu…

计算机视觉——day89 Restormer:高效的高分辨率图像恢复变压器(CVPR简读)

Restormer:高效的高分辨率图像恢复变压器(CVPR简读) 1. Introduction3. Method4. 实验与分析5. 结论 Restormer: Efficient Transformer for High-Resolution Image Restoration 1. Introduction 摘要部分简要总结了一下当前transformer的广…

(附源码)计算机毕业设计Java对外汉语教学辅助平台

项目运行 🍅包售后,包调试,包讲解🍅 🍅获取方式1:文章末尾获取联系🍅 🍅获取方式2:点我进入,文章末尾获取联系🍅 🍅包售后,包调试,包讲…

SpringBoot 创建和使用

SpringBoot 创建和使用 1. 初识 SpringBoot Spring 的诞生是为了简化 java 程序的开发 , 而Spring Boot 的诞生是为了简化 Spring 程序开发. Spring boot 翻译以下就是"脚手架" , 有了脚手架就可以快速的开发和使用 Spring . 2. Spring Boot 优点 快速的集成框架…

【JSON】谷歌浏览器JSON可视化插件:JSON-Handle

摘要 : JSON-handle是一款对JSON格式的内容进行浏览和编辑,以树形图样式展现JSON文档,并可实时编辑。 今天我推荐一款chrome/Firfox下处理json的插件JSON-handle,这个应该是我用过最好最方便的了。 插件功能 实际开发工作中经常用到json数据&…

基于无线传感网络(WSN)的目标跟踪技术(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 无线传感器网络由于其自组织性、鲁棒性及节点数量巨大的特点,非常适合于目标跟踪。无线传感器网络中的移动目标跟踪实际上就是…

centerpoint论文和代码解读

目录 一、序论 二、论文结构 三、代码 论文地址: https://arxiv.org/pdf/2006.11275.pdf 代码地址:tianweiy/CenterPoint (github.com) 一、序论 centorpoint是一种anchor-free的方法,直接预测物体的中心点,然后直接回归其wh…

《微服务实战》 第四章 Spring Cloud Netflix 之 Eureka

前言 Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。 Spring Cloud 使用 Spring Boot 思想为 Eureka 增加了自动化配置,开发人员只需要引入相关依赖和注解,就能将 Spring Boot 构建的微服务轻松地与 Eureka 进行整合。 1、Eureka 两大组…

三维后处理与重建PACS源码,大容量图像存储 报告单多种模式及自定义样式

医学影像系统源码 三维后处理与重建PACS源码 医学影像系统由PACS系统、RIS系统组成,同时提供与HIS的接口(HL7或其他类型)。 主要功能介绍 信息预约登记 支持对患者、检查项目、申请医生、申请单据、设备等信息进行管理。且支持检查病人排…

SwiftUI中DatePicker学习

在界面开发中,经常要使用到DatePicker控件,如年月日,时分选择。 但我们还要修改它的显示方式,文字语言,及其他功能 先看下最简单的调用方法就是: State private var date Date()var body: some View {D…

STM32F10X--中断

中断 中断优先级数值越小,中断优先级越高 中断编程的顺序 1、使能的是外设,配置外设寄存器 2、配置中断优先级分组,在msic.h里面有中断优先级组分组函数 这个函数里面配置了SCB->AIRCR寄存器 3、配置NVIC寄存器,初始化NVIC…

可视化和回归分析星巴克咖啡在中国的定价建议

可视化和回归分析星巴克咖啡在中国的定价建议。星巴克的拿铁大杯Tall 在各国的价格。 Claude AI | 代码自动生成的数据可视化代码 选择Claude AI 而非 ChatGPT的理由是前者更懂中文​!具体可以参见我前面的两篇文章对比两者的中英文翻译的表现及使用安装等难易程度​…

2.SpringBoot运维实用篇

SpringBoot运维实用篇 ​ 基础篇发布以后,看到了很多小伙伴在网上的留言,也帮助超过100位小伙伴解决了一些遇到的问题,并且已经发现了部分问题具有典型性,预计将有些问题在后面篇章的合适位置添加到本套课程中,作为解…

做公有云服务,为什么对象存储不可或缺?

试问:公有云的竞争, 你觉得从什么时候开始白热化了? 【全球云观察 | 热点关注】对于这个问题,可谓仁者见仁智者见智。 在我看来,火山引擎还未推出全面的云服务之前,在国内的公有云领域&#x…

KingbaseES V8R6运维案例之---MySQL和KingbaseES字符串排序规则对比

案例说明: 相同数据排序后查询,在MySQL和KingbaseES下得到的排序顺序不一致,本案例从MySQL和KingbaseES的排序规则分析,两种数据库排序的异同点。适用版本: KingbaseES V8R6、MySQL 8.0 一、MySQL的排序规则1、排序规则…

各种预训练模型的理论和调用方式大全

诸神缄默不语-个人CSDN博文目录 本文主要以模型被提出的时间为顺序,系统性介绍各种预训练模型的理论(尤其是相比之前工作的创新点)、调用方法和表现效果。 最近更新时间:2023.5.10 最早更新时间:2023.5.10 BertRobe…

上海亚商投顾:沪指缩量调整跌超1% 新能源车产业链掀涨停潮

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 大小指数今日再度分化,沪指低开低走,午后一度跌超1.5%,创业板指则拉升涨超1%&a…