Kubernetes核心概念汇总—Kubernetes 组件

news2024/11/26 15:53:30

当你部署完 Kubernetes,便拥有了一个完整的集群。
一组工作机器,称为 节点, 会运行容器化应用程序。每个集群至少有一个工作节点。
工作节点会托管 Pod ,而 Pod 就是作为应用负载的组件。 控制平面管理集群中的工作节点和 Pod。 在生产环境中,控制平面通常跨多台计算机运行, 一个集群通常运行多个节点,提供容错性和高可用性。
本文档概述了一个正常运行的 Kubernetes 集群所需的各种组件。

Kubernetes 集群的组件

​一、控制平面组件(Control Plane Components)

控制平面组件会为集群做出全局决策,比如资源的调度。 以及检测和响应集群事件,例如当不满足部署的 replicas 字段时, 要启动新的 pod)。
控制平面组件可以在集群中的任何节点上运行。 然而,为了简单起见,设置脚本通常会在同一个计算机上启动所有控制平面组件, 并且不会在此计算机上运行用户容器。 请参阅使用 kubeadm 构建高可用性集群 中关于跨多机器控制平面设置的示例。

1、kube-apiserver

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

2、etcd

一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。
如果你的 Kubernetes 集群使用 etcd 作为其后台数据库, 请确保你针对这些数据有一份 备份计划。

3、kube-scheduler

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

4、kube-controller-manager

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

  • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
  • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
  • 端点分片控制器(EndpointSlice controller):填充端点分片(EndpointSlice)对象(以提供 Service 和 Pod 之间的链接)。
  • 服务账号控制器(ServiceAccount controller):为新的命名空间创建默认的服务账号(ServiceAccount)。

5、cloud-controller-manager

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

cloud-controller-manager 仅运行特定于云平台的控制器。 因此如果你在自己的环境中运行 Kubernetes,或者在本地计算机中运行学习环境, 所部署的集群不需要有云控制器管理器。

与 kube-controller-manager 类似,cloud-controller-manager 将若干逻辑上独立的控制回路组合到同一个可执行文件中, 供你以同一进程的方式运行。 你可以对其执行水平扩容(运行不止一个副本)以提升性能或者增强容错能力。

下面的控制器都包含对云平台驱动的依赖:

  • 节点控制器(Node Controller):用于在节点终止响应后检查云提供商以确定节点是否已被删除
  • 路由控制器(Route Controller):用于在底层云基础架构中设置路由
  • 服务控制器(Service Controller):用于创建、更新和删除云提供商负载均衡器

二、Node 组件

节点组件会在每个节点上运行,负责维护运行的 Pod 并提供 Kubernetes 运行环境。

1、kubelet

kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。
kubelet 接收一组通过各类机制提供给它的 PodSpecs, 确保这些 PodSpecs 中描述的容器处于运行状态且健康。 kubelet 不会管理不是由 Kubernetes 创建的容器。

2、kube-proxy

kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。
kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。
如果操作系统提供了可用的数据包过滤层,则 kube-proxy 会通过它来实现网络规则。 否则,kube-proxy 仅做流量转发。

3、容器运行时(Container Runtime)

容器运行环境是负责运行容器的软件。
Kubernetes 支持许多容器运行环境,例如 containerd、 CRI-O 以及 Kubernetes CRI (容器运行环境接口) 的其他任何实现。

三、 插件(Addons)

插件使用 Kubernetes 资源(DaemonSet、 Deployment 等)实现集群功能。 因为这些插件提供集群级别的功能,插件中命名空间域的资源属于 kube-system 命名空间。
下面描述众多插件中的几种。有关可用插件的完整列表,请参见 插件(Addons)。

1、DNS

尽管其他插件都并非严格意义上的必需组件,但几乎所有 Kubernetes 集群都应该有集群 DNS, 因为很多示例都需要 DNS 服务。
集群 DNS 是一个 DNS 服务器,和环境中的其他 DNS 服务器一起工作,它为 Kubernetes 服务提供 DNS 记录。
Kubernetes 启动的容器自动将此 DNS 服务器包含在其 DNS 搜索列表中。

2、Web 界面(仪表盘)

Dashboard 是 Kubernetes 集群的通用的、基于 Web 的用户界面。 它使用户可以管理集群中运行的应用程序以及集群本身, 并进行故障排除。

3、容器资源监控

容器资源监控 将关于容器的一些常见的时间序列度量值保存到一个集中的数据库中, 并提供浏览这些数据的界面。

4、集群层面日志

集群层面日志机制负责将容器的日志数据保存到一个集中的日志存储中, 这种集中日志存储提供搜索和浏览接口。

5、网络插件

网络插件 是实现容器网络接口(CNI)规范的软件组件。它们负责为 Pod 分配 IP 地址,并使这些 Pod 能在集群内部相互通信。

📢文章下方有交流学习区!一起学习进步!也可以前往官网,加入官方微信交流群💪💪💪
📢创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗ 

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

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

相关文章

应用服务器Application Server manual

Application Server manual Sun Java™ System Application ServerStart Default ServerServer is RunningAdmin Console Sun Java™ System Application Server 从事Java EE的研发很多年,竟然才知道Sun开发的Application Server,以及最新版本Glassfish…

解决Vue.js not detected的问题(Vue.js devtools变灰色)

今天在谷歌商店下载安装了Vue.js devtools,但是出现了图标是灰色,鼠标移过去是Vue.js not detected的问题 首先呢,要去找一个有vue.js写的网站,比如哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 此时发现图标不再是灰色的,也不出现Vue.js…

@SuppressWarnings注解的作用

