在K8S中,有哪几种控制器类型?

在Kubernetes中,控制器(Controller)是用来确保实际集群状态与所需状态保持一致的关键组件。它们监控并自动调整系统以达到预期状态,以下是Kubernetes中主要的几种控制器类型:

ReplicationController(RC)

  • 早期版本的Kubernetes中用于保证指定数量的Pod副本始终运行。
  • 后来被ReplicaSet所取代,但在一些旧版文档或遗留集群中仍然可以看到。

ReplicaSet(RS)

  • 继承了ReplicationController的功能,并且支持更灵活的标签选择器。
  • 负责确保一定数量的相同Pod副本按用户设置的数量运行。

Deployment

  • 最常用的控制器类型之一
  • 使用ReplicaSet在后台来管理Pod的复制和更新过程。
  • 提供控制更新、滚动回滚、暂停与恢复等功能,使得应用的升级更为平滑和可控。

DaemonSet

  • 确保在每个(或满足特定条件的)Node上仅运行一个Pod副本。
  • 通常用于运行那些需要在每个节点上都存在实例的系统守护进程或agent。

Job

  • 用于执行一次性任务到完成的任务控制器,比如批处理作业。
  • 当其关联的Pod成功执行到完成(如主进程退出码为0)时,Job认为工作已经完成。

CronJob

  • 类似于Linux的cron定时任务,它会按照预定的时间表定期启动Job。
  • CronJob控制器可以自动化周期性任务的执行。

StatefulSet

  • 用于管理有序的、持久化的、具有唯一标识符和稳定的网络标识符的Pod集合。
  • 适用于需要存储卷持久化、有序启动和停止以及固定网络标识符(如DNS名称)的有状态应用。

Horizontal Pod Autoscaler(HPA)

不是严格意义上的控制器,但作为一种自动扩容缩容机制,根据CPU使用率或自定义度量指标动态调整Pod副本的数量。

综上所述:

以上控制器共同构建了Kubernetes集群管理的核心部分,确保集群资源能够按需创建、更新、调度和销毁,以维持集群整体的状态稳定性和可靠性。

相关推荐
Linux运维老纪19 分钟前
K8s 分布式存储后端(K8s Distributed Storage Backend)
服务器·分布式·云原生·容器·kubernetes·云计算·运维开发
小旺仔爱代码14 小时前
Docker
spring cloud·docker·容器
2的n次方_14 小时前
Nacos 的介绍和使用
java·spring boot·spring cloud·微服务·云原生·nacos
掘金-我是哪吒14 小时前
分布式微服务系统架构第91集:系统性能指标总结
分布式·微服务·云原生·架构·系统架构
yaoxtao1 天前
Docker的镜像
运维·docker·容器
不一样的信息安全1 天前
Docker环境下Nacos的保姆级安装教程
运维·docker·容器
小Tomkk1 天前
Docker 部署 Starrocks 教程
运维·starrocks·docker·容器
Future_yzx1 天前
Docker 安装详细教程(适用于CentOS 7 系统)
云原生·eureka
zhkmxx9301 天前
docker pull Error response from daemon问题
运维·docker·容器