etcd、kube-apiserver、kube-controller-manager和kube-scheduler有什么区别

在我们部署K8S集群的时候
初始化master节点之后(在master上面执行这条初始化命令)

kubeadm init   --apiserver-advertise-address=10.0.1.176 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.16.0   --service-cidr=10.140.0.0/16 --pod-network-cidr=10.240.0.0/16

然后就会在master机器上面的/etc/kubernetes/manifests看到
etcd、kube-apiserver、kube-controller-manager和kube-scheduler的配置文件

在这里插入图片描述

1. 相同点

- **集群关键组件**:它们都是Kubernetes集群中非常重要的组成部分,共同协作来保证集群的正常运行。就像一个交响乐团中的不同乐器组,虽然各自有分工,但要一起演奏才能呈现出完整的乐曲。
- **数据共享与交互**:这些组件之间相互关联,会共享和交互数据。它们通过各种方式(如API调用、消息传递等)来协调工作,确保整个集群的状态是一致的。
  1. 不同点和用处
    • etcd
      • 功能形象比喻:可以把etcd看作是集群的“记忆中心”或者“信息仓库”。
      • 具体作用:它是一个分布式的键 - 值存储系统,用于存储Kubernetes集群的所有配置数据和状态信息。例如,每个Pod的详细信息(如IP地址、所属的服务等)、各种资源对象(如Deployment、Service等)的定义和状态都存储在etcd中。当其他组件(如kube - apiserver)需要查询或者更新这些信息时,就会和etcd进行交互。这就好比乐团的乐谱管理中心,所有的曲目(集群信息)都存放在这里,供乐手(其他组件)查阅和修改。
    • kube - apiserver
      • 功能形象比喻:如同集群的“总服务台”或者“通信枢纽”。
      • 具体作用:它提供了集群的API接口,接收来自外部(如用户通过kubectl命令行工具或者其他自动化系统)的请求,这些请求包括创建、读取、更新和删除集群中的各种资源(如Pod、Service等)。它还负责与集群内的其他组件进行通信,协调它们的工作。就像乐团的指挥助理,接收来自观众(外部请求)的要求,并传达给各个乐器组(其他组件)。
    • kube - controller - manager
      • 功能形象比喻:类似于集群的“状态监管员”或者“自动修正小队”。
      • 具体作用:它管理着一组控制器,这些控制器负责不断检查和维护集群的状态。例如,副本控制器会确保某个应用的副本数量符合用户设定的要求;节点控制器会关注节点的状态,当节点出现故障时,会将该节点上的Pod重新调度到其他正常节点。它就像乐团中的调音师,时刻关注每个乐器(资源)的状态,一旦发现走音(状态异常)就会进行调整。
    • kube - scheduler
      • 功能形象比喻:可以看作是集群的“任务分配大师”或者“工作调度员”。
      • 具体作用:它的主要职责是决定将新创建的Pod分配到哪个工作节点(Node)上运行。在做决策时,它会考虑节点的资源(如CPU、内存)空闲情况、当前的负载以及Pod的资源需求等因素。这就好比乐团排练时的座位安排员,根据每个乐手(Pod)的特点(资源需求)和座位(节点)的情况,合理地安排乐手就座。

此外

  1. kube - apiserver都是在master节点上,而Master节点可以有多个,所以kube - apiserver也会有多个,为了高可用。
  2. kube - controller - manager
    • 都是在master节点上,而Master节点可以有多个,所以kube - controller - manager也会有多个,为了高可用。,以提供冗余和高可用性。
  3. kube - scheduler
    • 都是在master节点上,而Master节点可以有多个,所以kube - scheduler也会有多个,为了高可用。,以提供冗余和高可用性。
  4. etcd
    • 但etcd可以独立于Master节点。etcd是一个分布式键 - 值存储系统,会在多个节点(可以是专门的etcd节点,也可以和Master节点复用)之间进行复制。这意味着etcd集群可能由多个节点组成,而不仅仅局限于Master节点。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp定义new plus.nativeObj.View实现APP端全局弹窗

为什么要用new plus.nativeObj.View在APP端实现弹窗?因为uni.showModal在APP端太难看了。 AppPopupView弹窗函数参数定义 参数一:弹窗信息(所有属性可不填,会有默认值) 1.title:"", //标题 2.content:"", //内容 3.confirmBoxCo…

一文学习开源框架OkHttp

OkHttp 是一个开源项目。它由 Square 开发并维护,是一个现代化、功能强大的网络请求库,主要用于与 RESTful API 交互或执行网络通信操作。它是 Android 和 Java 开发中非常流行的 HTTP 客户端,具有高效、可靠、可扩展的特点。 核心特点 高效…

DRM(数字权限管理技术)防截屏录屏----视频转hls流加密、web解密播放

提示:视频转hls流加密、web解密播放 需求:研究视频截屏时,播放器变黑,所以先研究的视频转hls流加密 文章目录 [TOC](文章目录) 前言一、工具ffmpeg、openssl二、后端nodeexpress三、web播放四、文档总结 前言 ‌HLS流媒体协议‌&a…

Rk3588 onnx转rknn,出现 No module named ‘rknn‘

