k8s控制器理解

DaemonSet

一个DaemonSet对象能确保其创建的Pod在集群中的每一台(或指定)Node上都运行一个副本。如果集群中动态加入了新的Node,DaemonSet中的Pod也会被添加在新加入Node上运行。删除一个DaemonSet也会级联删除所有其创建的Pod。

典型应用场景:
1.每个节点运行日志收集服务
2.每个节点运行监控服务
3.每个中运行网络插件、存储插件

通俗理解:DaemonSet创建的pod可以分布在集群中的全部或者指定node上,若是集群中新加入node,也会自动在新node上创建一个pod。具体可以结合应用场景理解,差不多可以理解成就是每个node上都会用到的服务。

Deployment

Deployment 是最常用的用于部署无状态服务的方式。

StatefulSet

StatefulSet 是用来部署有状态服务。
什么场景需要使用StatefulSet呢?官方给出的建议是,如果你部署的应用满足以下一个或多个部署需求,则建议使用StatefulSet。

  • 稳定的、唯一的网络标识。
  • 稳定的、持久的存储。
  • 有序的、优雅的部署和伸缩。
  • 有序的、优雅的删除和停止。
  • 有序的、自动的滚动更新。
  • 实现固定的Pod IP方案, 可以优先考虑基于StatefulSet;
原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/13032017.html