一、问题由来 我们在写代码的时候,不论是导入的包,还是声明的对象,有时候会出现黄线,感觉就很难受! SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点…

Apache数据库项目盘点

著名的开源软件组织 Apache 软件基金会目前维护着 300 多个活跃项目,其中包含不少数据库相关的项目,本文简单介绍一下这些开源项目。 Apache AGE Apache AGE 是一个基于 PostgreSQL 的图数据库,目标是为所有关系型数据库提供图数据处理和分…

漏洞复现|Kyan密码泄露/命令执行漏洞

0x01阅读须知 所有发布的技术文章仅供参考,未经授权请勿利用文章中的技术内容对任何计算机系统进行入侵操作,否则对他人或单位而造成的直接或间接后果和损失,均由使用者本人负责。 郑重声明:本文所提供的工具与思路仅用于学习与…

Java【异常】

异常 1. 异常概念程序开发中常见异常 2. 异常的体系结构2.1 异常体系核心父类异常的另外划分模式 3. 异常的处理流程3.1 异常的捕获并处理try-catch-finally代码块组合一:try catch组合二:finally代码块finally不执行的特殊情况 3.2 throw 和 throws3.3 …

8 系统定时器(Systick)(STM32HAL库)

目录 系统定时器(Systick) SysTick定时器特性介绍 SysTick定时器的功能 SysTick定时器寄存器介绍 Systick定时器的使用 系统定时器(Systick) SysTick定时器特性介绍 计数宽度: 24bit来存储数据,2^24…

Spring高手之路7——事件机制与监听器的全面探索

文章目录 1. Spring中的观察者模式2. 监听器2.1 实现ApplicationListener接口创建监听器2.2 EventListener注解创建监听器2.3 对比ApplicationListener接口和EventListener注解的创建方式 3. Spring的事件机制3.1 ApplicationEvent3.2 ApplicationContextEvent3.3 ContextRefre…

基于weka平台手工实现(LinearRegression | Ridge Regression,岭回归)

一、普通的线性回归 线性回归主要采用最小二乘法来实现,主要思想如下: X ( x 11 x 12 ⋯ x 1 d 1 x 21 x 22 ⋯ 5 1 ⋮ ⋮ ⋱ ⋮ ⋮ x m 1 x m 2 ⋯ x m d 1 ) X\left( \begin{matrix} x_{11} & x_{12} & \cdots & x_{1d} & 1 \\ x_{2…

Vinted店铺为什么被封?如何应对?

Vinted是一家在线二手交易平台,专门用于买卖衣物和时尚配件。自从2022年以来,Vinted也越来越向综合性跨境电商平台转变。细心的伙伴都会发现,近来Vinted这阵子封号确实很严重,感觉是风控变严格了,但是万变不离其宗&…

xhtmlrenderer 将html转换成pdf,设置多字体, 以及中文不显示的问题

接上一篇 https://blog.csdn.net/qq_21480147/article/details/131187202 多字体 字体文件自行搜索或者window中自带的搜索(C:\Windows\Fonts) 中文不显示 在要渲染的中文的地方中设置stylefont-family:[字体] 该字体需要对应指定的属性, 属性参考:

java程序改变io临时存储路径

System.setProperty(“java.io.temdir”,“your path”)

【UE5 Cesium】08-Cesium for Unreal 子关卡应用实例(上)

UE版本:5.1 效果 (运行游戏可以看到进入关卡体积内楼房模型才会显现,以此来减少电脑性能消耗) 步骤 一、新建两个子关卡(以北京和上海为例) 点击窗口-》关卡-》新建 命名第一个子关卡为“SubLevel_Bei…

计算机专业学生暑假要去看这些经典书籍!

好书在精不在多,每一本经典书籍都值得反复咀嚼,温故而知新! 分享几本经典书籍。 重构 改善既有代码的设计 就像豆瓣评论所说的,看后有种醍醐灌顶、欲罢不能的感觉。无论你是初学者,还是深耕多年的老手,这…

Bytebase VS Yearning

下文对 Bytebase 和 Yearning 两个数据库管理工具进行了多维度比较🔍。 产品功能定位 Yearning:功能较为单一的独立数据库审核工具,适合小团队进行简单的 SQL 审核,若要应对复杂需求必须进行大量二次开发,用户群更偏…

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南!

因为我一直在分享自动化测试技术,所以,经常被问到: 功能测试想转自动化,请问应该怎么入手?或者有哪些书推荐? 那么,接下来我就结合自己的经历聊一聊我是如何在工作中做自动化测试的。 测试新…

【技术操作】EasyCVR如何在分享页增加控制台跳转?

EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。 在Ea…

6.4.2 文件隐藏属性

chattr指令只能在Ext2/Ext3/Ext4的 Linux 传统文件系统上面完整生效, 其他的文件系统可能就无法完整的支持这个指令了,例如 xfs 仅支持部份参数而已。 chattr (设置文件隐藏属性) 这个指令很重要,在系统的数据安全上面…

互联网医院平台|互联网医院搭建|线上医疗系统开发必要功能

医疗服务行业一直以来都有着较好的发展市场,为了进一步拓展医疗行业的发展空间,开始选择布局线上渠道,互联网医院平台的出现解决了线下就医的一些困境,比如改善人流如潮的情况,提升医护人员的工作效率,那么…

AutoSAR系列讲解(入门篇)3.1-RTE概述

一、什么是RTE RTE的作用有点像一个快递中转站或者说是电话接线员(就是上个世界那种要先打电话到接线员那里,然后通过接线员转接电话线到目的地),其作 用就是将一个SWC的信息通过RTE连接到其他SWC或者BSW上。且RTE具有管理这些信…