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一样。
  • 周期性任务

场景

  • 通知
  • 备份
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>