k8s中的整体架构 ,pod含义,服务类型,网络通讯等

kubernetes 设计架构 kubernetes 设计架构 Kubernetes集群包含有节点代理kubelet和Master组件(API,Scheduler,etc),一切都基于分布式的存储系统。下面是kubernetes的架构图 kubernetes节点 在这张系统架构图中,我们把服务氛围运行在工作节点上的服务和组成集群级别控制板的服务 kubernetnes节点有运行应用容器必备的服务,而这些都是受Master的控制... 阅读详情

k8s中的整体架构 ,pod含义,服务类型,网络通讯等

k8s整体架构

在这里插入图片描述
上图中,较大的红框是k8s中的master节点,负责接受请求,调度任务,管理节点等,较小的红框中的是node节点,是负责具体干活的节点;
在master节点中,
scheduler是调度器,任务过来之后,要通过scheduler把任务分散到不同的node中。它先将请求发送给api server,api server再将请求发送给etcd;
replication controller(RC)是控制器,负责控制副本数量满足期望值,一旦超出或者不足,RC会删除pod或者新建pod;
api server: 所有服务访问统一入口;scheduler和RC可以在本地生成一些缓存,这样不需要每次都和api server进行交互,环节api server的压力。
etcd是一个可信赖的分布式键值存储数据库,负责和api server进行交互,存储类似拓扑结构,服务发现等一些关键信息。它天生支持集群方式搭建,raft协议,方便扩展,
在node节点中,
kubelet会与CRI(container容器,runtime运行环境,interface接口)交互,实现容器的生命周期管理
kube proxy 实现pod与pod之间的访问,负载均衡等的功能;

以上是k8s的核心功能组件,还有一些其他插件,例如coreDNS,dashboard,ingress controller,federation,prometheus,ekl等,见下方图片的说明:
在这里插入图片描述

pod内部和pod之间的通讯

k8s网络模型假定了所有pod都在一个可以直接连通的扁平的网络空间中。这个看似简单的操作实际上需要底层网络进行复杂的布局。
同一个pod内多个容器之间的通讯是通过lo(localhost+端口号,回环网卡)
各个pod之间的通讯:overlay network
pod和service之间的通讯:各个节点的iptables规则(lvs)

flannel是CoreOS团队针对k8s设计的一个网络规划服务。它的功能是让集群中不同节点主机创建的docker容器都具有全集群唯一的虚拟ip地址,并且这些ip地址之间建立一个覆盖网络(overlay network),通过这个覆盖网络,将数据包在各个目标容器之间进行传输。

在这里插入图片描述
在k8s各个服务器上会启动一个flanneld守护进程,它会创建一个flannel0的网桥,网桥flannel0会收集网关docker0转发的数据包。docker0会把自己的ip分配到不同的pod上(web app2 ,web app1等),那么同一个服务器上的不同pod就可以通过docker0来进行网络通讯;那么不同主机的pod之间是如何通过pod的ip进行通讯的呢?

在这里插入图片描述
例如web app2要向backend进行转发,首先docker0会判断sourceIP 10.1.15.2/24和destIP 10.1.20.3/24不是同一个网段的,那么就会把数据包发送到自己的网关docker0上,docker0上会有钩子函数把数据包发送到flannel0,flannel0上面会有很多的路由表记录(从etcd获取),找到这个数据包应该发送到哪一个主机。之后会把数据包发送到flanneld守护进程中,flanneld对数据包进行封装(见上图右上角),采用udp的方式进行转发。
数据包会被相应主机截获,被flanneld进行解析,之后通过flannel0和docker0转发,最终达到目标pod backend中。

在这里插入图片描述
flannel将可分配的ip地址资源端存储在etcd中,防止为pod分配ip的时候发生重复;
维护pod节点路由表,这样才能知道podIP和真实主机IP的对应关系,实现pod之间扁平化的通讯方式。

在这里插入图片描述

下面再来说说PodIP,PodIP是k8s分配给pod的IP,每个pod各不相同,到都在一个大的网断内,各个pod可以互通互联,并且集群的节点也可以通过PodIP访问到各个pod的服务。为了理解它的原理,我们先看下面这张图:
在这里插入图片描述
上图中,cni0和flannel.1网络设备都是flannel网络插件生成的虚拟网络设备,使用cni0是一个bridge设备,flannel.1是一个vxlan设备,cni0连接着该节点上的各个pod以及flannel.1。而flannel.1的另一头连着flanneld进程,所有进入flannel.1的流量都会交给flanneld进程进行处理,而flanneld会把数据包3层(IP层)及以上的包封装到一个udp包中,然后查找系统配置,找到数据包需要发送到的节点的IP,然后发送给对端节点的指定udp端口(5678),这个技术就是vxlan,可以将非同一网段的设备通过公网组成同一网段(内网)。
在这里插入图片描述

