K8S 控制器理解

控制器:  用来控制Pod的具体状态和行为网络

Pod 分类less

  自主式Pod : Pod退出, 此类型Pod不会被建立. spa

  控制器Pod : 在控制器的生命周期始终维持Pod的副本数量. (就算Pod死亡, 也会自动建立维持Pod的数量)日志

  

控制器分类blog

ReplicationController (RC), ReplicaSet(RS支持集合式的selector):  副本控制器生命周期

 

RS和Deploment关系, =>   Deploment经过RS来控制Pod部署

 

 

Deployment : it

 为Pod和ReplicaSet提供一个声明式方法,用来代替ReplicationController来方便管理应用,典型的场景有:io

 1>定义Deployment来建立Pod和ReplicaSet集群

 2>滚动升级和回滚应用

 3>扩容和缩容

 4>暂停和继续Deploment

 

DaemonSet

确保所有(一些)Node上运行一个Pod副本.  当有Node加入集群,会为他们新增一个Pod,删除DaemonSet将会删除它建立的Pod.

使用场景:

  运行集群的存储daemon,

  每一个Node的日志收集, fluentd ,logtash

  每一个Node的监控程序.

  

Job

负责批量任务,仅执行一次任务, 保证批处理任务一个或多个Pod成功结束

 

CronJob
定时调度某个时间执行一次或循环屡次执行

 

StatefulSet

做为Controller为Pod提供惟一的标识 , 证部署和scale的顺序.

StatefulSet用来解决有状态服务的问题, 场景以下:

1>稳定的持久化存储, 即Pod从新调度后能访问持久化数据,基于PCV实现,

2>稳定的网络标识, 即Pod从新调度后PodName和HostName不变, 基于Headless Services(即没有Cluster IP的Service) 来实现.
3>有序部署和有序扩展, 0-> N  下一个执行基于前一个已经Running或Ready, 基于InitC实现

4>有序删除N->0

 

Horizontal Pod Autosacling

相关文章
相关标签/搜索