无法使用 Kubectl 和 jsonpath 获取 pods 的 IP 地址

Not able to fetch ip address of pods using Kubectl and jsonpath

我正在尝试通过以下命令使用 jsonpath 获取具有特定标签的 pods 的 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 地址了。但问题是,因为我正在尝试查询为特定部署创建的所有 pods,所以我想获取该特定标签下所有 pods 的 IP 地址。我不确定命令有什么问题。

如果您有多个 Pods 具有相同的标签,您将获得 Pods 的列表。您必须将 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