Kubernetes 文档 / 概念 / Kubernetes 架构 / 控制器

devtools/2024/10/18 23:22:09/

Kubernetes 文档 / 概念 / Kubernetes 架构 / 控制器

此文档从 Kubernetes 官网摘录
中文地址
英文地址

在 Kubernetes 中,控制器通过监控集群的公共状态,并致力于将当前状态转变为期望的状态。

控制器模式

一个控制器至少追踪一种类型的 Kubernetes 资源。这些 对象 有一个代表期望状态的 spec 字段。 该资源的控制器负责确保其当前状态接近期望状态。

通过 API 服务器来控制

Job 控制器是一个 Kubernetes 内置控制器的例子。 内置控制器通过和集群 API 服务器交互来管理状态。

Job 是一种 Kubernetes 资源,它运行一个或者多个 Pod, 来执行一个任务然后停止。

在集群中,当 Job 控制器拿到新任务时,它会保证一组 Node 节点上的 kubelet 可以运行正确数量的 Pod 来完成工作。 Job 控制器不会自己运行任何的 Pod 或者容器。Job 控制器是通知 API 服务器来创建或者移除 Pod。 控制面中的其它组件 根据新的消息作出反应(调度并运行新 Pod)并且最终完成工作。

创建新 Job 后,所期望的状态就是完成这个 Job。Job 控制器会让 Job 的当前状态不断接近期望状态:创建为 Job 要完成工作所需要的 Pod,使 Job 的状态接近完成。

控制器也会更新配置对象。例如:一旦 Job 的工作完成了,Job 控制器会更新 Job 对象的状态为 Finished。

直接控制

相比 Job 控制器,有些控制器需要对集群外的一些东西进行修改。

例如,如果你使用一个控制回路来保证集群中有足够的 节点,那么控制器就需要当前集群外的 一些服务在需要时创建新节点。

和外部状态交互的控制器从 API 服务器获取到它想要的状态,然后直接和外部系统进行通信 并使当前状态更接近期望状态。

期望状态与当前状态

Kubernetes 采用了系统的云原生视图,并且可以处理持续的变化。

在任务执行时,集群随时都可能被修改,并且控制回路会自动修复故障。 这意味着很可能集群永远不会达到稳定状态。

只要集群中的控制器在运行并且进行有效的修改,整体状态的稳定与否是无关紧要的。

设计

作为设计原则之一,Kubernetes 使用了很多控制器,每个控制器管理集群状态的一个特定方面。 最常见的一个特定的控制器使用一种类型的资源作为它的期望状态, 控制器管理控制另外一种类型的资源向它的期望状态演化。 例如,Job 的控制器跟踪 Job 对象(以发现新的任务)和 Pod 对象(以运行 Job,然后查看任务何时完成)。 在这种情况下,新任务会创建 Job,而 Job 控制器会创建 Pod。

运行控制器的方式

Kubernetes 内置一组控制器,运行在 kube-controller-manager 内。 这些内置的控制器提供了重要的核心功能。

Deployment 控制器和 Job 控制器是 Kubernetes 内置控制器的典型例子。

你会遇到某些控制器运行在控制面之外,用以扩展 Kubernetes。 或者,如果你愿意,你也可以自己编写新控制器。


http://www.ppmy.cn/devtools/35863.html

相关文章

【个人博客搭建】(17)使用FluentValidation 参数校验

FluentValidation 是一个用于 .NET 的开源验证库,它提供了一种流畅的接口和强类型验证规则,使得验证逻辑表达得更加清晰和简洁。(Apache-2.0) FluentValidation 的主要作用包括: 提高代码可读性:通过使用 F…

MvvmLight 框架的使用

前言 WPF开发中MVVM是一定要会使用的。本文就MvvmLight的基本使用做一下介绍。 1.安装 在NuGet中找MvvmLight 如图,右边有一个[安装]按钮。安装时有一个提示点【我接受】就可以继续安装了。 安装好后的效果: 安装好后会多一个ViewModel文件夹。有两个类…

ubuntu22.04:软件包 wps-office 需要重新安装,但是我无法找到相应的安装文件

错误原因:手动在wps官网上下载的linux deb版本的wps2019,想卸载但是一直报错 解决办法:执行如下命令 sudo rm -rf /var/lib/dpkg/info/wps-office*sudo dpkg --remove --force-remove-reinstreq wps-office 说明: sudo命令是以root执行&…

Python 操作PDF图片 – 添加、替换、删除PDF中的图片

PDF文件中的图片可以丰富文档内容,提升用户的阅读体验。除了在PDF中添加图片外,有时也需要替换或删除其中的图片,以改进视觉效果或更新信息。文本将提供以下三个示例,介绍如何使用Python 操作PDF文件中的图片: 目录 …

VBA重新排列Excel工作表顺序

Excel工作表重新排列顺序,少量可以手动拖动,工作表多时可以考虑代码操作。 https://mp.weixin.qq.com/s?__biz=MzkwMzY1OTIzOA==&mid=2247483722&idx=1&sn=6795bda22744f714b4de301432bd949a&chksm=c093aac3f7e423d56054ae1335341411e81c417fc8f39e8f685a0…

读天才与算法:人脑与AI的数学思维笔记20_数学图灵测试

1. 数学图灵测试 1.1. 能不能将这种计算机证明语言翻译成易于与人交流的方式呢? 1.1.1. 剑桥大学的两位数学家蒂莫西高尔斯(Timothy Gowers)和莫汉加内萨林加姆(Mohan Ganesalingam)开展了此项研究 1.1.1.1. 他们决…

力扣刷题--数组--第一天

一、数组 数组特点: 连续内存空间存储得数据元素类型一致数组可以通过下标索引查找数据元素,可以删除、替换、添加元素等 1.1 二分查找 使用二分查找需满足得条件: 数组是有序的;数组中没有重复元素;查找的target…

nginx--tcp负载均衡

mysql负载均衡 安装mysql yum install -y mariadb-server systemctl start mariadb systemctl enable mariadb ss -ntl创建数据库并授权 MariaDB [(none)]> create database wordpress; Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges o…