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控制器的主要内容,如果未能解决你的问题,请参考以下文章

k8s的名称空间标签deployment控制器弹性伸缩

K8s控制器原理介绍

k8s控制器Deployment使用详解

K8s的Pod控制器详解

K8S-[二]Deployment控制器

k8s的pod控制器