• Taints和Tolerations


    Taints和Tolerations和搭配使用的,Taints定义在Node节点上,声明污点及标准行为,Tolerations定义在Pod,声明可接受得污点。

    可以在命令行为Node节点添加Taints:

    kubectl taint nodes node1 key=value:NoSchedule

    也可以直接在node的定义中修改annotations:

    annotations:
      scheduler.alpha.kubernetes.io/taints: '[{"key":"xxx","operator":"Equal","value":"yyy","effect":"NoSchedule"}]'

    operator可以定义为:

    • Equal 表示key是否等于value,默认
    • Exists 表示key是否存在,此时无需定义value

    effect可以定义为:

    • NoSchedule 表示不允许调度,已调度的不影响
    • PreferNoSchedule 表示尽量不调度
    • NoExecute 表示不允许调度,已调度的在tolerationSeconds(定义在Tolerations上)后删除

    Node和Pod上都可以定义多个Taints和Tolerations,Scheduler会根据具体定义进行筛选,Node筛选Pod列表的时候,会保留Tolerations定义匹配的,过滤掉没有Tolerations定义的,过滤的过程是这样的:

    • 如果Node中存在一个或多个影响策略为NoSchedule的Taint,该Pod不会被调度到该Node
    • 如果Node中不存在影响策略为NoSchedule的Taint,但是存在一个或多个影响策略为PreferNoSchedule的Taint,该Pod会尽量不调度到该Node
    • 如果Node中存在一个或多个影响策略为NoExecute的Taint,该Pod不会被调度到该Node,并且会驱逐已经调度到该Node的Pod实例
  • 相关阅读:
    kettle 连接 SQL Server 异常
    Quartz.NET
    过滤器和拦截器
    Spring Web MVC(一)
    Spring(三)之自动装配、表达式
    spring(四)之基于注解(Annotation-based)的配置.md
    Spring(一)之IOC、bean、注入
    Spring(二)之配置.md
    cookie和session详解
    jsp基础与提高(EL、JSTL)
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/8856172.html
Copyright © 2020-2023  润新知