zoukankan      html  css  js  c++  java
  • (3) kubernetes pod调度

    在kubernetes系统中,pod在大多数情况下只是容器的载体而已,通常需要通过RC、Deployment、DaemonSet、Job等对象来完成pod的调度及自动控制功能。

    以下来介绍pod的几种调度方法:

    1、RC、Deployment : 全自动调度

      RC的主要功能之一就是自动部署一个容器应用的多个副本,以及持续监控副本的数量,在集群内始终维持用户指定的副本数量。除了使用系统内置的调度算法选择合适的node进行调度,也可以指定满足的条件来进行调度。

      1)NodeSelector :定向调度

        k8s默认是Master上的Schedule服务(kube-scheduler进程)根据一系列复杂的算法,最终为pod选择合适的主机,但是有时候我们希望pod创建在指定的节点上。可以通过Node的Label和Pod的nodeSelector属性匹配来达到上述目的。

        (1)首先通过kubectl label来给node打上一些标签

        (2)然后在pod的nodeSelector设置来匹配,如果多个node定义了相同的label,则会选一台合适的主机来创建。

      注意:如果pod指定了nodeSelector,但是集群中没有包含本Label的node,即使有可使用的node,该pod也无法创建。

      2)NodeAffinity  :亲和性调度

        由于nodeSlector通过Node的Label进行精确匹配,所以NodeAffinity增加了In、NotIn、Exists、DoseNotExists、Gt、Lt等操作符来选择Node。

    2、DaemonSet :特定场景调度

      用来管理在集群中每个Node上运行一份pod的副本实例

    3、Job :批处理调度

      如果有个批处理任务(并行或者串行启动多个计算机进程去处理一批工作项,处理完成后,整个批处理任务结束。有以下几种模式:

      1)Job Template Expansion 模式 

        一个Job对象对应一个待处理的一批工作项(work iteam)

        使用场景:批处理(work iteam)比较少,每个work iteam 的处理的数据比较大的场景

      2)Queue with Pod Per Work Iteam模式:

        采用一个队列存放work iteam ,一个job对象作为消费者去完成这些work iteam,在这种模式下,job会启动N个Pod,一个pod对应一个work iteam

      3)Queue with Variable Pod Count模式:

        与2)一样,只是启动的Pod数量是可变的

  • 相关阅读:
    【问题】如何解决sql server链接mysql后,使用分布式事务?
    (4.57)sql server中的like,sql serverlike多个条件,sql server查找字符中出现了任意一个关键字
    prometheus+alertmanager根据配置标签来进行告警分组
    Attempt to fetch logical page (1:164360) in database 17 failed. It belongs to allocation unit 72057594328317952 not to 281474980642816.
    【基本优化实践】【1.7】sql server统计信息优化
    三角函数线
    恰成立命题
    正方体的截面
    构造函数的难点和层次
    例说导数法作函数的图像
  • 原文地址:https://www.cnblogs.com/creazylinux/p/7047848.html
Copyright © 2011-2022 走看看