在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集群管理的核心部分,确保集群资源能够按需创建、更新、调度和销毁,以维持集群整体的状态稳定性和可靠性。

相关推荐
天地之于壹炁兮1 小时前
Docker革命:软件开发的集装箱时代
docker·容器·eureka
勇往直前plus1 小时前
Docker 拉取镜像:SSL 拦截与国内镜像源失效问题解决
docker·容器·https·ssl
Serverless社区3 小时前
为什么别人用 DevPod 秒启 DeepSeek-OCR,你还在装环境?
阿里云·云原生·serverless
一枚正在学习的小白3 小时前
k8s的包管理工具helm3--流程控制语句和变量(3)
linux·运维·服务器·云原生·kubernetes
缘的猿5 小时前
kubectl 学习心得:从入门到实践的 K8s 命令行掌控之旅
云原生·容器·kubernetes
阿里云云原生5 小时前
用户说“App 卡死了”,你却查不到原因?可能是监控方式错了
云原生
老友@5 小时前
Docker 部署 Node.js + Playwright 项目,实现浏览器截图、打印和下载
docker·容器·node.js·playwright
2401_840192276 小时前
什么是ingress?
docker·容器·kubernetes
晚风 -8 小时前
idea中Docker一键自动化部署
docker·容器·自动化