K8S系列文章之基础理论篇

news/2025/2/10 17:21:26/

第一部分:理解控制器

简介:当我们尝试去理解 Kubernetes 集群工作原理的时候,控制器肯定是一个难点。这是因为
控制器有很多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但
是,我们又不能绕过控制器,因为它是集群的“大脑”。
当我们尝试去理解 Kubernetes 集群工作原理的时候,控制器肯定是一个难点。这是因为控制器有很
多,具体实现大相径庭;且控制器的实现用到了一些较为晦涩的机制,不易理解。但是,我们又不能绕
过控制器,因为它是集群的“大脑”。在这,我们通过分析一个简易冰箱的设计过程,来深入理解集群控
制器的产生,功能以及实现方法。
下图是 Kubernetes 集群的核心组件,包括数据库 etcd,调度器 scheduler,集群入口 API Server,控
制器 Controller,服务代理 kube-proxy 以及直接管理具体业务容器的 kubelet。这些组件逻辑上可以
被分为三个部分:核心组件 etcd 数据库,对 etcd 进行直接操作的入口组件 API Server,以及其他组
件。这里的“其他组件”之所以可以被划分为一类,是因为它们都可以被看做是集群的控制器。
在这里插入图片描述

今天我们要讲的就是集群控制器原理。

1.2 控制器原理

虽然控制器是 Kubernetes 集群中比较复杂的组件,但控制器本身对我们来说并不陌生的。我们每天使
用的洗衣机、冰箱、空调等,都是依靠控制器才能正常工作。在控制器原理这一节,我们通过思考一个
简易冰箱的设计过程,来理解 Kubernetes 集群控制器的原理。

1.2.1 简易的冰箱

这个冰箱包括五个组件:箱体、制冷系统、照明系统、温控器以及门。冰箱只有两个功能:当有人打开
冰箱门的时候,冰箱内的灯会自动开启;当有人按下温控器的时候,制冷系统会根据温度设置,调节冰
箱内温度。
在这里插入图片描述

1.2.2 统一入口

对于上边的冰箱,我们可以简单抽象成两个部分:统一的操作入口和冰箱的所有组件。在这里,用户只
有通过入口,才能操作冰箱。这个入口提供给用户两个接口:开关门和调节温控器。用户执行这两个接
口的时候,入口会分别调整冰箱门和温控器的状态。

在这里插入图片描述

1.2.3 控制器

控制器就是为了解决上边的问题产生的。控制器就是用户的操作,和冰箱各个组件的正确状态之间的一
座桥梁:当用户打开门的时候,控制器观察到了门的变化,它替用户打开冰箱内的灯;当用户按下温控
器的时候,控制器观察到了用户设置的温度,它替用户管理制冷系统,调节冰箱内温度。

在这里插入图片描述

1.2.4 控制器管理器

冰箱有照明系统和制冷系统,显然相比一个控制器管理着两个组件,我们替每个组件分别实现一个控制
器是更为合理的选择。同时我们实现一个控制器管理器来统一维护所有这些控制器,来保证这些控制器
在正常工作。

在这里插入图片描述

1.2.5 SharedInformer

上边的控制器和控制器管理器,看起来已经相当不错了。但是当冰箱功能增加,势必有很多新的控制器
加进来。这些控制器都需要通过冰箱入口,时刻监控自己关心的组件的状态变化。比如照明系统控制器
就需要时刻监控冰箱门的状态。当大量控制器不断的和入口通信的时候,就会增加入口的压力。
这个时候,我们把监控冰箱组件状态变化这件事情,交给一个新的模块 SharedInformer 来实现。
SharedInformer 作为控制器的代理,替控制器监控冰箱组件的状态变化,并根据控制器的喜好,把不
同组件状态的变化,通知给对应的控制器。通过优化,这样的 SharedInformer 可以极大的缓解冰箱入
口的压力。

在这里插入图片描述

1.2.6 ListWatcher

在这里插入图片描述
假设 SharedInformer 和冰箱入口通过 http 协议通信的话,那么 http 分块编码(chunked transfer
encoding)就是实现 ListWatcher 的一个好的选择。控制器通过 ListWatcher 给冰箱入口发送一个查询
然后等待,当冰箱组件有变化的时候,入口通过分块的 http 响应通知控制器。控制器看到 chunked 响
应,会认为响应数据还没有发送完成,所以会持续等待。
在这里插入图片描述

1.3 举例

