Przeglądanie tysięcy tych zasobów w celu znalezienia takich dokładnych informacji byłoby zniechęcającym zadaniem. W rezultacie Kubectl zawiera opcję JSONPath, która sprawia, że filtrowanie danych w zestawach dużych danych jest proste.
Polecenie Kubectl oddziałuje z interfejsem API Kubernetes za każdym razem, gdy je uruchamiasz. Kube-apiserver wysyła następnie reakcję w formacie JSON. Kubectl tłumaczy go na format czytelny przez ludzi i wyświetla na ekranie. Aby uczynić wynik zrozumiały, podczas tej procedury jest wiele informacji z odpowiedzi, pozostawiając widoczne tylko odpowiednie pola. Możemy użyć opcji -o, aby uzyskać więcej, ale to nie wszystko. Jest o wiele więcej szczegółów, których nie jest prezentowane.
Będziesz musiał zainstalować Ubuntu 20.04 w systemie operacyjnym Linux, aby uruchomić instrukcje w Kubernetes. Dodatkowo musisz zainstalować klaster minikube na swoim komputerze, aby uruchomić Kubernetes w Linux. MiniKube zapewnia wyjątkowo płynne wrażenia, umożliwiając testowanie poleceń i aplikacji metodycznie. W rezultacie zapewnia największe środowisko uczenia się dla początkujących Kubernetes.
Pierwszym krokiem jest rozpoczęcie klastra minikube. Następnie przejdź do terminalu wiersza poleceń w Ubuntu 20.04, które zainstalowałeś. Możesz to zrobić, naciskając klawisz skrótu CTRL+Al lub wpisując „Terminal” w Ubuntu 20.04 System wyszukiwania. Każda z wyżej wymienionych technik uruchomi cały terminal. Minikube zostanie następnie rozpoczęte. Wprowadź polecenie „Minikube Start” w terminalu, aby uruchomić minikube. Klaster Kubernetes zostanie uruchomiony, a utworzona zostanie maszyna wirtualna zdolna do uruchomienia klastra pojedynczego węzła. Będzie również działać na instalacji Kubectl. To także będzie wchodzić w interakcje z klastrem.
$ minikube start
Jak podzielić wyjście Kubectl Jsonpath na osobne linie?
Wszyscy programiści muszą Google, jak zdobyć Kubectl do wysyłania wyników ścieżki JSON na odrębnych liniach przez cały czas. Na przykład następujące polecenie pobiera podip dla każdego działającego kapsułki we wszystkich przestrzeni nazw. W rezultacie daje ci coś takiego. To bez wątpienia nie jest najbardziej przyjazny dla użytkownika wynik.
Możesz iterować listę z funkcją zasięgu JSONPath, dodając nową linię po każdym członku z n. Wspaniały! Możemy teraz użyć wszystkich normalnych narzędzi UNIX, które działają na nowych wierszach do pracy z wynikami (e.G. sort, xargs, uniq itp.).
Można również użyć innych znaków białych. Załóżmy, że chcieliśmy wydrukować przestrzenie nazwy/nazwy, a także ich adresy IP, oddzielone przecinkiem. Czasami przydatne jest wyjście w JSONPATH.
Przykład wyrażeń kubectl i jsonpath
Szablon JSONPATH jest obsługiwany przez Kubectl. Wyrażenia JSONPATH są zamknięte w kręconych klamrach w szablonie JSONPATH. Kubectl stosuje wyrażenia JSONPATH, aby skutecznie sformatować wynik. Ponadto filtruje dokładne opcje w obiekcie JSON. Składnia (wspomniana poniżej) jest ważna oprócz inmanentnej składni szablonu JSONPATH. Możesz także rozważyć podsumowany przykład, aby zrozumieć wszystkie elementy.
Ponieważ wyrażenie zawsze zaczyna się od obiektu głównego domyślnie, operator $ nie jest wymagany. Funkcja String () służy do drukowania obiektu wyniku.
Pełne wejście JSON pokazano na poniższych zrzutach ekranu.
W poniższym kodzie wyrażenia Kubectl i JSONPATH są używane do wyświetlania danych wyjściowych.
Każdy szablon JSONPATH, który używa przestrzeni, musi być zamknięty w podwójnie cytowany w systemie Windows. Nie należy go pisać w jednym cytacie, jak pokazano powyżej dla Bash. W rezultacie wszystkie literały w szablonie muszą być otoczone pojedynczym cytatem lub ucieczką podwójnej cytatu. Rozważ następujący kawałek kodu.
Notatka: W przypadku wyjścia JSONPATH Kubectl nie akceptuje wyrażeń regularnych. Możesz użyć programu takiego jak JQ, jeśli chcesz dopasować za pomocą wyrażeń regularnych.
Poniższy kod drukuje nazwę i czas rozpoczęcia.
Wniosek
W tym przewodniku dotyczyło Kubernetes Json i dlaczego są używane. Przeszliśmy także szczegółowe przykłady, w jaki sposób wyrażenia Kubectl i JSONPATH działają, aby wyświetlić konkretne dane wyjściowe.