# 设置容忍策略
容忍度（Toleration） 允许调度器将Pod调度至带有对应污点的节点上。 容忍度需要和[节点污点](https://support.huaweicloud.com/usermanual-cce/cce_10_0352.html)相互配合，每个节点上都可以拥有一个或多个污点，对于未设置容忍度的Pod，调度器会根据节点上的污点效果进行选择性调度，可以用来避免Pod被分配到不合适的节点上。更多关于容忍度的使用示例请参见[污点和容忍度](https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/)。
污点可以指定多种效果，对应的容忍策略对Pod运行影响如下：
| 污点效果             | Pod未设置对污点的容忍策略                                                                                                                                                            | Pod已设置对污点的容忍策略                                                                                                                                                                                                                                          |
|:---|:---|:---|
| NoExecute          | - 已运行在该节点的Pod会立刻被驱逐。  - 未运行的Pod不会被调度到该节点。       | - 未指定容忍时间窗（tolerationSeconds）：Pod可以在这个节点上一直运行。  - 已指定容忍时间窗（tolerationSeconds）：在容忍时间窗内，Pod还会在拥有污点的节点上运行，超出时间后会被驱逐。   |
| PreferNoSchedule | - 已运行在该节点的Pod不会被驱逐。  - 未运行的Pod**尽量**不调度到该节点。   | Pod可以在这个节点上一直运行。                                                                                                                                                                                                                                        |
| NoSchedule         | - 已运行在该节点的Pod不会被驱逐。  - 未运行的Pod不会被调度到该节点。      | Pod可以在这个节点上一直运行。                                                                                                                                                                                                                                          |
   
#### 通过控制台配置容忍策略
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在创建工作负载时，在"高级配置"中找到"容忍策略"。
3. 添加污点容忍策略。 
   表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分钟内依旧保持运行在该节点上。
```
tolerations:
  - key: node.kubernetes.io/not-ready
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300
  - key: node.kubernetes.io/unreachable
    operator: Exists
    effect: NoExecute
    tolerationSeconds: 300
```
#### 相关文档
- [创建工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0673.html)：了解工作负载的更多参数。
- [管理工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0007.html)：工作负载创建后，您可以对其执行升级、编辑YAML、查看日志等操作。
- 如果工作负载创建失败，请参考[工作负载异常问题排查](https://support.huaweicloud.com/cce_faq/cce_faq_00029.html)进行处理。
 
