这么深入浅出理解k8s集群控制器,能行!

news2024/12/25 0:47:04

1、控制器,是k8s集群的“大脑”

控制器本身对我们来说并不陌生的。我们每天使用的洗衣机、冰箱、空调等,都是依靠控制器才能正常工作

K8S集群的核心组件逻辑上可以被分为三个部分:核心组件etc数据库,对etcd进行直接操作的入口组件API Server,以及其他组件调度器scheduler

2、类比学习法之“简易的冰箱”

通过分析简易冰箱的设计过程,来理解K8S 集群控制器的原理

这个冰箱包括五个组件:箱体、制冷系统、照明系统、温控器以及门。

冰箱只有两个功能:当有人打开冰箱门的时候,冰箱内的灯会自动开启;当有人按下温控器的时候,制冷系统会根据温度设置,调节冰箱内温度。

3、统一入口

这个入口提供给用户两个接口:开关门和调节温控器,那么入口又是通过什么方式来具体调整冰箱门和温控器状态的呢,这是个问题

4、控制器

控制器就是为了解决上边的问题产生的。控制器就是用户的操作,和冰箱各个组件的正确状态之间的一座桥梁:当用户打开门的时候,控制器观察到了门的变化,它

替用户打开冰箱内的灯;当用户按下温控器的时候,控制器观察到了用户设置的温度,它替用户管理制冷系统,调节冰箱内温度。

5、控制器管理器

冰箱有照明系统和制冷系统,显然相比一个控制器管理着两个组件,我们替每个组件分别实现一个控制器是更为合理的选择。同时我们实现一个控制器管理器来统一

维护所有这些控制器,来保证这些控制器在正常工作。

6、SharedInformer

我们把监控冰箱组件状态变化这件事情, 交给一个新的模块SharedInformer 来实现。SharedInformer 作为控制器的代理,替控制器监控冰箱

组件的状态变化,并根据控制器的喜好,把不同组件状态的变化,通知给对应的控制器。通过优化,这样的SharedInformer 可以极大的缓解冰箱入口的压力。

7、ListWatcher

假设SharedInformer 和冰箱入口通过http 协议通信的话,那么http 分块编码(chunked transfer encoding)就是实现ListWatcher 的一个好的选择。

控制器通过ListWatcher 给冰箱入口发送一个查询然后等待,当冰箱组件有变化的时候,入口通过分块的http 响应通知控制器。

控制器看到chunked 响应,会认为响应数据还没有发送完成,所以会持续等待。

8、举例

以上我们从一个简易冰箱的进化过程中,了解了控制器产生的意义,扮演的角色,以及实现的方式。现在我们回到K8S 集群。K8S 集群实现了大量的控制器,而且在可

以预见的未来,新的功能的控制器会不断出现,而一些旧的控制器也会被逐渐淘汰。目前来说,我们比较常用的控制器,如pod 控制器、deployment 控制器、

service 控制器、replicaset 控制器等。这些控制器一部分是由kube controller manager 这个管理器实现和管理, 而像route 控制器和service 控制器, 则由cloud controller manager 实现。

8.1 服务控制器

首先, 用户请求API Server 创建一个LoadBalancer 类型的服务,API

Server 收到请求并把这个服务的详细信息写入etcd 数据库。而这个变化,被服务控

制器观察到了。服务控制器理解LoadBalancer 类型的服务,除了包括存放在etcd

内部的服务记录之外,还需要一个SLB 作为服务入口,以及若干endpoints 作为服

务后端。所以服务控制器分别请求SLB 的云openapi 和API Server,来创建云上

SLB 资源,和集群内endpoints 资源。

8.2 路由控制器

在集群网络一章中,我们提到过,当一个节点加入一个K8S 集群的时候,集群

需要在VPC 路由表里增加一条路由,来搭建这个新加入节点到pod 网络的主干道。

而这件事情,就是路由控制器来做的。路由控制器完成这件事情的流程,与上边服务

控制器的处理流程非常类似,这里不再赘述。

结束语

基本上来说,K8S 集群的控制器,其实扮演着集群大脑的角色。有了控制器,K8S 集群才有机会摆脱机械和被动,变成一个自动、智能、有大用的系统。

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

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

相关文章

科学家使用DL和其他工具预测2019年新型冠状病毒宿主和传染性

一项新的研究表明,2019年新型冠状病毒(2019-nCoV)的人与人之间的传播可能早在2019年12月中旬就开始了。这些发现与武汉市卫生健康委员会在12月底或1月初的声明相矛盾,即“没有发现2019-nCoV在人与人之间传播的重要证据”。 这项研…

Netty核心源码解析(二)--ServerBootstrap启动过程

serverbootstrap用于建立netty服务端,核心逻辑-- 设置线程池-- bossGroup和workGroup设置accept连接handler定义服务器的serversocketchannel实现设置IO读写的业务逻辑相关childHanlder绑定监听端口-- 创建serversocketchannel对象初始化serversocketchannel--添加…

【HCIP】13.BGP选路

每条BGP路由至少携带3个属性,目的影响选路。 基本概念 公认必遵:所有厂家设备都要识别的属性;发送路由时必须携带的属性公认任意:所有厂家设备都要识别的属性;发送路由时候可以携带也可以不携带可选过渡:…

iPad怎么录屏?不会录屏?一步步教你操作!

ipad作为一款受欢迎的移动设备,不仅在娱乐和办公中发挥着重要作用,还可以用于创作和分享。录屏功能作为ipad的一项重要特性,允许用户将屏幕上的活动记录成视频,以便用于演示、教学、分享等用途。可是您知道ipad怎么录屏吗&#xf…

