无法使用Kubectl和jsonpath提取Pod的IP地址

问题描述

我正在尝试使用jsonpath通过以下命令获取具有特定标签的Pod的IP地址:

kubectl get pods -l app=validate -n {namespace_name} -o jsonpath={.status.podIP}

但这不会导致任何结果,即使名称空间和标签名称正确。另一方面,如果我尝试这样做:

kubectl get pod/pod_name -n {namespace_name} -o jsonpath={.status.podIP}

此后,我就可以获取Pod IP地址。但是问题是,由于我要查询为特定部署创建的所有Pod,因此我想获取该特定标签下所有Pod的Ip地址。我不确定该命令出了什么问题。

解决方法

如果您有多个带有相同标签的Pod,则会获得Pod列表。您必须将jsonpath调整为 -o jsonpath="{.items[*].status.podIP}"才能获取所有podIP。

,

根据the official doc,您可以在查询资源列表时添加自定义列。

因此您可以kubectl get pods -l app=validate -n {namespace_name} -o custom-columns=ip:.status.podIP