Kubernetes控制平面组件:Controller-Manager控制器管理
文章目录
- 一、工作流程
- 1、code-generator
- 2、流程
- (1)为什么放到队列里的不是对象的完整数据
- (2)控制器协同工作原理
- (3)Garbage Collector(级联删除)
- (4)deployment controller中的命名规则
- 二、informer工作机制
- 三、各种Controller
- 1、Cloud Controller Manager
- 2、确保 scheduler 和 controller 的高可用
前文介绍的kube-scheduler,要watch pod nodeName变化,若没有nodeName的pod,则需要调度,然后获取node list,根据predicate plugin、priority plugin的筛选得到最后的候选node列表,然后选择list index为0的分数最高的node,reserve这个node相关资源,然后 pod bind node(写nodeName字段)
,最后把pod yaml回写到apiserver中。这是一个controller loop, kube-scheduler其实也是一个特殊的kube-controller-manager
。
apiserver是一个声明式的系统,就是你给我一个应用的期望状态,我根据这个期望去做一些配置,让这个应用最终达到你的期望状态,这个就是kube-controller-manager实现的。是k8s的大脑。
一、工作流程
控制器=控制器定义
+ 被控制对象的模版(podTemplate)
控制器定义: 是为了reconcil loop实现达到期望状态(控制器核心原理)
1、code-generator
针对任何的api对象,都可以通过code-generator来生成。它可以生成Deepcopy,Conversion,Clientset等。Clientset用来定义我如何访问这个api对象,比如create,delete,get,list,watch等。
code-generate官方文档
2、流程
流程图:
针对kube-controller-manager,code-generator生成了Informer和Lister。这两个统称为Controller Interface
。
去apiserver获取任何一个对象的时候,有两种方式,一种是get,一种是watch。针对这两种方式,Controller Interface就分为了:
- informer:有新的事件推送给用户,是一个
消息通知接口
。它有三种event。
Kubernetes控制平面组件:Controller-Manager控制器管理相关推荐
- Kubernetes控制平面组件:API Server
文章目录 一.API Server简介 1.访问控制流程概览 2.访问控制细节 二.认证 1.认证插件(附x509认证实现原理) 2.基于webhook的认证服务集成 (1)构建符合Kubernete ...
- Kubernetes控制平面组件:Kubelet
文章目录 一.介绍 1.节点管理 2.获取 Pod 清单方式 二.kubelet架构 三.kubelet管理Pod的核心流程 1.Sync Loop源码解析 (1)syncTicker.houseke ...
- Kubernetes核心原理(二)之Controller Manager
本文个人博客地址:http://www.huweihuang.com/article/kubernetes/core-principle/kubernetes-core-principle-contr ...
- 如何使用 Istio 进行多集群部署管理:单控制平面 Gateway 连接拓扑
作者 | 王夕宁 阿里巴巴高级技术专家 **导读:**本文摘自于由阿里云高级技术专家王夕宁撰写的<Istio 服务网格技术解析与实践>一书,讲述了如何使用 Istio 进行多集群部署管理 ...
- 在边缘,作为网关或在网格中构建控制平面以管理Envoy代理的指南
最近, Envoy已成为流行的网络组件. 马特·克莱因( Matt Klein )在几年前写了一个博客,内容涉及Envoy的动态配置API,以及它如何成为Envoy的采用曲线向右移的原因之一. 他称该 ...
- 使用Istio进行多集群部署管理(2):单控制平面Gateway连接拓扑
单控制平面拓扑下,多个 Kubernetes 集群共同使用在其中一个集群上运行的单个 Istio 控制平面.控制平面的 Pilot 管理本地和远程集群上的服务,并为所有集群配置 Envoy Sidec ...
- 使用Istio进行多集群部署管理:单控制平面 Gateway 连接拓扑
作者 | 王夕宁 阿里巴巴高级技术专家 导读:本文摘自于由阿里云高级技术专家王夕宁撰写的<Istio 服务网格技术解析与实践>一书,讲述了如何使用 Istio 进行多集群部署管理来阐述服 ...
- 为特使建立控制平面的指南第2部分-识别组件
这是探索为Envoy Proxy构建控制平面的系列文章的第2部分. 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后 ...
- 为特使建立控制平面的指南-识别组件
确定控制平面所需的组件 由于操作环境的范围千差万别,因此为Envoy实施控制平面所需的组件也可能如此. 例如,在一种极端情况下,如果您在构建时静态生成了Envoy文件并将其发送到Envoy,则需要以下 ...
最新文章
- 2014百度之星资格赛 1001:Energy Conversion(水题,逻辑题)
- 探秘Hadoop生态12:分布式日志收集系统Flume
- Python list,tuple,dict,set高级变量常用方法
- windows7+visual studio 2013+CUDA7.5 编译caffe+配置matcaffe+配置pycaffe
- 在word中,整篇文章想要在每一章另起一页
- “编程能力差,90%输在了这点上!”骨灰级工程师:其实你们都是瞎努力!
- linux用光盘安装系统时需要如何设置,Linux如何设置光盘启动
- oracle全量增量_数据同步:全量与增量
- K8S-四层负载均衡-Service解读
- 什么叫计算机硬件特征码,如何检测电脑的硬件特征码信息(系统、主板、CPU、硬盘),不使用WMI...
- 操作性条件作用和经典性条件作用中,刺激分化和泛化的区别是?|小白心理-312/347考研答疑
- android沉浸式状态栏、fitsSystemWindows、标题栏折叠
- 手机换号各种绑定账号换解绑记录
- mysql 人员查询总结
- 橘子学docker01之基本玩法
- C语言象棋马的遍历程序,[算法]图算法之骑士遍历问题(象棋中马的遍历问题)分析,C语言实现...
- 一款最流行的MVPArms MVP快速集成框架Retoift,Okhttp,RxCache,Gson,RxLifeCycle, Dagger2,Rxjava,ImageLoader
- 《预训练周刊》第51期:无重构预训练、零样本自动微调、一键调用OPT
- 《炬丰科技-半导体工艺》半导体封装基板材料技术趋势
- 【工具使用系列】Windows 10 平台下的TTS工具 Balabolka
热门文章
- 利用图笛卡斯积的组合贝叶斯优化
- vs2008编译QT开源项目--太阳神三国杀源码分析(五) 分牌及出牌
- 读书的方法摘录——张五常
- 说说网页设计常用的构思方法
- 本体李俊火星大学最新演讲:从区块链核心价值谈金融场景应用
- 愿你在迷茫时,坚信你的珍贵,爱你所爱,行你所行,听从你心,无问西东。...
- rt3070网卡 linux驱动,移植rt3070芯片网卡驱动到dm365全过程---yingru
- python读取pdf文件_深入学习python解析并读取PDF文件内容的方法
- 同一wifi下小米电视无法投屏
- 上新|设计开发在线协同工具墨刀「设计画布」全新发布
- Kubernetes控制平面组件:API Server