k8s的组件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

K8s架构|全面整理K8s的架构介绍 K8S架构与核心技术介绍 参考文献: https://jimmysong.io/kubernetes-handbook/concepts/concepts.html https://www.infoq.cn/article/kubernetes-and-cloud-native-applications-part01/ 文章目录K8S架构与核心技术介绍1. 架构图1.1 整体结构图1.2 组件间的协议1.3 master与node架构图1.4 分层架构图2. K8s核心技术概念2.1 API对象2.2 阅读详情

相关推荐

手把手教你用ADS仿真FMMT417雪崩三极管,搞定射频脉冲源设计

本文详细介绍了如何使用ADS仿真工具设计基于FMMT417雪崩三极管的射频脉冲源。从器件选型、SPICE模型导入到电路设计与优化,提供了一套完整的实操方案,特别适合射频脉冲设计的初学者。通过级联设计和实测验证,帮助工程师快速掌握雪崩电路的应用技巧,提升射频脉冲源的设计效率。

weixin_30905981的博客 487

master节点部署pod_k8s实践(三):pod常用操作

一、 pod简介1. pod概览Pod是kubernetes中你可以创建和部署的最小也是最简单位。一个Pod代表着集群中运行的一个进程。Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能由一个或者多个容器组合在一起共享资源在Kubrenetes集群中Pod有如下两种使用方式:一...

weixin_40002238的博客 1453

中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总

中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2...

weixin_30691871的博客 3万+

【K8S】K8S架构及相关组件

K8S,全称Kubernetes,是一个开源的容器部署和管理平台,由Google开发,后捐献给云原生计算基金会(CNCF)。K8S提供了容器编排、容器运行时、以容器为中心的基础设施编排、负载平衡、自我修复机制和服务发现等功能。K8S的架构采用主从设备模型(Master-Slave架构),即由Master节点负责集群的调度、管理和运维,Slave节点作为集群中的运算工作负载节点。

黄小黄的博客 4915

802.1AS-2011_Gptp协议栈

GPTP(广义时钟同步协议,或IEEE 802.1AS)的基本功能是确保局域网中所有的时钟都同步,并提供时间信息。这种协议用于在局域网中进行同步和时间对齐,其目的是确保网络中各设备的时间一致性。

weixin_49041703的博客 2541

Rijndael密码算法

一 什么是Rijndael Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。 Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。 二 Rijndael的加...

实践求真知 1万+

K8S 架构实现及工作原理

K8S 架构实现及工作原理介绍

youzhouliu的博客 1万+

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2452

【Kubernetes 002】Pod的概念和网络通讯方式

