一: Deployment/RC: 全自动调度Deployment或RC的主要功能之一就是自动部署一个容器应用的多份副本,以及持续监控副本的数量,在集群内始终维持用户指定的副本数量。
二: NodeSelector: 定向调度可以通过Node的标签(Label)和Pod的nodeSelector属性匹配,将Pod调度到指定节点。
三: NodeAffinity: 亲和性调度用于替换NodeSelector的全新调度策略,目前有两种节点亲和性表达。
1. RequiredDuringSchedulingIgnoredDuringExecution: 必须满足指定的规则才可以调度Pod到Node上,相当于硬限制。
2. PreferredDuringSchedulingIgnoredDuringExecution: 强调优先满足指定规则,调度器会尝试调度Pod到Node上,但并不强求,相当于软限制。多个优先级规则还可以设置权重值,以定义执行的先后顺序。
如果同时定义了nodeSelector和nodeAffinity,那么必须两个条件都得到满足,Pod才能最终运行在指定的Node上。
四:PodAffinity: 亲和与互斥调度策略五: Taints和Tolerations(污点和容忍)Taint需要和Toleration配合使用,让Pod避开那些不适合的Node. 在Node上设置一个或多个Taint之后,除非Pod明确生命能够容忍这些“污点”,否则无法在这些Node上运行。Toleration是Pod的属性,让Pod能够运行在标注了Taint的Node上。
六: DaemonSet: 在每个Node上调度一个Pod七: Job批处理调度1.Job Template Expansion模式:一个Job对象对应一个待处理的Work item,有几个Work item就产生几个独立的Job,通常适合Work item 数量少,每个Work item处理的数据量比较大的场景。
2.Queue with Pod Per Work Item模式:采用一个任务队列存放Work item,一个Job对象作为消费者去完成这些Work item,在这种模式下,Job会启动N个Pod,每个Pod对应一个Work item.
3.Queue with Variable Pod Count 模式:也是采用一个任务队列存放Work item,一个Job对象作为消费者去完成这些Work item,但与上面的模式不同,Job启动的Pod数量是可变的。
八: Cronjob: 定时任务类似于Linux Cron的定时任务Cron Job.
九: 自定义调度
网站标题:kubernetes实践之三十八:Pod调度
文章起源:
http://shouzuofang.com/article/jphdii.html