k8s网络类型
k8s中的通信模式:
- pod内部之间容器与容器之间的通信。
在同一个pod中的容器共享资源和网络,使用同一个网络命名空间。可以直接通信的。
- 同一个node节点之内,不同pod之间的通信。
每一个pod都有一个全局的真实的IP地址,同一个node直接的不同pod可以直接使用对方pod的IP地址进行通信。
Pod1 和pod2 是通过docker0的网桥来进行通信。
- 不同node节点的和不同pod之间如何通信。
Cni的插件:
cni是一个标准接口,用于容器运行时调用网络插件,配置容器网络,负责设置容器的网络命名空间,IP地址,路由等等参数。
Fiannel插件:功能就是让集群之中不同节点的docker容器具有全集群唯一的虚拟ip地址。
overlay网络:在底层物理网络的基础上,创建第一个逻辑的网络层,二层+三层的集合 二层是物理网络。三层是逻辑上的网络层。
overlay网络也是一种网络虚拟化的技术。
Flannel支持的数据转发方式:
- udp模式。默认模式,应用转发,配置简单。但是性能最差。
- Vxlan,基于内核转发,也是常用的网络类型(小集群都是用这个)
- host-gw(性能最好,但是配置麻烦。)
Udp:基于应用转发,flannel提供路由表,flannel封装数据包,解封装
Node都会有一个flannel的虚拟网卡。 基于应用层,用户
Vxlan:使用的就是overlay的虚拟隧道通信技术。二层加三层的模式。
Vxlan:flannel提供路由表,内核封装解封装。
Flannel1.1接口用的vxlan。
Flannel作用:
每个发向容器的数据包进行封装,vxlan通过vtep打包数据,由内核封装数据包---->转发到目标node节点。到达目标节点,还有一个解分装的过程,再发送目标pod.性那能是有一定的影响。
Calico插件:
采用直接路由的方式。BGP路由。不需要修改报文,统一直接通过路由表转发路由表会很复杂,运行维护的要求比价高。
BGP模式的特点:交换路由信息的外部网关协议,可以链接不同放入节点,node节点可能不是一个网段,BGP实现可靠的,最佳的,动态的路由选择。自动识别相邻的路由设备。
Calico不使用overlay,也不需要交换,直接通过虚拟路由实现。每一台虚拟路由都通过BGP转发。
核心组件:
Felix:也是运行在主机的一个个pod,一个进程,k8s daemonset的方式部署的pod
Daemont set 会在每个node节点部署相同的pod,后台的运行方式。
负载宿主机上插入路由规则,维护calico需要的网络设备。网络接口管理,监听。路由等等。
BGP client:bird BGP客户端,专门负责在集群中分发路由规则的信息。每一个节点都会有一个BGP client。
BGP协议广播方式通知其他节点,分发路由的规则,实现网络互通。
Etcd:保存路由信息,负责网络元数据的一致性,保证网络状态的一致性和准确。
Calico的工作原理:
路由表来维护每个pod之间的通信。
创建好pod之后,添加一个设备calico veth pair设备。
虚拟网卡:veth pair是一对设备,虚拟的以太网设备。
一头连接在容器的网络命名空间,
另一头链接宿主机的网络命名空间 calico
IP地址分配:veth pair连接容器的部分给容器分配一个IP地址,这个IP地址是唯一标识,宿主机也会被 veth pair分配calico网络的内部IP地址。和其他节点上的容器进行通信。
Veth设备,容器发出的IP地址通过veth pair设备到宿主机,宿主机根据路由规则的下一跳地址发送到网关(目标宿主机)
数据包到达目标宿主机,veth pair 设备,目标宿主机也是根据路由规则,下一跳地址,转发到目标容器。
在ipip模式:会形成一个tunnel隧道。数据包封装都在tunnel隧道内部打包。封装:宿主机IP 容器内部的IP地址。
在k8s中常用的网络类型:flannel和calico
Flannel:配置简单,功能简单,基于overlay叠加网络实现。在物理层的网络在封装一个虚拟的网络
Vxlan是虚拟三层网络
Udp是默认模式
Vxlan最多的模式 vni + ip 进行转发,flannel提供路由表,内核封装解封装
host-gw
由于封装和解封装的过程,对数据传输的性能会有影响,没有网络策略配置的功能udp(协议) 默认网段:10.244.0.0/16
Calico:功能强大,基于路由表进行转发,没有解封装和封装的过程。具备网络策略的配置能力,但是路由表维护起来复杂。
模式:ipip BGP
BGP:通过ip 路由表的前缀来实现目标主机的可达性。
对比ipip模式。BGP模式没有隧道,BGP模式下,pod的数据包直接通过网卡发送到目的地。
Ipip的隧道:隧道进行数据包的封装IPV4----IPV4.
简单的小集群:flannel
扩容,配置网络策略:calico
相关文章:

k8s网络类型
k8s中的通信模式: pod内部之间容器与容器之间的通信。 在同一个pod中的容器共享资源和网络,使用同一个网络命名空间。可以直接通信的。 同一个node节点之内,不同pod之间的通信。 每一个pod都有一个全局的真实的IP地址,同一个n…...

Seata 中封装了四种分布式事务模式,分别是: AT 模式, TCC 模式, Saga 模式, XA 模式,
文章目录 seata概述Seata 中封装了四种分布式事务模式,分别是:AT 模式,TCC 模式,Saga 模式,XA 模式, 今天我们来聊聊seata seata 概述 在微服务架构下,由于数据库和应用服务的拆分,…...

