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

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

  • k8s整体架构
  • pod内部和pod之间的通讯
  • k8s的组件

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的组件

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

轻量级开源服务器Tomcat本地部署并将网页发布到公网远程访问

目录 1.前言 2.本地Tomcat网页搭建 2.1 Tomcat安装 2.2 配置环境变量 2.3 环境配置 2.4 Tomcat运行测试 2.5 Cpolar安装和注册 3.本地网页发布 3.1.Cpolar云端设置 3.2 Cpolar本地设置 4.公网访问测试 5.结语 前些天发现了一个巨牛的人工智能学习网站,通…

PSINS中的各类更新代码解析

1、姿态更新 更新原理 微分方程 因为离散化比较复杂,所以采用矩阵链转换 更新也就是找到前后时刻的关系。下面是推导逻辑, PSINS中的涉及到的代码 需要注意的是叫增量采用的增量时刻不同,n系下是用【T/2,T】的姿态表示【T,2T】的姿态变化…

跟着LearnOpenGL学习11--材质

文章目录 一、材质二、设置材质三、光的属性四、不同的光源颜色 一、材质 在现实世界里,每个物体会对光产生不同的反应。 比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。 有些物体反…

火热报名中·2024北京国际人工智能展览会(世亚智博会)

随着科技的飞速发展,人工智能已经成为当今世界最为炙手可热的话题之一。作为科技领域的热点,人工智能不仅引领着科技创新的方向,更在各个领域中发挥着越来越重要的作用。为了更好地展示人工智能领域的最新成果和前沿技术,2024北京…

Neo4j 5.15 windows安装

1,什么是图数据库? 着社交、电商、金融、互联网那个等快速发展,现实社会织起了一张庞大复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系呈集合 数级增长,急需一种支持海量复杂数据关系…

Multi-Drone based Single Object Tracking with Agent Sharing Network阅读笔记

Multi-Drone based Single Object Tracking with Agent Sharing Network阅读笔记 Abstract 搭载摄像头的无人机可以从更广阔的视角在空中动态跟踪目标,与静态摄像头或地面移动传感器相比具有优势。然而,由于外观变化和严重遮挡等多种因素,使…

2015年第四届数学建模国际赛小美赛B题南极洲的平均温度解题全过程文档及程序

2015年第四届数学建模国际赛小美赛 B题 南极洲的平均温度 原题再现: 地表平均温度是反映气候变化和全球变暖的重要指标。然而,在以前的估计中,在如何界定土地平均数方面存在一些方法上的差异。为简单起见,我们只考虑南极洲。请建…

数字大师:数据可视化助力企业智慧成本管理

在当今竞争激烈的商业环境中,企业要想取得成功,不仅需要不断创新,还需要高效管理资源,降低成本。数据可视化作为一项强大的工具,为企业提供了更清晰、更直观的经营洞察,从而帮助企业实现成本的有效控制和节…

美股60年牛熊周期启示,紧扣周期特点和产业趋势才是王道

2023年,美股在地缘政治时间频发、美联储加息以及银行危机中扶摇直上,标普500指数迄今已攀升超过24%,令投资者感到惊讶。回顾美股近60年历史,美股今年的表现也并不算特别。 《XM平台新用户注册最新操作流程(2023年&…

stm32项目(15)——基于stm32的LED闪烁试验protues仿真

1.功能设计 使用stm32的软件定时器功能,控制PA口的两个LED灯轮流闪烁。 仿真图如下所示 2.设计思路 首先是LED灯的GPIO口初始化,设置为输出模式。 然后是定时器的初始化 最后 在中断服务函数里面,对LED进行闪烁操作 3.软件介绍 protues …

vsetvli/vsetivli/vsetvl

转载自:【《RISC-V “V“ Vector Extension Version 1.0》阅读笔记】_risc v的rvv-CSDN博客 上述指令的作用:快速配置 vl 和 vtype 中的值以匹配应用程序需求; vset{i}vl{i} 指令根据参数设置 vtype 和 vl CSR,并将 vl 的新值写入…

element步骤条<el-steps>使用具名插槽自定义

element步骤条使用具名插槽自定义 步骤条使用具名插槽: <el-steps direction"vertical" :active"1"><el-step><template slot"description">//在此处可以写你的插槽内容</template>/el-step> </el-steps>步骤…

LeetCode-环形链表问题

1.环形链表&#xff08;141&#xff09; 题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统…

【前端技术】Vite vs Webpack

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

Linux:查询当前进程或线程的资源使用情况

目录 一、/proc/[PID]/下的各个文件1、proc简介2、/proc/[PID]/详解 二、通过Linux API获取当前进程或线程的资源使用情况1、getrusage2、sysinfo3、times 在工作中&#xff0c;我们排除app出现的一些性能/资源问题时&#xff0c;通常要先知道当前app的资源使用情况&#xff0c…

基于ssm小区物业管理系统论文

摘 要 如今的时代&#xff0c;是有史以来最好的时代&#xff0c;随着计算机的发展到现在的移动终端的发展&#xff0c;国内目前信息技术已经在世界上遥遥领先&#xff0c;让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#x…

Flink 输出至 Redis

【1】引入第三方Bahir提供的Flink-redis相关依赖包 <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> <dependency><groupId>org.apache.bahir</groupId><artifactId>flink-connector-redis_2.11</arti…

奔骝三千六百五

奔骝三千六百五 2013年12月26日奔骝定位成立&#xff0c;至今整整十年&#xff0c;三千六百五十天。这是一段极短暂又漫长的时光&#xff0c;短暂到犹如一颗流星在宇宙的长河里连一粒尘埃的空间都占据不到&#xff0c;倏忽之间就走过了&#xff1b;漫长到好像等待冬天过去的北…

禁止选择当天及以后的时间

这篇文章编辑与2023.12.26&#xff0c;所以可以选择的时间为包含2023.12.25以及之前的时间 实现思路&#xff1a;1、获取当天时间的年月日&#xff0c;然后默认时分秒为23&#xff1a;59&#xff1a;59&#xff1b; 2、获取到时间转为时间戳减去 一天&#xff08;1*24*3600*10…

阅读2023:让每一天都徜徉于书海之中

阅读&#xff0c;是中华民族的优良传统&#xff0c;也是创新发展的永续动力。2023年初&#xff0c;教育部、中央宣传部等八部门印发《全国青少年学生读书行动实施方案》&#xff0c;推动青少年学生阅读深入开展&#xff0c;促进全面提升育人水平。 阅读不仅是文化传承的重要手…