【发布时间】:2021-01-10 14:36:20
【问题描述】:
我正在尝试根据某些条件(即 Taint 是否存在)获取我的 Kubernetes 集群节点列表。我有 3 个节点集群(1 个主节点和 2 个工作节点)。我需要获取 2 个工作节点名称,因为污点位于主节点上。我被困在这里,因为我得到了相反的结果,即能够获得带有污点(主)的节点。请帮忙帮我放!运算符,这样我就可以只获取没有任何污点的节点。
这是我到现在为止的 JSONPath 查询:-
vagrant@mykubemaster:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
mykubemaster Ready control-plane,master 12d v1.20.1
mykubenode01 Ready <none> 12d v1.20.1
mykubenode02 Ready <none> 12d v1.20.1
vagrant@mykubemaster:~$ kubectl get nodes -o=jsonpath='{$.items[?(@.spec.taints)].metadata.name}'
mykubemastervagrant@mykubemaster:~$
【问题讨论】:
-
传统上没有在 JSON 路径中指定测试是否缺少属性。 Kubernetes 可能对它有一些支持,所以我会把它留给那些专家。您可能会发现感兴趣的github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-jsonpath/issues/…。
-
-o go-template=为您提供了非常丰富的表达语言;你考虑过使用它吗?
标签: kubernetes jsonpath json-path-expression