为什么设计制造行业需要数据加密?
设计制造行业是一个涉及多种技术、工艺、材料和产品的广泛领域,它对经济和社会的发展有着重要的影响。然而,随着数字化、智能化和网络化的发展,设计制造行业也面临着越来越多的数据安全风险,如数据泄露、数据篡改、数据窃取等。这…...

查看ios app运行日志
摘要 本文介绍了一款名为克魔助手的iOS应用日志查看工具,该工具可以方便地查看iPhone设备上应用和系统运行时的实时日志和奔溃日志。同时还提供了奔溃日志分析查看模块,可以对苹果奔溃日志进行符号化、格式化和分析,极大地简化了开发者的调试…...

怎么卸载macOS上的爱思助手如何卸载macOS上的logitech g hub,如何卸载顽固macOS应用
1.在App Store里下载Cleaner One Pro (注意,不需要订阅付费!!!白嫖基础功能就完全够了!!!) 2.运行软件,在左侧目录中选择“应用程序管理”,然后点…...

侦探IP“去推理化”:《名侦探柯南》剧场版走过26年
2023年贺岁档,柯南剧场版的第26部《黑铁的鱼影》如期上映。 这部在日本狂卷票房128亿日元的作品,被誉为有史以来柯南剧场版在商业成绩上最好的一部。 但该作在4月份日本还未上映前,就于国内陷入了巨大的争议。 试映内容里,灰原…...
图论 经典例题
1 拓扑排序 对有向图的节点排序,使得对于每一条有向边 U-->V U都出现在V之前 *有环无法拓扑排序 indegree[], nxs[];//前者表示节点 i 的入度,后者表示节点 i 指向的节点 queue [] for i in range(n):if indege[i] 0: queue.add(i)// 入度为0的节…...

Oracle数据updater如何回滚
1.查询update语句执行的时间节点 ; select t.FIRST_LOAD_TIME, t.SQL_TEXT from v$sqlarea t where to_char(t.FIRST_LOAD_TIME) > 2023-03-19/17:00:00 order by t.FIRST_LOAD_TIME desc;开启表的行迁移 alter table test enable row movement;3.回滚表数据到…...
redis开启密码验证
开启密码验证 (1)配置文件中设置 redis.conf文件里面配置requirepass参数,redis认证密码:foobared,然后重启redis服务 ./redis-cli 127.0.0.1:6379> 127.0.0.1:6379> 127.0.0.1:6379> CONFIG SET requi…...

一种删除 KubeSphere 中一直卡在 Terminating 的 Namespace--KubeSphere Logging System的简单方法
文章目录 一、问题提出二、删除方法1,获取kubesphere-logging-syste的详细信息json文件2,编辑kubesphere-logging-system.json3,执行清理命令 三、检查结果 一、问题提出 在使用 KubeSphere 的时候发现有一个日志服务KubeSphere Logging Sys…...

Flink1.17实战教程(第七篇:Flink SQL)
系列文章目录 Flink1.17实战教程(第一篇:概念、部署、架构) Flink1.17实战教程(第二篇:DataStream API) Flink1.17实战教程(第三篇:时间和窗口) Flink1.17实战教程&…...

nest定时任务调用service报错
报错: ERROR [Scheduler] ValidationError: Using global EntityManager instance methods for context specific actions is disallowed. If you need to work with the global instances identity map, use allowGlobalContext configuration option or fork() i…...

[Angular] 笔记 11:可观察对象(Observable)
chatgpt: 在 Angular 中,Observables 是用于处理异步数据流的重要工具。它们被广泛用于处理从异步操作中获取的数据,比如通过 HTTP 请求获取数据、定时器、用户输入等。Observables 提供了一种机制来订阅这些数据流,并可以在数据到达时执行相…...

【论文阅读】Resource Allocation for Text Semantic Communications
这是一篇关于语义通信中资源分配的论文。全文共5页,篇幅较短。 目录在这里 摘要关键字引言语义通信资源分配贡献公式符号 系统模型DeepSC TransmitterTransmission ModelDeepSC Receiver 语义感知资源分配策略Semantic Spectral Efficiency (S-SE&#…...

VMware16 pro 安装openEuler-23.09-x86_64,详细操作流程+详图。
1.环境: win11, vmware16 pro, openEuler-23.09-x86_64-dvd.iso 社区版openEuler 23.09官方下载地址: openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、…...
Mybatis 动态 SQL - script,bind,多数据库支持
script 在使用注解的映射器类中使用动态SQL时,可以使用<script>元素。例如: Update({"<script>","update Author"," <set>"," <if testusername ! null>username#{username},</if&g…...

Scikit-Learn线性回归(一)
Scikit-Learn线性回归一 1、线性回归概述1.1、回归1.2、线性1.3、线性回归1.4、线性回归的优缺点1.5、线性回归与逻辑回归2、线性回归的原理2.1、线性回归的定义与原理2.2、线性回归的损失函数3、Scikit-Learn线性回归3.1、Scikit-Learn库3.2、Scikit-Learn线性回归API3.3、Sci…...
Mybatis 动态 SQL - choose, when, otherwise
有时候我们并不希望所有的条件都生效,而是只想在多个选项中选择一个。类似于Java中的switch语句,MyBatis提供了 <choose>元素。 让我们使用上面的例子,但现在如果提供了标题,则只搜索标题;如果提供了作者&a…...

idea Spring Boot项目使用JPA创建与数据库链接
1.pom.xml文件中添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>…...

redis基础知识
学一点,整一点,基本都是综合别人的,弄成我能理解的内容 https://blog.csdn.net/liqingtx/article/details/60330555 https://blog.csdn.net/u014723137/article/details/125658176 https://redis.io/commands/ 官方命令 📌导航小助…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...