K8S控制器
Posted _雪辉_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S控制器相关的知识,希望对你有一定的参考价值。
无状态和有状态区别
无状态:
- deployment认为所有的pod都是一样的
- 不用考虑顺序的要求
- 不用考虑在哪个node节点上运行
- 可以随意扩容和缩容
有状态:
- 实例之间有差别,每个实例都有自己的独特性,元数据不同,例如etcd, zookeeper
- 实例之间不对等的关系,以及依靠外部存储的应用。
一、deployment
特点
- 部署无状态应用,只关心数量,不论角色等,称无状态
- 管理Pod和ReplicaSet
- 具有上线部署、副本设定、滚动升级、回滚等功能
- 提供声明式更新,例如只更新一个新的image
场景
- web 服务
二、SatefulSet
特点
- 部署有状态应用
- kind:service
- 解决Pod独立生命周期,保持Pod启动顺序和唯一性
- 稳定,唯一的网络标识符,持久存储(etcd 配置文件,节点地址发生变化,将无法使用)
- 有序,优雅的部署和扩展、删除和终止(mysql 主从关系,先启动主,再启动从),有序,滚动更新
场景
- 数据库
三、DaemonSet
特点
- 在每一个Node上运行一个Pod
- 新加入的Node也同样会自动运行一个Pod
场景
- 监控、agent
四、Job
特点
- Job分为普通任务(Job)和定时任务(CronJob)
- 一次性执行
场景
- 离线数据处理,视频解码等业务
五、CronJob
特点
- 周期性任务,像Linux的Crontab一样。
- 周期性任务
场景
- 通知
- 备份
以上是关于K8S控制器的主要内容,如果未能解决你的问题,请参考以下文章