如何在k8s中使用jq打印节点的InternalIP?

Nax*_*axi 1 jq kubernetes

我想在 k8s 中使用空格分隔同一行中打印所有节点的内部 IP jq。我怎样才能做到这一点?

使用 jsonpath 我可以使用.addresses[?(@.type=="InternalIP")]. 如何实现同样的效果jq

Abu*_*ifa 5

您可以使用 select 和 pipeline 来实现所需的输出。

下面的命令显示由换行符分隔的内部 IP

kubectl get nodes -o json | jq '.items[].status.addresses[] | select(.type=="InternalIP") | .address'
Run Code Online (Sandbox Code Playgroud)

对于空间分隔的内部 IP:

kubectl get nodes -o json | jq '.items[].status.addresses[] | select(.type=="InternalIP") | .address' | tr -d '\"' | tr '\n' ' '
Run Code Online (Sandbox Code Playgroud)


Sha*_*wlz 5

您可以使用以下命令来实现此目的

 kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}'
Run Code Online (Sandbox Code Playgroud)

查看kubectl 备忘单以获取更多示例