一.Pod控制器及其功用
Pod控制器,又称之为工作负载(workload),是用于实现管理pod的中间层,确保pod资源符合预期的状态,pod的资源出现故障时,会尝试进行重启,当根据重启策略无效,则会重新新建pod的资源。
1.2 pod控制器有多种类型
(1)ReplicaSet: 代用户创建指定数量的pod副本,确保pod副本数量符合预期状态,并且支持滚动式自动扩容和缩容功能。
ReplicaSet主要三个组件组成:
1)用户期望的pod副本数量
2)标签选择器,判断哪个pod归自己管理
3)当现存的pod数量不足,会根据pod资源模板进行新建
帮助用户管理无状态的pod资源,精确反应用户定义的目标数量,但是RelicaSet不是直接使用的控制器,而是使用Deployment。
(2)Deployment:工作在ReplicaSet之上,用于管理无状态应用,目前来说最好的控制器。支持滚动更新和回滚功能,还提供声明式配置。
ReplicaSet 与Deployment 这两个资源对象逐步替换之前RC的作用。
(3)DaemonSet:用于确保集群中的每一个节点只运行特定的pod副本,通常用于实现系统级后台任务。比如ELK服务
特性:服务是无状态的
服务必须是守护进程
(4)StatefulSet:管理有状态应用
(5)Job:只要完成就立即退出,不需要重启或重建
(6)Cronjob:周期性任务控制,不需要持续后台运行
1.3 Pod与控制器之间的关系
controllers:在集群上管理和运行容器的 pod 对象, pod 通过 label-selector 相关联。
Pod 通过控制器实现应用的运维,如伸缩,升级等。
1.3.1 Deployment
![](https://i-blog.csdnimg.cn/blog_migrate/cef5ff86a3c2e3ab7dc21632c78407e3.png)
1.3.2 查看控制器配置
![](https://i-blog.csdnimg.cn/blog_migrate/98eebfa69e1517e9013dde81908dab79.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5c770857300c52f3a820056fa306f2c8.png)
1.3.3 查看历史版本
![](https://i-blog.csdnimg.cn/blog_migrate/eadf81ad3910ffc0229e8f1756cba907.png)
二.SatefulSet
![](https://i-blog.csdnimg.cn/blog_migrate/aca9f6783cb90caf32fb8d9eac654f11.png)