K8S中网络如何通信

news2024/9/30 23:33:29

Kubernetes 提出了一个自己的网络模型“IP-per-pod”,能够很好地适应集群系统的网络需求,它有下面的这 4 点基本假设:

  • 集群里的每个 Pod 都会有唯一的一个 IP 地址。
  • Pod 里的所有容器共享这个 IP 地址。
  • 集群里的所有 Pod 都属于同一个网段。
  • Pod 直接可以基于 IP 地址直接访问另一个 Pod,不需要做麻烦的网络地址转换(NAT)。

因为 Pod 都具有独立的 IP 地址,相当于一台虚拟机,而且直连互通,也就可以很容易地实施域名解析、负载均衡、服务发现等工作,以前的运维经验都能够直接使用,对应用的管理和迁移都非常友好。

CNI 为网络插件定义了一系列通用接口,开发者只要遵循这个规范就可以接入 Kubernetes,为 Pod 创建虚拟网卡、分配 IP 地址、设置路由规则,最后就能够实现“IP-per-pod”网络模型。

依据实现技术的不同,CNI 插件可以大致上分成“Overlay”“Route”和“Underlay”三种。

Overlay 的原意是“覆盖”,是指它构建了一个工作在真实底层网络之上的“逻辑网络”,把原始的 Pod 网络数据封包,再通过下层网络发送出去,到了目的地再拆包。因为这个特点,它对底层网络的要求低,适应性强,缺点就是有额外的传输成本,性能较低。

Route 也是在底层网络之上工作,但它没有封包和拆包,而是使用系统内置的路由功能来实现 Pod 跨主机通信。它的好处是性能高,不过对底层网络的依赖性比较强,如果底层不支持就没办法工作了。

Underlay 就是直接用底层网络来实现 CNI,也就是说 Pod 和宿主机都在一个网络里,Pod 和宿主机是平等的。它对底层的硬件和网络的依赖性是最强的,因而不够灵活,但性能最高。

Flannel最早是一种 Overlay 模式的网络插件,使用 UDP 和 VXLAN 技术,后来又用 Host-Gateway 技术支持了 Route 模式。Flannel 简单易用,是 Kubernetes 里最流行的 CNI 插件,但它在性能方面表现不是太好,所以一般不建议在生产环境里使用。

Calico是一种 Route 模式的网络插件,使用 BGP 协议(Border Gateway Protocol)来维护路由信息,性能要比 Flannel 好,而且支持多种网络策略,具备数据加密、安全隔离、流量整形等功能。

Cilium是一个比较新的网络插件,同时支持 Overlay 模式和 Route 模式,它的特点是深度使用了 Linux eBPF 技术,在内核层次操作网络数据,所以性能很高,可以灵活实现各种功能。在 2021 年它加入了 CNCF,成为了孵化项目,是非常有前途的 CNI 插件。

此文章为7月Day25学习笔记,内容来源于极客时间《Kubernetes入门实战课》,推荐该课程。

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

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

相关文章

WT588F02B-8S 血压计语音芯片如何选型?低功耗语音ic方案

一、血压计语音提示方案需求设计? 血压计语音提示方案的需求设计是为了实现在测量血压过程中,通过语音提示用户操作指引、测量结果和健康建议等功能。以下是血压计语音提示方案需求设计的主要需求: (1)测量操作引导 …

QT---day1(QT的介绍、常用类及组件)

代码: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置窗口尺寸this->setFixedSize(600,500);//设置窗口标题this->setWindowTitle(&q…

【MySQL】库和表的操作