一、操作步骤: rk3588 需要将yolo11 的模型onnx转rknn。 https://github.com/airockchip/rknn_model_zoo/tree/main/examples/yolo11 这个是用yolo11训练的模型,有80种类型。 完整下载下来后,在按文档描述下载模型下来: 然后进…

IDEA 解决Python项目import导入报错、引用不到的问题

使用Idea 23.1 专业版编写Python项目时,import 导入爆红,无法引入其他package的代码,现象如: 解决方案:Idea表头打开 File -> Project Settring 解决效果:

unity 使用UI上的数字按钮,给text添加数字,并且显示光标,删除光标前数字,

今天有个需求,输入身份证,但是不用键盘,要点击按钮输入数字,并且可以控制光标, 1、数字按钮:点击后text添加数字内容 2、删除按钮:删除光标前的一个字符 3、左箭头:移动光标向左移动…

火山引擎VeDI在AI+BI领域的演进与实践

随着数字化时代的到来,企业对于数据分析与智能决策的需求日益增强。作为新一代企业级数据智能平台,火山引擎数智平台VeDI基于字节跳动多年的“数据驱动”实践经验,也正逐步在AI(人工智能)与BI(商业智能&…

【逐行注释】自适应观测协方差R的AUKF(自适应无迹卡尔曼滤波,MATLAB语言编写),附下载链接

文章目录 自适应R的UKF逐行注释的说明运行结果部分代码各模块解释 自适应R的UKF 自适应无迹卡尔曼滤波(Adaptive Unscented Kalman Filter,AUKF)是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波(Unscented Kalman Filter&…

LLM应用-prompt提示:RAG query重写、相似query生成 加强检索准确率

参考: https://zhuanlan.zhihu.com/p/719510286 1、query重写 你是一名AI助手,负责在RAG(知识库)系统中通过重构用户查询来提高检索效果。根据原始查询,将其重写得更具体、详细,以便更有可能检索到相关信…

Spring Boot 与 Spring Cloud Alibaba 版本兼容对照

版本选择要点 Spring Boot 3.x 与 Spring Cloud Alibaba 2022.0.x Spring Boot 3.x 基于 Jakarta EE,javax.* 更换为 jakarta.*。 需要使用 Spring Cloud 2022.0.x 和 Spring Cloud Alibaba 2022.0.x。 Alibaba 2022.0.x 对 Spring Boot 3.x 的支持在其发行说明中…

如何通过PHP爬虫模拟表单提交,抓取隐藏数据

引言 在网络爬虫技术中,模拟表单提交是一项常见的任务,特别是对于需要动态请求才能获取的隐藏数据。在电商双十一、双十二等促销活动期间,商品信息的实时获取尤为重要,特别是针对不断变化的价格和库存动态。为了满足这种需求&…

嵌入式Qt使用ffmpeg视频开发记录

在此记录一下Qt下视频应用开发的自学历程,可供初学者参考和避雷。 了解常用音频格式yuv420p、h264等了解QML,了解QVideoOutput类的使用,实现播放yuv420p流参考ffmpeg官方例程,调用解码器实现h264解码播放 不需要手动分帧。ffmpeg…

Java设计模式笔记(一)

Java设计模式笔记(一) (23种设计模式由于篇幅较大分为两篇展示) 一、设计模式介绍 1、设计模式的目的 让程序具有更好的: 代码重用性可读性可扩展性可靠性高内聚,低耦合 2、设计模式的七大原则 单一职…

dns 服务器简单介绍

dns 服务器分类: 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里&#xf…

vscode中json文件的注释飘红

vscode的json文件 添加注释,提示json中不允许有注释,点编辑器最下面的json,如下图 然后选择如上图的json with comments就好了

AI PAC!PLC与AIPC通过微定制深度融合助力工业场景下人工智能的落地!

一,前言 科技日益发展,总是会诞生出一些新应用和新场景,而这些场景一开始可能并没有对应的解决方案,这个时候就需要定制化的开发来适应新需求,而硬件的定制开发更为头疼,硬件开发设计到外观设计、结构设计、…

Python多进程/多线程通信实例

Python多进程/多线程通信实例 1. 多进程/多线程 多线程的定义 多线程(Multithreading) 是一种并发执行的编程技术,在一个进程内创建和管理多个线程,每个线程可以独立执行任务。线程是进程中的一个执行单元,多个线程共…

数据结构(Java)—— ArrayList

1.线性表 线性表( linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在…

【Qt】重写QComboBox下拉展示多列数据

需求 点击QComboBox时&#xff0c;下拉列表以多行多列的表格展示出来。 实现 直接上代码&#xff1a; #include <QComboBox> #include <QTableWidget> #include <QVBoxLayout> #include <QWidget> #include <QEvent> #include <QMouseEve…

NVR录像机汇聚管理EasyNVR多个NVR同时管理基于B/S架构的技术特点与能力应用

EasyNVR视频融合平台基于云边端协同设计&#xff0c;能够轻松接入并管理海量的视频数据。该平台兼容性强、拓展灵活&#xff0c;提供了视频监控直播、录像存储、云存储服务、回放检索以及平台级联等一系列功能。B/S架构使得EasyNVR实现了视频监控的多元化兼容与高效管理。 其采…