Ahm*_*gle 4 kubernetes kubernetes-apiserver client-go
Kubernetes GET API 是否真的支持fieldSelector参数来查询数组字段的值?
例如,我有一个像这样的 Pod:
apiGroup: v1
kind: Pod
metadata:
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: true
controller: true
kind: ReplicaSet
name: grpc-ping-r7f8r-deployment-54d688d777
uid: 262bab1a-1c79-11ea-8e23-42010a800016
Run Code Online (Sandbox Code Playgroud)
我可以做这样的事情:
kubectl get pods --field-selector 'metadata.ownerReferences.uid=262bab1a-1c79-11ea-8e23-42010a800016'
Run Code Online (Sandbox Code Playgroud)
此命令失败 ( field label not supported: metadata.ownerReferences.uid)。我怀疑原因是它ownerReferences本身是一个数组字段。我也试过,但没有奏效:
metadata.ownerReferences[*].uid=metadata.ownerReferences[].uid=我可能会尝试使用 client-go SDK for Kubernetes API,但我怀疑它不会出于同样的原因工作。
有没有服务器端的方式来查询?非常感谢。
Kam*_*san 18
该--field-selector只适用于一些有限的领域。
其中包含:
"metadata.name",
"metadata.namespace",
"spec.nodeName",
"spec.restartPolicy",
"spec.schedulerName",
"spec.serviceAccountName",
"status.phase",
"status.podIP",
"status.podIPs",
"status.nominatedNodeName"
Run Code Online (Sandbox Code Playgroud)
但是您可以使用jq. 这是我用来列出所有就绪节点的命令。它演示了您正在寻找的数组字段的使用。
"metadata.name",
"metadata.namespace",
"spec.nodeName",
"spec.restartPolicy",
"spec.schedulerName",
"spec.serviceAccountName",
"status.phase",
"status.podIP",
"status.podIPs",
"status.nominatedNodeName"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6630 次 |
| 最近记录: |