以上我们从一个简易冰箱的进化过程中,了解了控制器产生的意义,扮演的角色,以及实现的方式。现
在我们回到 Kubernetes 集群。Kubernetes 集群实现了大量的控制器,而且在可以预见的未来,新的
功能的控制器会不断出现,而一些旧的控制器也会被逐渐淘汰。
目前来说,我们比较常用的控制器,如 pod 控制器、deployment 控制器、service 控制器、replicaset
控制器等。这些控制器一部分是由 kube controller manager 这个管理器实现和管理,而像 route 控制
器和 service 控制器,则由 cloud controller manager 实现。
之所以会出现 cloud controller manager,是因为在不同的云环境中,一部分控制器的实现,会因为云
厂商、云环境的不同,出现很大的差别。这类控制器被划分出来,由云厂商各自基于 cloud controller
manager 分别实现。
这里我们以阿里云 Kubernetes 集群 cloud controller manager 实现的 route 控制器和 service 控制器
为例,简单说明 Kubernetes 控制器的工作原理。

1.3.1 服务控制器

首先,用户请求 API Server 创建一个 LoadBalancer 类型的服务,API Server 收到请求并把这个服务的
详细信息写入 etcd 数据库。而这个变化,被服务控制器观察到了。服务控制器理解 LoadBalancer 类
型的服务,除了包括存放在 etcd 内部的服务记录之外,还需要一个 SLB 作为服务入口,以及若干
endpoints 作为服务后端。所以服务控制器分别请求 SLB 的云 openapi 和 API Server,来创建云上
SLB 资源,和集群内 endpoints 资源。
在这里插入图片描述

1.3.2 路由控制器

在集群网络一章中,我们提到过,当一个节点加入一个 Kubernetes 集群的时候,集群需要在 VPC 路由
表里增加一条路由,来搭建这个新加入节点到 pod 网络的主干道。而这件事情,就是路由控制器来做
的。路由控制器完成这件事情的流程,与上边服务控制器的处理流程非常类似,这里不再赘述。
在这里插入图片描述

1.4 总结

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


http://www.ppmy.cn/news/186056.html

相关文章

SRP中的光照

SRP中的光照 在SRP中,首先我们需要使用CBUFFER来存储光照相关的信息: CBUFFER_START(_LightBuffer)float4 _VisibleLightColors[MAX_VISIBLE_LIGHTS];float4 _VisibleLightDirections[MAX_VISIBLE_LIGHTS]; CBUFFER_END当然,这些数据是从C#中…

服务器硬件防火墙和软件防火墙的功能和区别

随着近年来对网络数据安全的要求越来越高,许多第一次使用服务器的客户经常问我们:你的机房有防火墙吗?我们还需要重新部署和安装防火墙吗?有服务器硬件防火墙吗?事实上,普通机房配备了硬件防火墙。为了更大程度地保证数…

WatchGuard Firebox X50硬件防火墙

报价48900. 至于价格高,原因在于,软件防火墙只有包过滤的功能,硬件防火墙中可能还有除软件防火墙以外的其他功能,例如CF(内容过滤)IDS(入侵侦测)IPS(入侵防护&#xff0…

害死人的ddos,价格屠夫安易ES系列抗DDOS硬件防火墙

安易网址: www.ezsafe.cn 联系人: 杨柳庭联系电话:0668-2990666 安易(www.ezsafe.cn )硬件防火墙可彻底防御各种DDoS攻击,保证网络稳定运行,安易信息技术公司成功为国内外大中型IDC用户提供抗DDOS安全产品及打包安全解决方案,销售…

服务器硬件防火墙与软件防火墙的作用和区别

随着近几年网络数据安全的要求越来越高,很多初次使用服务器的客户经常问我们:你们的机房有防火墙吗?我们还需要再部署和安装防火墙吗?有没有服务器硬件防火墙?其实一般的机房都是有部署硬件防火墙的。而为了更大程度上保障数据安…

选择硬件防火墙应注意的几点事宜

摘要:防火墙可以对关键网络任务进行管理。在选择基于硬件的防火墙解决方案时,要考虑到公司的需求和预算情况,确定是否应该由防火墙管理内容过滤功能。选择硬件防火墙应注意几点事宜。下面本文就来为大家阐述 防火墙对于公司网络安全来说&am…

防火墙概述

#一、防火墙概述* **1-1 **防火墙概念 区域划分: 1.公共外部网络,如 Internet 2.内联网(Intranet),如某公司或组织专用网络,网络访问限制在组织内部 3.外联网(Exranet)&#xff0…

孤军大作战!疯狂DIY 1U硬件防火墙实录(转)

硬件防火墙是指把防火墙程序做到芯片里面,由硬件执行这些功能,能减少CPU的负担,使路由更稳定。硬件防火墙是保障内部网络安全的一道重要屏障。它的安全和稳定,直接关系到整个内部网络的安全。目前市场上的防火墙种类繁多&#xff…