【原文链接】
一、Pod控制器简介
1.1 什么是Pod控制器
在Kubernetes中,按照Pod的创建方式可以将其分为两类:
- 自主式Pod:Kubernetes直接创建出来的pod,这种pod删除后就没有了,也不会重建
- 控制器创建的Pod,通过控制器创建的Pod,这种pod删除之后会自动创建
Pod控制器就是管理Pod的中间层,使用了pod控制器之后,我们只需要告诉pod控制器,想要多少个什么样的pod就可以了,它就会创建出满足条件的pod并确保每一个pod处于用户期望的状态,如果Pod在运行中出现故障,控制器会基于指定策略重启或者重建pod
1.2 Kubernetes中Pod控制器种类
- ReplicationController:
比较原始的pod控制器,已经被废弃,有ReplicaSet替代
- ReplicaSet:
保证指定数量的pod运行,并支持pod数量变更,镜像版本变更
- Deployment:
通过控制ReplicaSet来控制pod,并支持滚动升级、版本回退
- Horizontal Pod Autoscaler:
可以根据集群负载自动调整Pod的数量,实现削峰填谷
- DaemonSet:
在集群中的指定Node上都运行一个副本,一般用于守护进程类的任务
- Job:
它创建出来的pod只要完成任务就立即退出,用于执行一次性任务
- Cronjob:
它创建的pod会周期性的执行,用于执行周期性任务
- StatefulSet:
管理有状态应用