控制器和pod调度流程

在k8s中controllers控制器也叫工作负载,常见的五种工作负载如下:

一、常见控制器

1、工作负载-ReplicaSet(副本控制器)

  • ReplicaSet用于解决pod的扩容和缩容问题。
  • 通常用于无状态应用

 2、工作负载-Deployment

Kubernetes Deployment提供了官方的用于更新Pod和Replica Set(下一代的ReplicationController)的方法,您可以在Deployment对象中只描述您所期望的理想状态(预期的运行状态),Deployment控制器为您将现在的实际状态转换成您期望的状态;
Deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)Deployment等功能,在某种程度上, Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、操作风险。
Deployment的典型用例:
    使用Deployment来启动(上线/部署)一个Pod或者ReplicaSet
    检查一个Deployment是否成功执行
    更新Deployment来重新创建相应的Pods(例如,需要使用一个新的Image)
    如果现有的Deployment不稳定,那么回滚到一个早期的稳定的Deployment版本

3、工作负载-StatefulSet

StatefulSet—有状态应用
用于解决各个pod实例独立生命周期管理,提供各个实例的启动顺序和唯一性
    稳定,唯一的网络标识符。
    稳定,持久存储--StatefulSet:每个pod对应一个pv
    有序的,优雅的部署和扩展。
    有序,优雅的删除和终止。
    有序的自动滚动更新。

4、工作负载-DaemonSet

DaemonSet能够让所有(或者一些特定)的Node节点运行同一个pod。当节点加入到kubernetes集群中, pod会被( DaemonSet)调度到该节点上运行,当节点从kubernetes集群中被移除,被( DaemonSet)调度的pod会被移除,如果删除DaemonSet,所有跟这个DaemonSet相关的pods都会被删除。
在使用kubernetes来运行应用时,很多时候我们需要在一个区域( zone)或者所有Node上运行同一个守护进程( pod),例如如下场景:
    每个Node上运行一个分布式存储的守护进程,例如glusterd, ceph
    运行日志采集器在每个Node上,例如fluentd, logstash
    运行监控的采集端在每个Node,例如prometheus node exporter, collectd等

5、Job

 6、CronJob

执行定时任务

二、pod调度流程

1、流程

2、筛选阶段的筛选规则

 3、优选阶段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

塞北酒鬼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值