JVS低代码中表单引擎与逻辑引擎是如何联合调用外部API的?

在企业项目中,常常出现需要给外部系统提供一个api ,让外部系统触发调用,本系统直接数据入库,那么我们来看看jvs的表单引擎与逻辑引擎联合实现这个功能,先看实现效果: 配置步骤: 一、配置列表页…

算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言

算法竞赛入门【码蹄集新手村600题】(MT1200-1220)C语言 目录MT1201 强数MT1202 克里希那穆提数MT1203 字母矩阵MT1204 字母三角MT1205 倒三角MT1206 金字塔MT1207 倒金字塔MT1208 菱形MT1209 沙漏MT1210 弗洛伊德三角MT1211 给定数字的乘法表MT1212 乘法表MT1213 x个…

春秋云境:CVE-2021-41402(flatCore-CMS v2.0.8 RCE)

目录 一、题目 1.一句话木马: 2.命令执行木马: 一、题目 靶标介绍: flatCore-CMS v2.0.8 存在后台任意代码执行漏洞 进入题目: robots.txt目录: /acp后台: admin/12345678 “Addons”-- “Installier…

海外移动应用广告变现平台——AdMob特点

海外的移动互联网广告平台非常多,比如 Admob、Facebook Audience Network、Applovin MAX、Unity、Vungle、Mopub、Amazon、Pubmatic、Fyber等等。 根据《2020全球手游广告买量投放与变现报告》,各国Top收益广告平台(针对游戏产品&#xff09…

回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SSA-RF麻雀搜索优化算法优化随机森林算法多输入单输出回归预测(多指标,多图)…

【算法日志】动态规划刷题:路径数问题(day34)

代码随想录刷题60Day 目录 前言 不同路径 不同路径(2) 前言 今天的动态规划题与昨天的题很类似&#xff0c;只不过今天的题是在二维上讨论&#xff0c;难度上略有提升。 不同路径 int uniquePaths(int m, int n) {vector<int> dp(n 1, 1);for (int i 1; i < m; …

问道管理:股票印花税是多少?印花税降低有何影响?

股票印花税&#xff0c;是指对证券商场上买卖、承继、赠与所确立的股权转让根据&#xff0c;按买卖额纳税。那么&#xff0c;我国股票印花税是多少&#xff1f;印花税下降有何影响&#xff1f;问道管理为我们预备了相关内容&#xff0c;以供参考。 股票印花税是多少&#xff1f…

初始C语言(7)——详细讲解有关初阶指针的内容

系列文章目录 第一章 “C“浒传——初识C语言&#xff08;1&#xff09;&#xff08;更适合初学者体质哦&#xff01;&#xff09; 第二章 初始C语言&#xff08;2&#xff09;——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言&#xff08;3&#xff09;——…

C++信息学奥赛2049:【例5.19】字符串判等

这段代码的功能是比较两个输入的字符串是否相等&#xff08;忽略大小写和空格&#xff09;&#xff0c;并输出 “YES” 或 “NO”。 解析注释后的代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {string arr; // 定义字符串变量arr&…

Python网络爬虫入门到实战

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 网络爬虫&#xff08;We…

C++信息学奥赛1130:找第一个只出现一次的字符

这段代码的功能是找出输入字符串中第一个重复出现的字符&#xff0c;并输出该字符。 解析注释后的代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {string arr;getline(cin, arr); int a0;for(int i0;i<arr.length();i){for(int j0;j…

怎么看电脑型号?5个方法,快速查看!

“弟弟快上大学了&#xff0c;想给他买一部性价比好一点的电脑&#xff0c;但是我对电脑又不太熟悉&#xff0c;请问大家怎么查看电脑型号呢&#xff1f;感谢回答&#xff01;” 每台电脑不一样&#xff0c;它的电脑型号也可能有差别。电脑型号是指一台电脑特定的标识&#xff…

在外SSH远程连接macOS服务器

文章目录 前言1. macOS打开远程登录2. 局域网内测试ssh远程3. 公网ssh远程连接macOS3.1 macOS安装配置cpolar3.2 获取ssh隧道公网地址3.3 测试公网ssh远程连接macOS 4. 配置公网固定TCP地址4.1 保留一个固定TCP端口地址4.2 配置固定TCP端口地址 5. 使用固定TCP端口地址ssh远程 …

(vue)el-table 怎么把表格列中相同的数据 合并为一行

(vue)el-table 怎么把表格列中相同的数据 合并为一行 效果&#xff1a; 文档解释&#xff1a; 写法&#xff1a; <el-table:data"tableData"size"mini"class"table-class"borderstyle"width:100%"max-height"760":span-…

ubuntu查看网速

使用speedomster测试网速 sudo apt-get install speedometer 查询需要测速的网卡 speedometer -r ens33 -t ens33 -r: 指定网卡的接收速度 -t: 指定网卡的发送速度 使用nload测试 sudo apt-get install nload 测速 nload -t 200 -i 1024 -o 128 -U M 参数含义&#xff0…

自组织映射

无监督深度学习&#xff1a; 无监督模型使神经网络能够执行聚类、异常检测、特征选择、特征提取、降维和推荐系统等任务。这些神经网络包括 自组织图、玻尔兹曼机、自动编码器。 什么是 SOM&#xff1f; 简而言之&#xff0c;自组织映射是一种基于竞争学习的人工神经网络&am…