Funkcja debugowania Kubectl

Funkcja debugowania Kubectl
Częstym problemem związanym z nowymi instalacjami Kubernetes jest, gdy usługa nie działa poprawnie. Utworzyłeś usługę i uruchamiałeś kapsuły za pośrednictwem wdrożenia lub innego kontrolera zadań. Jednak nic się nie dzieje, gdy próbujesz uzyskać do niego dostęp. W tym poście wyjaśnimy tło debugowania, nową funkcję w Kubectl. Każdy kapsułek w Kubernetes działa jako kontener Docker, który jest oddzielony za pomocą funkcji izolacji przestrzeni nazw Linux. W przypadku procesów każdy kontener ma swój system plików. Funkcja debugowania automatyzuje załącznik kontenerowy i udostępnianie przestrzeni nazw z jednym poleceniem i bez plików manifest.

Każdy deweloper i inżynier DevOps, który pracuje z Kubernetes, musi codziennie debugować obciążenia konteneryczne i kapsuły. Proste dzienniki kubectl lub Kubectl Opis Podsmy często mogą wskazać źródło problemu. Jednak pewne problemy są trudniejsze do wyśledzenia. W niektórych przypadkach możesz spróbować Kubectl Exec. Jednak nawet to może nie być wystarczające, ponieważ niektóre pojemniki, takie jak dystrybucja, nie mają nawet skorupy, w którą można ssh. Tak więc, jeśli wszystkie powyższe upadnie, jakie są nasze opcje? Debugowanie Kubectl, jako nowa instrukcja dodana niedawno (v1.18), byłoby odpowiednim narzędziem do rozwiązywania problemów z pracą na Kubernetes.

Wymagania wstępne

Przed użyciem Kubectl musimy najpierw zweryfikować system operacyjny. W naszej sytuacji prowadzimy Ubuntu 20.04 na komputerze. Inne rozkłady Linux można zbadać, aby zrozumieć, czy są one odpowiednie dla twoich potrzeb. Do wdrożenia usług Kubernetes w systemie Linux wymagany jest klaster minikube. Aby ten przewodnik zadziałał, musisz skonfigurować klaster minikube w swoim systemie. Minikube sprawia, że ​​ocena krytycznych funkcji klastra Kubernetes jest prosta, z czymkolwiek łatwo aktywowanym lub usuniętym. Użyj terminala wiersza poleceń, aby skonfigurować klaster minikupowy. Jedno z dwóch podejść jest dostępne do otwarcia. Poszukaj „terminala” w sekcji wyszukiwania aplikacji w systemie. Skrót klawiatury, który można do tego użyć, to Ctrl+Alt+T:

$ minikube start

Jak uruchomić polecenia w kapsule

Będziesz chciał zauważyć, co widzi kapsuła działająca w klastrze podczas kilku następujących faz. Uruchamianie interaktywnego zajętego podboju jest najprostszą metodą, aby to zrobić:

$ kubectl run -it -rm -restart = nigdy nie zajętyBox -image = gcr.IO/Google-Containers/Busybox SH

Jak skonfigurować

Uruchommy kapsułki na tę lekcję. Możesz albo wykorzystać własne informacje, ponieważ najprawdopodobniej debugujesz własną usługę, albo możesz łatwo śledzić i uzyskać drugi punkt danych:

$ kubectl Utwórz nazwy hosta wdrażania -image = gcr.IO/SERVE_HOSTNAME

Typ i nazwa wytworzonego lub zmienionego zasobu zostaną wydrukowane przez instrukcje Kubectl, które można następnie użyć w późniejszych poleceń. Zwiększmy liczbę replik w rozmieszczeniu do trzech:

$ Kubectl Scale Wdrożeni nazwy hosta -replicas = 3

Możesz sprawdzić, czy Twoje kapsuły działają, wykonując następujące czynności:

$ kubectl get pods -l app = nazwy hostów

Możesz także sprawdzić, czy Twoje kapsuły działają. W ten sposób możesz uzyskać listę adresów IP POD i od razu je przetestować:

$ kubectl get pods -l app = hostnames \

Przykładowy kontener w tym poście używa HTTP na porcie, aby podać nazwę hosta. Ale jeśli sam to debugujesz, użyj dowolnego numeru portu, na którym znajdują się twoje kapsuły. Od wewnątrz kapsuły:

Jeśli nie otrzymujesz pożądanych rezultat. Możesz chcieć zbadać dzienniki kubectl lub być może być konieczne od razu Kubectl Exec w swoich kapsułach i stamtąd debugować. Jeśli wszystkie kroki zostały wykonane dokładnie do tej pory, możesz rozpocząć dochodzenie w sprawie, dlaczego Twoja usługa nie jest właściwie wykonywana.

To usługa utworzona?

Bystry czytelnik może uzyskać pomysł, że musisz jeszcze zbudować usługę, która w rzeczywistości jest celowana. Ten krok jest często pomijany, ale jest to pierwszy element do sprawdzenia. Jeśli usługa jeszcze nie ma, utwórz ją najpierw i sprawdź, czy nadal jest tam.

Czy docelowe kapsuły znajdują się zgodnie z wszelkimi zasadami wnikania zasad sieciowych?

Jeśli masz jakiekolwiek zasady wejściu zasad sieciowych, które mogą wpływać.

Czy usługa jest odpowiednio zdefiniowana?

Mimo że wydaje się to małe, sprawdź dwukrotnie, że utworzona usługa jest dokładna i pasuje do portu twojego kapsuły. Ponownie przeczytaj swoją usługę i potwierdź. Jeśli dotarłeś tak daleko, sprawdziłeś, że Twoja usługa jest odpowiednio zdefiniowana i rozwiązywana przez DNS. Teraz nadszedł czas, aby dwukrotnie sprawdzić, że usługa odbiera utworzone strąki.

Wniosek

Ten artykuł obejmował wszystko, co musisz wiedzieć o funkcji debugowania Kubectla. Dostarliśmy również obszerne przykłady, aby Ci pomóc. Możesz wykonać wszystkie kroki tego przewodnika, aby skutecznie wykonać swoją pracę. Mamy nadzieję, że ten artykuł jest pomocny. Znajdź więcej wskazówek i przewodników na temat Linux.