# 亲和性与反亲和性

亲和性功能由两种类型的亲和性组成：

* <mark style="color:blue;">**节点亲和性**</mark>功能类似于 nodeSelector 字段，但它的表达能力更强，并且允许你指定软规则。
* <mark style="color:blue;">**Pod 间亲和性/反亲和性**</mark>允许你根据其他 Pod 的标签来约束 Pod。

## 节点亲和性 <a href="#node-affinity" id="node-affinity"></a>



## &#x20;<a href="#inter-pod-affinity-and-anti-affinity" id="inter-pod-affinity-and-anti-affinity"></a>



## 操作符

下面是可以在 **nodeAffinity** 和 **podAffinity** 的 operator 字段中可以使用的所有逻辑运算符：

| 操作符          | 行为              |
| ------------ | --------------- |
| In           | 标签值存在于提供的字符串集中  |
| NotIn        | 标签值不包含在提供的字符串集中 |
| Exists       | 对象上存在具有此键的标签    |
| DoesNotExist | 对象上不存在具有此键的标签   |

以下操作符**只能与 nodeAffinity 一起使用：**

| 操作符 | 行为                                        |
| --- | ----------------------------------------- |
| Gt  | 提供的值将被解析为整数，并且该整数小于通过解析此选择算符命名的标签的值所得到的整数 |
| Lt  | 提供的值将被解析为整数，并且该整数大于通过解析此选择算符命名的标签的值所得到的整数 |

{% hint style="warning" %}
## <mark style="color:orange;">注意：</mark>

<mark style="color:orange;">**Gt 和 Lt 操作符不能与非整数值一起使用。**</mark> 如果给定的值未解析为整数，则该 Pod 将无法被调度。 另外，Gt 和 Lt 不适用于 podAffinity。
{% endhint %}
