Kubernetes架构设计

核心组件
api server 功能

controller manager
负责维护集群的状态
复制

scheduler
负责资源的调度
按照预定的调度策略将Pod调度到相应的机器上复制
kubelet

Container runtime

kube-proxy
为Service提供cluster内部的服务发现和负载均衡
复制
Add-ons
kube-dns负责为整个集群提供DNS服务 Ingress Controller为服务提供外网入口 Heapster提供资源监控 Dashboard提供GUI Federation提供跨可用区的集群 Fluentd-elasticsearch提供集群日志采集、存储与查询
K8S分层结构

生态系统
在接口层之上的庞大容器集群管理调度的生态系统
复制

接口层

管理层

应用层

核心层

K8S工作流程分析

时序图

kubectl提交部署申请 replication 创建指定数量的pod scheduler将pod调度到节点 节点上的kubelet管理pod的生命周期
kubeproxy

1、
kubeproxy运行在集群各个主机上
管理网络通信,服务发现,负载均衡
2、
当有数据发送到主机时
其将路由到正确的pod或容器
3、
对于主机上发出的数据
它可以基于请求地址发现远程服务器
并将数据正确路由
4、
在某些情况下会使用轮询调度算法将请求发送到集群中的多个实例复制
Api Server的工作流程

数据验证 根据不同的资源类型找对应的handler处理器 yaml文件转换成处理对象 验证对象属性的合法性 将合法对象保存到etcd中
Controller的工作流程

1、controller和apiserver通过Informer建立连接
(创建Informer的时候 需要传递一个networkClient对象 用于两者之间建立连接)
2、Informer的Reflector负责维护这个连接
有了连接之后就可以监听apiserver中的数据变化了
通过ListAndWatch方法获取并监听API对象实例的变化
3、在ListAndWatch机制下
一旦APIServer有新的API实例被创建、删除或者更新
Reflector都会收到“事件通知”
4、该事件和它所对应的API对象这个组合
就被称为增量(Delta)
它被放进一个Delta FIFO Queue中
(api对象中的key会放入工作队列中)
5、Informer会从这个队列中读取增量
每拿到一个增量
Informer就会判断这个增量里的事件类型
然后创建或者更新本地对象缓存(Store)
并且Informer会根据这个事件类型
触发事先注册好的ResourceEventHandler
这些Handler需要在创建控制器的时候注册给它对应的Informer复制
controller大致工作流程

文章转载自平凡人笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
数据库国产化替代深化:DBA的机遇与挑战
代晓磊
1228次阅读
2025-04-27 16:53:22
2025年4月国产数据库中标情况一览:4个千万元级项目,GaussDB与OceanBase大放异彩!
通讯员
690次阅读
2025-04-30 15:24:06
国产数据库需要扩大场景覆盖面才能在竞争中更有优势
白鳝的洞穴
580次阅读
2025-04-14 09:40:20
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
496次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
472次阅读
2025-04-30 12:17:56
GoldenDB数据库v7.2焕新发布,助力全行业数据库平滑替代
GoldenDB分布式数据库
466次阅读
2025-04-30 12:17:50
优炫数据库成功入围新疆维吾尔自治区行政事业单位数据库2025年框架协议采购!
优炫软件
356次阅读
2025-04-18 10:01:22
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
269次阅读
2025-04-23 12:04:21
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
数据库运维之道
252次阅读
2025-04-28 11:01:25
给准备学习国产数据库的朋友几点建议
白鳝的洞穴
244次阅读
2025-05-07 10:06:14