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大致工作流程


K8S架构设计及工作流程分析相关推荐

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

    K8S 容器编排系统 容器编排系统需要满足的条件: 服务注册,服务发现 负载均衡 配置.存储管理 健康检查 自动扩缩容 零宕机 K8S整体架构图 K8S整体架构 Kubernetes采用主从分布式架构 ...

  2. kafka的基本概念和工作流程分析

    为什么需要消息队列 周末无聊刷着手机,某宝网APP突然蹦出来一条消息"为了回馈老客户,女朋友买一送一,活动仅限今天!".买一送一还有这种好事,那我可不能错过!忍不住立马点了去.于是 ...

  3. 电子电器架构设计与开发流程

    电子电器架构设计与开发流程 随着汽车配置复杂度的增加,电子电器系统越来越复杂.同时,电子电器的成本压力也越来越大,对电器系统优化的要求也日益增加.鉴于以上原因,电子电器架构EEA (Electroni ...

  4. 16.U-boot的工作流程分析-2440

    16.U-boot的工作流程分析-2440 分析的流程: 程序入口 第一阶段程序分析 第二阶段程序分析 2440开发板: 1.uboot的入口: 要看uboot工程的入口,首先打开顶层目录的Makef ...

  5. 用K2设计一个工作流程

    在这篇文章里,我将以一个公司的假期申请流程作为例子来说明如何设计一个工作流程.整个流程是这样的:          1.公司人员填写假期申请单,单上面有姓名.请假开始日期.请假结束日期.请假天数等信息 ...

  6. 【转载】csr8670--sink工程的大致工作流程分析(以speaker为例)二

    csr8670--sink工程的大致工作流程分析(以speaker为例)二 1.编解码任务的初始化 继续接着流程一分析: 1.1 当连接初始化完成之后,如下所示会调用编解码的初始化任务:这个编解码的任 ...

  7. SRS流媒体服务器架构设计及源码分析丨音视频开发丨C/C++音视频丨Android开发丨嵌入式开发

    SRS流媒体服务器架构设计及源码分析 1.SRS流媒体服务器架构设计 2.协程-连接之间的关系 3.推流-转发-拉流之间的关系 4.如何手把手调试SRS源码 视频讲解如下,点击观看: SRS流媒体服务 ...

  8. 【SemiDrive源码分析】【X9芯片启动流程】14 - freertos_safetyos目录Cortex-R5 SafetyOS/RTOS工作流程分析

    [SemiDrive源码分析][X9芯片启动流程]14 - freertos_safetyos目录Cortex-R5 SafetyOS/RTOS工作流程分析 一.SafetyOS 工作流程分析 1. ...

  9. 你想要的系列:网络请求框架OkHttp3全解系列 - (二)OkHttp的工作流程分析

    Okhttp系列文章: 你想要的系列:网络请求框架OkHttp3全解系列 - (一)OkHttp的基本使用 你想要的系列:网络请求框架OkHttp3全解系列 - (二)OkHttp的工作流程分析 你想 ...

最新文章

  1. [转]移动应用统一化的谎言:一次编译,到处运行不可能
  2. qt designer 插入图片_老同学春节祝福语图片
  3. P2387-[NOI2014]魔法森林【LCT】
  4. utools插件开发之监听按键的命令和状态
  5. MySQL笔记-binlog理论及binlog回滚恢复数据
  6. python和台达plc通讯_台达PLC通信协议ModbusASCIIDVP
  7. djano 字段不重复_硬不硬你说了算!近 40 张图解被问千百遍的 TCP 3 次握手和 4 次挥手面试题...
  8. 黑客必学之社会工程学
  9. 4.3 调度核心组件
  10. UIActivityIndicatorView活动指示器(菊花)
  11. 基于Java的旅游信息管理系统的设计与实现
  12. 基于辅助功能的镜像劫持攻击原理
  13. ALEXA解释(日IP500,可以使你进10万内)
  14. 希望自己活成什么样的人
  15. Excel2016右键新建工作表,打开时提示“因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。”的解决办法
  16. outlook 签名_Outlook 2007中的电子邮件签名礼节-适当的Flair
  17. Vue 使用three.js实现简单全景图
  18. 家用计算机中PCB板材质,介绍PCB电路板的主要原材料
  19. jQuery思维导图
  20. java spark yarn_Spark on yarn

热门文章

  1. html游戏图标库,又一款开源图标库 CSS.GG,值得一用
  2. linux安装telnet组件,LINUX下如何安装telnet
  3. linux 解压安卓kernel,android kernel | 环境搭建 + 第一次尝试
  4. 分析maven依赖导入失败原因
  5. vue-cli3 DllPlugin 提取公用库
  6. 陈丽琳:如何以大数据助力商场运营
  7. 论__AlertDialog自定义布局回调修改的正确方式
  8. 【C/C++学院】0828-数组与指针/内存分配/数据结构数组接口与封装
  9. Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
  10. 4.云计算和大数据时代网络揭秘-安全的网络通道-网络加密