k8s从初识到上天系列第二篇:kubernetes的组件和架构

news2024/11/17 1:28:51

😉😉 欢迎加入我们的学习交流群呀!

✅✅1:这是孙哥suns给大家的福利!

✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring、SpringSecurity、Docker、Grpc、各种MQ、Rpc、SpringCloud等等很多应用和源码级别高质量视频和笔记资料,你想学的我们这里都有!

🥭🥭3:QQ群:583783824   📚📚  工作VX:BigTreeJava 拉你进VX群,免费领取!

💞💞4:以上内容,进群免费领取呦~ 💞💞💞💞

🥭🥭5:学完帮你进大厂~~

一:kubernetes组件

1:集群组件概述

官方说法:

        当部署完 Kubernetes,便拥有了一个完整的集群。一组工作机器,称为节点, 会运行容器化应用程序。 每个集群至少有一个工作节点 。工作节点会 托管Pod ,而 Pod 就是作为应用负载的组件。控制平面管理集群中的工作节点和Pod。

说人话版本:

        集群:cluster,多个几点被组织到一起共同为系统提供服务过程称之为集群。本质上是将承载同一个软件服务节点组织到一起,称之为该软件(服务)的集群,当然集群中的节点身份地位是不一样的。

        k8s集群也是如此,他也是多个节点组成。不过,在k8s世界中,一组工作的机器才被称之为节点。

        k8s集群中有多个节点,我们一般建议是三个节点。三个节点有两种,第一种是Control Plane控制节点,这个类似于我们常规理解的master节点,第二种节点是work node节点类似于我们常规理解的slave。

        控制节点主要是负责调度的,他主要是负责容器的管理和资源分配。真正的work节点才是真正运行咱们得应用程序容器的。

        k8s管理的单元不是容器而是Pod,Pod不是容器,Pod相当于是给容器进行了包裹。一个Pod里边可以运行多个容器。Pod就是负载组件,控制平台管理集群中的工作节点和Pod

·        官方给的这个图:左侧是控制平面组件,右侧是我们的工作节点,一共有三个,工作节点是用来真正运行工作容器的。

        控制节点上边就是运行了一堆k8s的组件,后边我们都会分享。

2:控制平面组件 (Control Plane Components)

官方版:

        控制平面组件会为集群做出全局决策,比如资源的调度。以及检测和响应集群事件,例如当不满足部署的replicas字段时,要启动新的 pod

说人话版:        

        控制平面组件这个组件就是管调度的。检测、资源调度等等。

        控制平面组件可以在集群中的任何节点上运行。 然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此物理机上运行用户容器,也就是Master上不会跑Pod。

(一):kube-apiserver

官方版:

        API server是 Kubernetes 控制平面的组件,该组件负责公开了Kubernetes API,负责处理接受请求的工作。API server是 Kubernetes控制平面的前端。Kubernetes API 服务器的主要实现是 kube-apiserver。 kube-apiserver 设计上考虑了水平扩缩,也就是说,它可通过部署多个实例来进行扩缩。 你可以运行kube-apiserver 的多个实例,并在这些实例之间平衡流量。

说人话版:

        说白了就是操作k8s的集群的API总入口,我们操作整个的k8s集群需要些写一些命令,这些命令会优先会被apiserver接收到,我们通过Rest或者是命令的方式去调度就行了。他就是控制平面组件的总入口,就是接口用户命令的。API Server是控制平台组件的前端,但是他的真正底层实现是基于接口实现的方式,基于kube-apiserver他可以通过部署多个实例来进行扩缩,在诸多实例中实现流量平衡。

        这玩意就是接收命令请求的。

(二):etcd

        一致且高度可用的键值存储,用作k8s所有集群数据的后台数据库

        这里边存储的是集群元数据,所谓元数据就是记录集群信息的,类似于MySQL数据库,information_schema下的数据。

(三):kube-scheduler

官方说法:

        kube-scheduler是控制平面的组件,负责监视新创建的、未指定运行节点node的 Pods, 并选择节点来让 Pod 在上面运行。调度决策考虑的因素包括单个 Pod 及Pods 集合的资源需求、软硬件及策略约束、 亲和性及反亲和性规范、数据位置、工作负载间的干扰及最后时限。

