zoukankan      html  css  js  c++  java
  • 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实例
  • 相关阅读:
    maven
    XML
    软件安装配置
    常用命令
    hadoop 简单安装部署
    反射技术(一篇)
    SpringBoot(九篇)
    Struts2(十六篇)
    Spring(七篇)
    Spring MVC(七篇)
  • 原文地址:https://www.cnblogs.com/mhc-fly/p/8856172.html
Copyright © 2011-2022 走看看