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

server/2024/11/29 1:29:20/

在我们部署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节点。

http://www.ppmy.cn/server/145778.html

相关文章

云技术-docker

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…

Spring Boot 实战:分别基于 MyBatis 与 JdbcTemplate 的数据库操作方法实现与差异分析

1. 数据库新建表 CREATE TABLE table_emp(id INT AUTO_INCREMENT,emp_name CHAR(100),age INT,emp_salary DOUBLE(10,5),PRIMARY KEY(id) );INSERT INTO table_emp(emp_name,age,emp_salary) VALUES("tom",18,200.33); INSERT INTO table_emp(emp_name,age,emp_sala…

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端

CentOS上如何离线批量自动化部署zabbix 7.0版本客户端 管理的服务器大部分都是CentOS操作系统,版本主要是CentOS 7。因为监控服务器需要,要在前两天搭建的Zabbix 7.0系统上把这些CentOS 7系统都监控起来。因为服务器数量众多,而且有些服务器…

redislite:轻量级的嵌入式 Redis 解决方案

在现代应用程序中,数据存储和管理是至关重要的。Redis 是一个非常流行的内存数据结构存储,广泛用于缓存、会话存储和消息传递等场景。然而,在某些情况下,开发者并不希望在本地或服务器上维护一个独立的 Redis 实例。这时&#xff…

【cocos creator】下拉框

https://download.csdn.net/download/K86338236/90038176 const { ccclass, property } cc._decorator;type DropDownOptionData {optionString?: string,optionSf?: cc.SpriteFrame } type DropDownItemData {label: cc.Label,sprite: cc.Sprite,toggle: cc.Toggle }cccl…

JVM调优篇之JVM基础入门AND字节码文件解读

目录 Java程序编译class文件内容常量池附录-访问标识表附录-常量池类型列表 Java程序编译 Java文件通过编译成class文件后,通过JVM虚拟机解释字节码文件转为操作系统执行的二进制码运行。 规范 Java虚拟机有自己的一套规范,遵循这套规范,任…

行为型模式-命令模式

命令模式(Command Pattern)是一种行为设计模式,它将请求封装为一个对象,从而使你可以用不同的请求、队列或者日志来参数化对象。命令模式允许请求的发送者与接收者完全解耦。 关键组成部分 Command(命令接口&#xff0…

Git | 通过Gihub+git组合来学习理解团队项目合作中分支的创建、合并、删除操作

分支操作 Gihubgit步骤 1: 创建新的 GitHub 仓库步骤 2: 克隆仓库到本地步骤 3:创建并切换到新分支:步骤 4:修改文件并提交更改:【包含**查看改动提交更改**】步骤 5:将本地分支推送到 GitHub:步骤 6:合并分支步骤 7:删除本地分支和远程分支步…