(四):kube-controller-manager

        kube-controller-manager 是控制平面的组件,负责运行控制器进。从逻辑上讲,但是为了降低复杂性,它们每个控制器都是一个单独的进程,都被编译到同一个可执行文件,并在同一个进程中运行。

这些控制器包括:

        节点控制器(Node Controller):负责在节点出现故障时进行通知和响应。

        任务控制器(Job Controller):监测代表一次性任务的Job 对象,然后创建 Pods 来运行这些任务直至完成。

        端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSLice)对象(以提供 Service 和 Pod 之间的链接)。

        服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)

(五):cloud-controller-manager

        一个Kubernetes控制平面组件,嵌入了特定云平台的控制逻辑。云控制器管理器(Cloud Controller Manager)允许你将你的集群连接到云提供商的 API 之上, 并将与该云平台交互的组件同与你的集群交互的组件分离开来。

        cloud-controller-manager 仅运行特定于云平台的控制器。 因此如果你在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。与 kube-controller-manager 类似,cloud-controller-manager 将若干逻辑上独立的控制回路组合到同一个可执行文件中, 供你以同一进程的方式运行。 你可以对其执行水平扩容(运行不止一个副本)以提升性能或者增强容错能力。

         下面的控制器都包含对云平台驱动的依赖:
        节点控制器(Node Controller):用于在节点终止响应后检查云提供商以确定节点是否已被删除。

        路由控制器(RouteController):用于在底层云基础架构中设置路由

        服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器

        如果咱们使用云平台的话,一般云平台中都直接选用现成的k8s集群使用。这个目前研究太深意义不大。

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

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

相关文章

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线(跨线) 1 如何在Visio绘图中关闭visio两线交叉的跳线(跨线)第一步:打开Visio并创建您的图形第二步:绘制您的连接线第三步:关闭跳线第四步:手动…

用友U8接口-获取token数据字段(2)

概括 本文的操作需要正确部署U8HttpApi ,绑定IIS端口获取erp账套信息获取token访问令牌传入JSON的参数如何设置 账套数据库 方式一 查看数据库,UFDATA开头的 方式二 调用接口 此接口返回所有erp账套数据库信息 Token 访问有鉴权的接口&#x…

Python 语法及入门 (超全超详细) 专为Python零基础 一篇博客让你完全掌握Python语法

前言: 本篇博客超级详细,请尽量使用电脑端结合目录阅读 阅读时请打开右侧 “只看目录” 方便阅读 一、什么是Python 1.1 Python的诞生 1989年,为了打发圣诞节假期,Gudio van Rossum吉多 范罗苏姆(龟叔)决…

Javaweb之SpringBootWeb案例本地存储的详细解析

2.2 本地存储 前面我们已分析了文件上传功能前端和后端的基础代码实现,文件上传时在服务端会产生一个临时文件,请求响应完成之后,这个临时文件被自动删除,并没有进行保存。下面呢,我们就需要完成将上传的文件保存在服…

BAT学习笔记:详解环境变量及其所有创建方法

文章目录 一、初识环境变量二、什么是环境变量三、为什么需要环境变量四、环境变量的分类五、环境变量的设置 一、初识环境变量 1.windows 的搜索框中输入 查看高级系统设置。点击打开系统属性窗口。 2. 在系统属性窗口中,点击右下方的“环境变量”打开环境变量设…

计算机找不到ucrtbased.dll无法运行程序,分享5种有效的解决方法

当计算机系统在运行过程中无法找到ucrtbased.dll这个特定的动态链接库文件时,可能会引发一系列的问题和故障现象。ucrtbased.dll是Windows操作系统中一个至关重要的组件,它包含了C运行时库的核心函数,对于许多应用程序特别是基于Microsoft Vi…

log4cplus开源库使用

log4cplus 的github地址:https://github.com/log4cplus/log4cplus 下载链接:log4cplus - Browse /log4cplus-stable/2.0.7 at SourceForge.net 官方文档:log4cplus / Wiki / Home 1.log4cplus配置 (1)打开解决方案…

