k8s创建pod加入容器_K8S架构原理及其工作流程

cf108f915f5be2d7d11cc3c8d81e5d96.png

K8S

容器编排系统

容器编排系统需要满足的条件:

  1. 服务注册,服务发现
  2. 负载均衡
  3. 配置、存储管理
  4. 健康检查
  5. 自动扩缩容
  6. 零宕机

K8S整体架构图

5f926f4673fdf9c535d54ba52f402105.png

K8S整体架构

Kubernetes采用主从分布式架构,包括Master(主节点)、Worker(从节点或工作节点),以及客户端命令行工具kubectl和其它附加项。

K8S Master

3212b35a720e5ea5b1b532a6d71c2bac.png

Master架构图

etcd保存了整个集群的状态,CoreOS提供(用户期望状态)。K/V存储,只能存储Api Server中支持的数据范式存储;

Api Server提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;

controller负责维护集群的状态,比如故障检测、自动扩展、滚动更新等(确保用户期望状态与实际运行状态一致);

scheduler负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上,pod是调度的最小单位;

K8S Node

ee74db3b5774ab9365a9f7073b7e8add.png

Node架构图

kubelet:会监控Api Server上的资源变动,若变动与自己有关系,kublet就去执行任务;定期向master会报节点资源使用情况。

kube-proxy:实现service的抽象,为一组pod抽象的服务提供统一接口并提供负载均衡。

POD创建过程

8555475ea963d80b1580162f7d46804c.png

POD创建时序图

1、用户提交创建POD请求

2、API Server 处理用户请求,存储Pod数据到Etcd

3、Schedule通过和 API Server的监听机制,查看到新的pod,尝试为Pod绑定Node

4、过滤主机:调度器用一组规则过滤掉不符合要求的主机,比如Pod指定了所需要的资源,那么就要过滤掉资源不够的主机

5、主机打分:对第一步筛选出的符合要求的主机进行打分,在此阶段,调度器会考虑一些整体优化策略,比如把一个Replication Controller的副本分布到不同的主机上,使用最低负载的主机等

6、选择主机:选择得分最高的主机,进行binding操作,结果存储到Etcd中

7、kubelet根据调度结果执行Pod创建操作:绑定成功后,会启动container, docker run, scheduler会调用API Server的API在etcd中创建一个bound pod对象,描述在一个工作节点上绑定运行的所有pod信息。运行在每个工作节点上的kubelet也会定期与etcd同步bound pod信息,一旦发现应该在该工作节点上运行的bound pod对象没有更新,则调用Docker API创建并启动pod内的容器

8、POD创建完成

K8S各组件工作流程

dd088e35af5b4cec4f3f341a7dfdabd4.png

工作流程

①运维人员向kube-apiserver发出指令(我想干什么,我期望事情是什么状态)

②api响应命令,通过一系列认证授权,把pod数据存储到etcd,创建deployment资源并初始化。(期望状态)

③controller通过list-watch机制,监测发现新的deployment,将该资源加入到内部工作队列,发现该资源没有关联的pod和replicaset,启用deployment controller创建replicaset资源,再启用replicaset controller创建pod。

④所有controller被创建完成后.将deployment,replicaset,pod资源更新存储到etcd。

⑤scheduler通过list-watch机制,监测发现新的pod,经过主机过滤、主机打分规则,将pod绑定(binding)到合适的主机。

⑥将绑定结果存储到etcd。

⑦kubelet每隔 20s(可以自定义)向apiserver通过NodeName 获取自身Node上所要运行的pod清单.通过与自己的内部缓存进行比较,新增加pod。

⑧kubelet创建pod。

⑨kube-proxy为新创建的pod注册动态DNS到CoreOS。给pod的service添加iptables/ipvs规则,用于服务发现和负载均衡。

⑩controller通过control loop(控制循环)将当前pod状态与用户所期望的状态做对比,如果当前状态与用户期望状态不同,则controller会将pod修改为用户期望状态,实在不行会将此pod删掉,然后重新创建pod。

后记

本文是对K8S架构原理及其工作流程的一个汇总,可能会不好理解,但是在学习K8S过程中,这个是跳不过去的,让我们一起努力吧!

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

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

相关文章

每日一笑 | 程序员的招租公告

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

无需羡慕,今后.NET开发想拿30k也可以毫不费劲!

7月将至,半年已逝,码农枯燥而简单的生活中,时间过得飞快!错过金三银四的小伙伴,转头发现金九银十不远了。业内公认的,涨薪最快的方式还是跳槽!年初跳槽季,腾讯、阿里、百度、京东、小…

移动计算机怎么开机密码,win7忘记开机密码解决办法

设置电脑开机密码后我们每次开启电脑都需要输入开机密码才可以进入系统桌面进行使用,如果没有密码的话系统是无法开启的,这就保证了我们电脑使用的隐私性,但是并不是说所有的电脑都适合设置密码,部分场景下的电脑设置密码的话有可…

双缓冲技术

2019独角兽企业重金招聘Python工程师标准>>> package com.gavin; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas; import android.graphics.Paint; import andro…

java 8 排序_一遍记住 8 种排序算法与 Java 代码实现

