kubernetes:什么是有效的节点字段

kubernetes : What are valid node fields

我想将 podAffinitymatchFields 一起使用。 在网上我只找到字段 metadata.name :

的例子
- matchFields:
  - key: metadata.name
    operator: NotIn
    values:
    - worker-1

我想知道是否还有其他有效的节点字段我可以使用并且how/where我能找到它们吗?

提前致谢

我做了一些挖掘,发现 Matchfields 是由于调度 DaemonSets 的问题而引入的。创建 pod 的控制器依赖于节点上的 kubernetes.io/hostname 标签。整个设置假设这个标签等于节点名称,结果是错误的,因为节点名称和 hostname 在某些情况下是不同的。有关更多信息,请参阅 #61410。这也解释了为什么使用它的示例仅与文档中的 DaemonSet 有关。

因为 PR #62002 已合并,将 MatchFields 添加到 NodeSelectorTerm 以及解释仅支持 metadata.name 的发行说明:

Added `MatchFields` to `NodeSelectorTerm`; in 1.11, it only support `metadata.name`.

所以在撰写本文时,唯一受支持的字段是 metadata.name。我也检查过 tests code,看来这种行为直到现在都没有改变。

PS。请注意,这仅适用于 NodeSelector,不适用于 PodAffinity/PodAntiAffinity