目录 一、库的操作 1.1创建数据库 1.2创建数据库案例 1.3字符集和校验规则 (1)查看系统默认字符集以及校验规则 (2)查看数据库支持的字符集 (3)查看数据库支持的字符集校验规则 (4&…

万向节死锁

要理解万向节死锁的产生原因,首先要理解欧拉角变换,欧拉角变换是基于最初始的坐标进行变换而非变换后的坐标进行变换。 欧拉角变换需要空间中的三个角(即变换后每个轴的偏移量),另外还有每个轴的变换顺序。值得注意的…

SpringSecurity6--认证和授权的原理

SpringSecurity6–认证和授权的原理,项目gitee地址在文章末尾。 文章目录 一、Spring Security简介二、Spring Security框架中认证流程中几个非常重要的类1、 FilterChainProxy2、 AbstractAuthenticationProcessingFilter3、 UsernamePasswordAuthenticationFilter…

打开Android device monitor

X:\assdk\tools monitor.bat 双击 更新到最新

如何优雅地下载huggingface上模型,以llama2模型下载为例

背景 由于llama2模型的下载需要经过官方的授权,这就需要登陆hugging face的,对模型页面进行申请。等待审核通过后,才能够下载。如果在单纯用 git lfs 的方式进行下载,需要输入账号和密码。为了更快速地进行下载,既能够…

Java刷题记录(小白边刷边学)7.25

Java刷题记录(小白边刷边学)7.25 1 最长公共前缀 题目分析: 首先一定需要创建一个数组存储最长公共前缀的值 为了方便比较,先把strs的第一个字符串放进新的数组中即strs[0] 因此比较时从strs【1】开始 数字j需要小于两个被比较的字符串的长度…

视频超分新方法--助力实现高清wav2lip数字人

文章目录 前言一、解决方案详解总结前言 ` 随着人工智能的不断发展,数字人技术也越来越重要,很多人都开启了学习模型 但是使用神级模型wav2lip生成的数字人嘴部不清晰怎么办。 很影响使用效果,接下来教大家如何优化这个问题,如下图所示: 一、解决方案详解 因为wav2lip是…

Centos8+Jenkins+微信小程序前端自动发布体验版

文章目录 **一、 实现:****二、项目:****三、环境配置:****四、步骤:****五、遇到的问题** 一、 实现: jenkins打通微信开发平台,自动上传代码 二、项目: 微信小程序原生开发 三、环境配置&…

PowerPoint如何修改“默认保存路径”?

很多时候,我们做好PPT后都要保存,一般会保存在创建PPT的文件夹里,或者另外设置保存的路径。 如果经常需要制作PPT,又不想每次都要重新选择保存位置,我们可以创建或修改“默认保存路径”,这样每次关闭PPT后…

集群及LVS简介、LVSNAT模式原理、LVSNAT模式配置、LVSDR模式原理、LVSDR模式配置、LVS错误排查

day01 day01集群LVS配置LVS NAT模式配置LVS NAT模式步骤LVS DR模式配置LVS DR模式 集群 将很多机器组织到一起,作为一个整体对外提供服务 集群在扩展性、性能方面都可以做到很灵活 集群分类: 负载均衡集群:Load Balance高可用集群&#x…

wangeditor编辑器配置

vue项目中使用编辑器&#xff0c;轻量&#xff0c;操作栏选取自己需要的 官网地址&#xff1a;用于 Vue React | wangEditor 使用在vue项目中引入 npm install wangeditor/editor --savenpm install wangeditor/editor-for-vue --save 封装成组件使用 <template>&…

[LitCTF 2023]作业管理系统

打开环境后是一个登录框&#xff0c;还以为是sql注入&#xff0c;但是尝试之后没有回显&#xff0c;尝试一下弱密码爆破咯 爆出都是admin 进入后可以看到很多选项&#xff0c;都是可以访问的 &#xff0c;说明这道题还有很多解决方法 我们可选择上传文件&#xff0c;没有任何过…

STM32CubeIDE(外部中断)

目录 一、配置时钟树 二、配置IO 三、配置中断优先级 四、当发生外部中断时会进入中断服务函数 一、配置时钟树 二、配置IO 三、配置中断优先级 四、当发生外部中断时会进入中断服务函数

Stable Diffusion本地化部署,实现免费的AI绘制图片

利用Claude进行问答&#xff0c;首先我们询问如何进行AI画图&#xff1a; 我们得到了答案&#xff0c;这里我们问问第三个的网址&#xff1a; 由于在线的都需要收费和限制次数&#xff0c;所以问问有没有本地化的项目&#xff1a; 这里我们得到了答案&#xff0c;前面两个链…

flutter开发实战-jsontodart及 生成Dart Model类

flutter开发实战-jsontodart及 生成Dart Model类。 在开发中&#xff0c;经常遇到请求的数据Json需要转换成model类。这里记录一下Jsontodart生成Dart Model类的方案。 一、JSON生成Dart Model类 在开发中经常用到将json转成map或者list。通过json.decode() 可以方便 JSON 字…

mysql主从复制 读写分离

目录 1.主从复制类型 2.主从复制工作流程(原理) 3.mysql三种同步方式 4.案例 1.主从复制类型 基于语句的复制 基于行的复制 混合类型的复制 2.主从复制工作流程(原理) 两日志 三线程 收到数据主放入二进制日志中 从服务器通过io线程发送请求进入主的dump线程…

element实现角色管理页面

用的element&#xff0c;Tree 树形控件来实现的 <template><div class"p-t-20"><div class"table-bg"><Title title"角色名称"><span>{{role.roleName}}</span></Title><div class"menu-lis…

数学建模-主成分分析

有很多变量并且变量之间有很强的关联关系时使用&#xff0c;解决多重共线性问题没必要进行降维信息损失后然后进行评分&#xff0c;TOPSIS可以直接利用所有数据。指标有各种类型&#xff0c;没有进行正向化