【发布时间】:2022-01-26 11:00:24
【问题描述】:
我正在尝试在 k8s 中查找哪个服务具有特定的外部 ip。目前我正在使用kubectl get svc --all-namespaces | grep $external_ip,但我希望能够纯粹在 kubectl 中执行此操作。似乎我不能使用字段选择器。有人有什么建议吗?
【问题讨论】:
我正在尝试在 k8s 中查找哪个服务具有特定的外部 ip。目前我正在使用kubectl get svc --all-namespaces | grep $external_ip,但我希望能够纯粹在 kubectl 中执行此操作。似乎我不能使用字段选择器。有人有什么建议吗?
【问题讨论】:
这是一个很好的指南JSONPath support
试试:
IP="[[YOUR-EXTERNAL-IP]]"
JP="{.items[?(@.status.loadBalancer.ingress[0].ip==\"${IP}\")].metadata.name}"
kubectl get services \
--all-namespaces \
--output=jsonpath="${JP}"
这会查询返回的 items 列表中包含 status.loadBalancer.ingress[0].ip 且值与 ${IP} 匹配的条目,并返回 items 的 metadata.name
【讨论】:
k get svc --all-namespaces -o=jsonpath="{.items[?(@.status.loadBalancer.ingress[0].ip==\"$IP\")].metadata.name}" 很好,我可以把它当做单线器使用