设置容忍策略
容忍度(Toleration) 允许调度器将Pod调度至带有对应污点的节点上。 容忍度需要和节点污点相互配合,每个节点上都可以拥有一个或多个污点,对于未设置容忍度的Pod,调度器会根据节点上的污点效果进行选择性调度,可以用来避免Pod被分配到不合适的节点上。更多关于容忍度的使用示例请参见污点和容忍度。
污点可以指定多种效果,对应的容忍策略对Pod运行影响如下:
| 
        污点效果  | 
      
        Pod未设置对污点的容忍策略  | 
      
        Pod已设置对污点的容忍策略  | 
     
|---|---|---|
| 
        NoExecute  | 
      
       
  | 
      
       
  | 
     
| 
        PreferNoSchedule  | 
      
       
  | 
      
        Pod可以在这个节点上一直运行。  | 
     
| 
        NoSchedule  | 
      
       
  | 
      
        Pod可以在这个节点上一直运行。  | 
     
通过控制台配置容忍策略
- 登录CCE控制台,单击集群名称进入集群。
 - 在创建工作负载时,在“高级配置”中找到“容忍策略”。
 - 添加污点容忍策略。
     
     
表1 容忍策略设置参数说明 参数名
参数描述
污点键
节点的污点键。
操作符
- Equal:设置此操作符表示准确匹配指定污点键(必填)和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。
 - Exists:设置此操作符表示匹配存在指定污点键的节点,此时容忍度不能指定污点值。若不填写污点键则可以容忍全部污点。
 
污点值
操作符为Equal时需要填写污点值。
污点策略
- 全部:表示匹配所有污点效果。
 - NoSchedule:表示匹配污点效果为NoSchedule的污点。
 - PreferNoSchedule:表示匹配污点效果为PreferNoSchedule的污点。
 - NoExecute:表示匹配污点效果为NoExecute的污点。
 
容忍时间窗
即tolerationSeconds参数,当污点策略为NoExecute时支持配置。
在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。
 
默认容忍策略说明
Kubernetes会自动给Pod添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的容忍度,且配置容忍时间窗(tolerationSeconds)为300s。这些默认容忍度策略表示当Pod运行的节点被打上这两个污点之一时,可以在5分钟内依旧保持运行在该节点上。
 
    DaemonSet中的Pod被创建时,针对以上污点自动添加的容忍度将不会指定容忍时间窗,即表示节点存在上述污点时,DaemonSet中的Pod一直不会被驱逐。
tolerations:
  - key: node.kubernetes.io/not-ready
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300
  - key: node.kubernetes.io/unreachable
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300
  相关文档
- 创建工作负载:了解工作负载的更多参数。
 - 管理工作负载:工作负载创建后,您可以对其执行升级、编辑YAML、查看日志等操作。
 - 如果工作负载创建失败,请参考工作负载异常问题排查进行处理。