一、什么是控制器
- 控制器是管理pod的中间层,只需要告诉Pod控制器,想要创建多少个什么样的Pod,它会创建出满足条件的Pod ;
- 控制器相当于一个状态机,用来控制Pod的具体状态和行为 ;
- controller会自动创建相应的pod资源,并在当pod发生故障的时候按照策略进行重新编排;
- 通过它来实现对pod的管理,比如启动pod、停止pod、扩展pod的数量等等 ;
通俗来说就是,控制器就是pod的幕后老板
二、k8s中常用的控制器
k8s发展到今天,产生了很多种控制器,以下列举常用的几类控制器;
ReplicaSet
ReplicaSet 主要具备下面的特点:
- 一种副本控制器,简称
rs
,主要是控制由其管理的pod,使pod副本的数量始终维持在预设的个数 ; - 并支持pod数量扩缩容,镜像版本升级 ;
- 官方建议不要直接使用ReplicaSet,用Deployments更好,并提供很多其它有用的特性 ;
Deployment
通过控制ReplicaSet来控制Pod,并支持滚动升级、回退版本,适合无状态的服务部署
主要特点如下:
- 当某个应用有新版本发布时,Deployment会同时操作