上一节我们了解了k8s的整体架构,这一节我们来深入了解下最基本的工作单元Pod,以及多台机器上的Pod之间的通信方式。 我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。 文章目录Pod是什么Pod的分类控制器Replication Controller/ReplicaSet/DeploymentHPA(Horizont...

T型人小付的博客 748

1.4 点云数据获取方式——结构光相机

与此同时,利用相机从特定角度捕捉变形后的图案,基于三角测量原理,通过精确计算相机与投影仪之间的几何关系以及图案的变形程度,就能准确计算出物体表面各点的三维坐标,从而获取高精度的三维点云数据。在高端制造业中,对于微小零部件的尺寸测量和缺陷检测,结构光相机能够提供极其精确的数据,确保产品质量符合严格的标准。时序编码:这类相机通过序列投射多幅不同图案,如格雷码、相移条纹等,通过对这一系列图案的时间序列进行解码分析,就能够获取亚像素级精度的三维信息,其单点误差能够控制在≤0.1mm,展现出极高的测量精度。

qq625924821的博客 924

农业无人机:无人机图像处理_(8).遥感图像处理与分析

遥感图像处理与分析在农业无人机技术中具有重要作用,通过图像预处理、特征提取、分类与分割、目标检测等技术,可以实现对农田的精细管理、作物监测、病虫害预测等应用。本节详细介绍了这些技术的基本概念、常用方法和具体实现,希望对您在农业无人机图像处理方面的学习和应用有所帮助。

zhubeibei168的博客 1335

k8s网络通信

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

H945572的博客 1681

【数字孪生与仿真技术】07:焊装生产线虚拟调试与PLC代码生成全流程实战:从数字孪生到智能优化

摘要:本文系统阐述焊装生产线虚拟调试与PLC代码自动化生成的完整技术体系,结合工业4.0背景下的智能制造需求,构建从离散事件仿真、机器人运动规划到PLC控制逻辑生成的全流程解决方案。通过MATLAB/Simulink平台实现焊装线物流仿真优化,采用遗传算法进行缓冲区容量配置,结合Stateflow状态机设计PLC控制逻辑,并利用PLC Coder生成西门子S7-1500兼容的ST代码。某车企焊装线应用案例显示,虚拟调试技术使调试周期缩短75%,OEE提升13.4%,年节约成本超$420万。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1829

续上篇k8s,k8s中的网络通信与调度

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

D2961953033的博客 1366

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

一文了解K8s-概念详解

一、基本概念 (一) Why Container? 在这篇文章中我们介绍了Docker的基本概念以及入门教程。在这里我们聊一下为什么我们需要使用容器。通过下面的图进行对比。 在传统的项目部署时,使用物理机或者VM(虚拟机)来直接安装。如左图所示,在内核的上层是运行环境(需要一系列手动安装或使用脚本主动安装),上层运行着一个一个独立的APP。对于VM来说,它是可以整体迁移的,但是这个迁移还是比较重,主要体现在VM是整个操作系统的镜像实例,在做扩容和迁移时需要大费周章。 转到右图,容器是一个更轻量级的概念,他

qq_33219517的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Kubernetes中的网络通信

fdb这段命令输出是关于Linux网络桥接(bridge)的转发数据库FDB, Forwarding Database)的信息。在Linux中,桥接是一种将多个网络接口连接在一起,使它们能够像单个网络接口一样工作的技术。FDB用于存储关于哪些MAC地址可以通过哪些端口(或接口)到达的信息arp -nip rflannel纯三层的转发中间没有任何的NAT和overlay转发效率最好Calico仅依赖三层路由可达。Calico较少的依赖性使它能适配所有VMContainer白盒或者混合环境场景。

huaz_md的博客 1297

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

k8s 的网络通信

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

weixin_68398469的博客 1172

搞定 docker & k8s,这 2 套视频就够了

点击关注公众号【Java 充电社】,帮你挑选更多高质量的学习视频,每天带你充电,如果本文对你有帮助,点个赞、帮忙分享下,感谢您的支持!今天给大家精选了 2 套 docker 和 k8s 的...

田维常 1523

k8s中的通信与调度

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

weixin_71016778的博客 1158

Kubernetes精讲之网络通信与调度

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

m2282475145的博客 1446

编排之神--Kubernetes中的网络通信-Flannel插件及Calico插件演练

Kubernetes网络通信架构解析:本文详细介绍了Kubernetes的网络通信机制,重点分析了Flannel和Calico两种主流网络插件的工作原理。Flannel通过VXLAN隧道技术实现跨主机容器通信,支持多种后端模式;Calico采用纯三层路由方案,提供高性能网络转发和灵活的网络策略管理。文章还对比了两种插件的特性和适用场景,包括Flannel的简单易用性和Calico的策略控制优势,为Kubernetes网络方案选型提供了技术参考。

Mine:19829102887@163.com 可以一起学习! 1218

k8s下的网络通信与调度

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

weixin_68256171的博客 1018

k8s的网络通信

纯三层的转发,中间没有任何的NAT和overlay,转发效率最好。Calico 仅依赖三层路由可达。Calico 较少的依赖性使它能适配所有 VM、Container、白盒或者混合环境场景。

xujiangyan_的博客 1042

Kubernetes基础概念及组件、POD、网络通信方式

Kubernetes基础概念及组件 基础概念 Kubernetes(简称 K8S) 的出现是容器化技术发展的必然结果,一些流行的开源容器编排工具有 Docker Swarm、Apache Mesos、Kubernetes 等,但是在发展过程中 Kubernetes 现在已经成为了容器编排领域上的一个标准了。 Kubernetes 是 Google 团队发起的一个开源项目,它的目标是管理跨多个主...

qq_54584596的博客 119

Kubernetes笔记(一) Kubernetes 集群架构

1. Kubernetes 集群架构 Kuberetes 本身是由一系列组件组成的容器编排系统,每个组件各司其职从而实现容器的调度、部署以及自动伸缩等功能。 Kubernetes 整体的架构图 1.1 Master (Control Plane)节点 集群中的控制节点,为单数数量,运行集群中的控制面板逻辑的相关组件。kube-system namespace 下的资源都会在这一个或者多个Master 节点上运行,且默认会有node-rule.kubernetes.io/master:NoSchedule

艾希射日 1689
上一篇: redis五种数据结构特点
下一篇: redis ziplist结构和运用
code_feien
博客等级 码龄7年 71粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值