☞ 程序员进阶必备资源免费送「21种技术方向!」 ☜作者:KaelQ,www.jianshu.com/p/5e171281a3871.直接插入排序经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,然后构成一个有…

中小学将逐步推广编程教育;勒索病毒攻击部分政府部门和医院;国内外药企密集调价;微软要给Win7用户推死亡通知,这就是今天的大新闻...

今天是3月14日农历二月初八今天星期四看天气预报接下来几天又是雨季大家记得出门带伞下面是今天的大新闻中小学要逐步推广编程教育(北京日报)13日教育部公布的《2019年教育信息化和网络安全工作要点》透露,今年将启动中小学生信息素养测评&am…

开源高性能RISC-V处理器“香山”问世

今日,“香山”开源高性能RISC-V处理器问世。据行业人士介绍,这是计算所牵头,多家企业联合开发的开源处理器核,源代码和所有设计文档都开源。从PPT的内容上看,“香山”基于Chisel语言开发,支持多核&#xff…

《PowerShell 3.0 Advanced Admin handbook》已于今日上市

工作之余与埃及MVP Sherif Talaat合著的全英文书籍《PowerShell 3.0 Advanced Admin handbook》于今日由Packt Publishing正式出版上市,本书基于PowerShell3.0版本,历时8个月,从2012年8月16日Packt Publishing发邮件找我们约稿,经…

计算机 运行命令,教你电脑运行命令

很多朋友在网上询问电脑运行命令怎么使用,小编整理了这篇关于电脑运行命令怎么使用的图文使用教程,赶紧前来学习一下吧!电脑运行命令如何使用?是网友讨论的一大话题,为此,小编特地给大家带一种办法&#xf…

每日一笑 | 男朋友整天沉迷游戏怎么办...?

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

html设置样式不继承_web前端入门到实战:css的核心原理分为优先级原则与继承原则两大部分...

css原理:1.优先原则>后解析的内容会覆盖之前解析的内容(所谓解析就是读取的css样式)2.继承原则>嵌套里面的标签拥有外部标签的某些样式,子元素可以继承父元素的属性1》优先原则针对选择器:a.同一个选择器从上往下…

开源 免费 java CMS - FreeCMS1.3-数据对象-mail

2019独角兽企业重金招聘Python工程师标准>>> 下载地址:http://code.google.com/p/freecms/ mail 从FreeCMS 1.2 开始支持 在使用互动信件相关标签时,标签会封装mail供页面调用。 属性 说明 id id unitid 收信单位id …

3dmax导出x文件插件2020_C4D与unity3D,3DMAX,AI,AE,ks之间互导

一,C4D与unity3D互导C4D——unity3DC4D导入unity3D遇到的各种问题1.在C4D里挤压的模型转换为可编辑对象了,但是导入Unity以后,模型的封顶没了?2.导入到Unity中发现在里面查看模型丢面和少模型的问题,而且素材也少了好多…

128位计算机 ps2,64位就是最强电脑?难道就没有128位的电脑吗

知道两个系统版本的不同,很多软件是不能通用的。还记得几年前内存价格下降,很多朋友都升级了大的内存,而有的玩家安装内存之后发现32位的系统不支持3.25G以上的内存,也让一些玩家耿耿于怀,网上出现了很多让32位系统支持…

还在为孩子学不好数学而犯愁?你想要知道的或许在这!

▲数据汪特别推荐点击上图进入玩酷屋记得寒假时,超模君七岁小表弟来问了我一道题目:下面线段有多少条?首先我问了他什么是线段?他说:两端有端点,不可以伸长的直线。AB就是线段。我慢慢引导,假如…

ddr4服务器内存频率_镁光出样DDR5内存;紫光发布P5160系列SSD!

今 日 资 讯 1镁光出样DDR5内存2020年AMD、Intel即将推出的新一代CPU处理器还会支持DDR4内存,但是下一代DDR5内存已经近在眼前,2021年就会正式上市。近日镁光宣布开始向客户出样最新的DDR5内存,基于1Znm工艺,性能提升了…

数据时代,信息的无处遁形

从数据中抽取信息从信息中挖掘知识随着大数据时代的到来,数据挖掘的重要性越发显著。可谓是兵马未至,数据先行。所谓数据挖掘,一般是指从大型数据库中将隐藏的预测信息抽取出来的过程,而更为精确的解释就是“从数据中挖掘知识”。…

dw自动滚动图片_3分钟搞定图片懒加载

什么是图片懒加载图片的懒加载就是在页面打开的时候,不要一次性全部显示页面所有的图片,而是只显示当前视口内的图片,一般在移动端使用(PC端主要是前端分页或者后端分页)。为什么需要懒加载对于一个页面加载速度影响最…

获利40多万,工地技术员自学开发外挂被抓

全世界只有3.14 % 的人关注了数据与算法之美今年年初,江苏省公安厅召开新闻发布会,通报全省公安机关开展“净网”专项行动战果。随后平安江苏 在微博中公布了多个案件,其中有个涉及利用技术定位侵犯公民个人信息的案件。【案发】欠债老板在吃…

使用C#在VS Code中编写Notebook

提到大名鼎鼎的Jupyter Notebook,大家应该都听说过。它是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。但是Jupyter Notebook需要使用Python编写代码,对.Neter不太友好。不过,…