Как напечатать InternalIP узлов, используя jq в k8s? - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу напечатать внутренний IP всех узлов в одной строке через пробел, используя jq в k8s. Как я могу это сделать?

Используя jsonpath, я могу фильтровать, используя .addresses[?(@.type=="InternalIP")]. Как добиться того же с jq?

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

Этого можно добиться с помощью следующей команды

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

Оформить заказ kubectl Шпаргалка для дополнительных примеров

1 голос
/ 06 ноября 2019

Вы можете использовать select и pipe для достижения желаемого результата.

Команда ниже показывает внутренний ip, разделенный новой строкой

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

для внутренних ips, разделенных пробелом:

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