Skip to content

Czym jest JSON Path?

Jest to język wykorzystywany do filtrowania plików, odpowiedzi w formacie JSON. Z jego użyciem jest możliwe ograniczanie dużych obiektów w formacie JSON składających się z wielu słowników, list i obiektów klucz-wartość.

Jak wykorzystywać JSON Path w kubectl?

1. Należy zdefiniować jaki typ obiektu/obiektów będzie zwracany, otrzymujemy go w formacie JSON

Przykład: zwracane będą wszystkie Pody w namespace default:

kubectl get pods -o json

2. Tworzymy zapytanie JSON Path

Przykład: zapytanie o obrazy kontenerów we wszystkich kontenerach w pierwszym Podzie:

$.items[0].spec.containers[*].image

3. Zawieramy zapytanie w kubectl

kubectl get pods -o jsonpath='{$.items[0].spec.containers[*].image}'

Własne pola (Custom Columns)

Tak by było z JSON Path bezpośrednio:

kubectl get nodes -o=jsonpath='{.items[*].metadata.name} {"\n"} {.items[*].status.capacity.cpu}'

Tak z opcją custom-columns:

kubectl get nodes -o=custom-columns=NODE:.metadata.name,CPU:.status.capacity.cpu

Info

Najlepiej na początku ogarnąć jak zbudować JSON Path a następnie używać Custom Columns.

Sortowanie

Sortowanie w oparciu o nazwy Node:

kubectl get nodes --sort-by=.metadata.name

Sortowanie w oparciu o posiadane CPU:

kubectl get nodes --sort-by=.status.capacity.cpu