Kubernetes提供了多种类型的Controller来管理和控制Pod的部署、伸缩、滚动升级等行为,常见的Controller包括:
Deployment Controller:用于管理Deployment资源对象,负责在Kubernetes集群中创建、更新和删除副本数量可变的应用程序。
ReplicaSet Controller:用于管理ReplicaSet资源对象,是Deployment Controller实现自动扩容、滚动升级等功能的核心组件。
StatefulSet Controller:用于管理StatefulSet资源对象,支持有状态服务应用程序的部署与伸缩。
DaemonSet Controller:用于管理DaemonSet资源对象,确保每个Node节点都运行一个Pod实例。适合一些需要在所有节点上运行同一个实例(如监控代理)的场景。
Job Controller:用于管理Job资源对象,即短暂运行且执行完成后就会退出的任务应用程序。比如数据处理、数据导入等异步任务。
CronJob Controller:用于管理CronJob资源对象,可以根据预定时间表自动执行任务。比如备份操作、定时清理操作等。
除了这些常见的Controller外,开发人员还可以通过编写自定义Controller来适应各种特殊需求。