滴水逆向三期笔记与作业——02C语言——10 Switch语句反汇编

滴水逆向三期笔记与作业——02C语言——10 Switch语句反汇编 一、Switch语句1、switch语句 是if语句的简写2、break加与不加有什么特点?default语句可以省略吗?3、游戏中的switch语句(示例)4、添加case后面的值,一个一个增加&…

故障树分析蒙特卡洛仿真程序(附MATLAB完整代码)

故障树是一种特殊的倒立树状逻辑因果关系图,它用事件符号、逻辑门符号和转移符号描述系统中各种事件之间的因果关系,通过对引起系统故障的各种因素进行逻辑因果分析,确定导致故障发生的各种可能的原因,并通过定性和定量分析找出系…

如何限制 IP 多次重新访问

随着互联网的快速发展,网络安全问题日益突出。恶意 IP 多次重新访问是一种常见的手段,可能导致服务器负载过高、资源浪费、网站响应速度下降等问题。为了提高网络安全性,我们需要采取有效的措施来限制恶意 IP 的多次重新访问。下面简单的介绍…

Linux下安装openresty

Linux下安装openresty 十一、Linux下安装openresty11.1.概述11.2.下载OpenResty并安装相关依赖:11.3.使用wget下载:11.4.解压缩:11.5.进入OpenResty目录:11.6.编译和安装11.7.进入OpenResty的目录,找到nginx:11.8.在conf目录下的nginx.conf添…

C++笔记之作用域解析符::和命名空间、作用域的关系

C++笔记之作用域解析符::和命名空间、作用域的关系 —— 杭州 2024-01-26 code review 文章目录 C++笔记之作用域解析符::和命名空间、作用域的关系1.`命名空间`和`作用域`两个术语的联系和区别命名空间(Namespace)作用域(Scope)联系与区别2.`作用域解析符::`和`命名空间`…

分段函数线性化方法matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…

桥接模式解析

桥接模式 意图 将抽象与其实现相分离,使得两者可以独立变化。 解释 案例:考虑武器有不同的特效,你想让不同的武器可以有不同的特效,你应该怎么做? 为每个武器创建不同的副本使得有不同的特效,还是你只单独…

记录一道ctf web题

0x00 前言 某同学发在群里一道不知道什么ctf的web题 0x01 bypass open_basedir 开始没想那么多,看到了可以执行phpinfo,直接先eval一个一句话上去看看什么情况: 接着发现了没有权限去读取/var/www/html以外的目录,那么我开始想的…

uniapp 使用echarts做折线图条形图。

提前10天把中烟活动做完了,以为能打酱油到除夕那天,结果又要做什么数据看板,方便烟草领导过年查看数据,还只给5天时间,真实压榨剥削啊,下辈子再也不‘拍黄片’了,不!下份工作我就转前…

破解Windows系统密码(保姆级教学)

前言: 本篇博客只是技术分享并非非法传播知识,实验内容均是在虚拟机中进行,并非真实环境 正文: 看到题目大家都已经晓得这篇博客是干嘛了,我也不废话了,直接上win7素材 需要windows10破解过程的关注后在下面评论"已关注,请私聊"我会私发给你 一.windows7电脑密码破解…

JAVA_Set系列集合:HashSet、LinkedHashSet、TreeSet底层详解

先看看 Set 系列集合的位置: Set 系列集合的特点: 无序:存取顺序不一致 如存入张三、李四、王五。而遍历获取到的是李四, 张三, 王五 不重复:可以去除重复无索引:没有带索引的方法,所以不能使用普通for循…

MTE内存扩展精讲与实战

思考 1、常见的内存安全问题有哪些?举例说明? 2、内存安全的软件缓解技术有哪些?在optee上的应用? 3、MTE下的内存安全性如何保证?空间安全性?时间安全性? 4、MTE的架构细节?硬件原…

8.14划分字母区间(LC763-M)(附.length,.length(),.size()使用原理)

算法: 在遍历的过程中相当于是要找每一个字母的边界,如果找到之前遍历过的所有字母的最远边界,说明这个边界就是分割点了。 此时前面出现过所有字母,最远也就到这个边界了。 步骤: 统计每一个字符最后出现的位置从…