16.2.5. 可用 predicates
predicates 是用于过滤掉不合格节点的规则。
OpenShift Container Platform 中默认提供一些 predicates。其中的一些 predicates 可以通过提供特定参数来自定义。可以组合多个 predicates 来提供更多节点过滤。
16.2.5.1. 静态 predicates
此类 predicates 不接受任何来自于用户的配置参数或输入。它们通过其确切的名称在调度程序配置中指定。
16.2.5.1.1. 默认 predicates
默认的调度程序策略包括以下 predicates:
NoVolumeZoneConflict 检查区中是否有 pod 请求的卷。
{"name" : "NoVolumeZoneConflict"}
MaxEBSVolumeCount 检查可附加到 AWS 实例的最大卷数。
{"name" : "MaxEBSVolumeCount"}
MaxGCEPDVolumeCount 检查 Google Compute Engine(GCE)持久磁盘(PD)的最大数量。
{"name" : "MaxGCEPDVolumeCount"}
MatchInterPodAffinity 检查 pod 关联性/反关联性规则是否允许该 pod。
{"name" : "MatchInterPodAffinity"}
NoDiskConflict 检查 pod 请求的卷是否可用。
{"name" : "NoDiskConflict"}
PodToleratesNodeTaints 检查 pod 是否可以容忍节点污点。
{"name" : "PodToleratesNodeTaints"}
16.2.5.1.2. 其他静态 predicates
OpenShift Container Platform 还支持下列 predicates:
CheckVolumeBinding 根据 pod 请求的卷,评估 pod 是否同时适合绑定和未绑定 PVC。* 对于绑定的 PVC,该 predicate 检查给定节点是否满足对应 PV 的节点关联性。* 对于未绑定 PVC,该 predicate 会搜索可满足 PVC 要求的可用 PV,并且检查给定节点是否满足 PV 的节点关联性。
如果所有绑定 PVC 都有与节点兼容的 PV,且所有未绑定 PVC 都可与可用并兼容节点的 PV 匹配,该 predicate 会返回 true。
{"name" : "CheckVolumeBinding"}
CheckVolumeBinding
predicate 必须在非默认调度程序中启用。
CheckNodeCondition 检查 pod 是否可以调度到报告 磁盘不足、网络不可用或未就绪状况的节点。
{"name" : "CheckNodeCondition"}
PodToleratesNodeNoExecuteTaints 检查 pod 容限是否容忍节点的 NoExecute 污点。
{"name" : "PodToleratesNodeNoExecuteTaints"}
CheckNodeLabelPresence 检查节点上是否存在所有指定的标签,而不考虑它们的值。
{"name" : "CheckNodeLabelPresence"}
checkServiceAffinity 检查 ServiceAffinity 标签是否对于节点上调度的 pod 来说是相同的。
{"name" : "checkServiceAffinity"}
MaxAzureDiskVolumeCount 检查 Azure 磁盘卷的最大数量。
{"name" : "MaxAzureDiskVolumeCount"}