0Pricing
DevOps Bootcamp · Lekcja

Debugowanie Podów i Services

Wykorzystuj polecenia kubectl i inne narzędzia do skutecznego debugowania nieprawidłowo działających Podów oraz problemów z łącznością.

Debugowanie Podów i Services to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Dlaczego debugowanie ma znaczenie

Gdy aplikacje w Kubernetes działają nieprawidłowo, debugowanie jest niezwykle pomocne! Pozwala zrozumieć, co poszło nie tak i jak to naprawić.

Do typowych oznak problemów należą:

  • Pody pozostające w stanie „Pending” lub „CrashLoopBackOff”.
  • Usługi, do których nie można uzyskać dostępu.
  • Aplikacje, które nie odpowiadają zgodnie z oczekiwaniami.

Przedstawimy podstawowe narzędzia służące do diagnozowania tych problemów.

Zestaw narzędzi do debugowania kubectl

Kubernetes udostępnia zaawansowane narzędzia wiersza poleceń, przede wszystkim kubectl, które pomagają sprawdzać klaster i rozwiązywać problemy.

Najważniejsze polecenia, które dziś omówimy, to:

  • kubectl describe: Pobiera szczegółowe informacje o zasobie.
  • kubectl logs: Wyświetla dane wyjściowe kontenera.
  • kubectl exec: Uruchamia polecenia wewnątrz kontenerów.
  • kubectl port-forward: Udostępnia usługi lokalnie.

Opanowanie tych poleceń pozwoli Państwu profesjonalnie debugować Kubernetes!

Szczegółowa analiza za pomocą kubectl describe

Polecenie kubectl describe to pierwszy krok do uzyskania szczegółowych informacji o dowolnym zasobie Kubernetes, szczególnie o Podach.

Udostępnia wiele danych, w tym zdarzenia, stan, adresy IP, wolumeny i szczegóły kontenerów. Na dole należy szukać sekcji „Events”, która może zawierać wskazówki!

kubectl describe pod my-nginx-pod

Rozumienie zdarzeń klastra

Zdarzenia mają kluczowe znaczenie dla zrozumienia tego, co stało się z Podami lub innymi zasobami. Opowiadają o ich tworzeniu, planowaniu, błędach i innych zdarzeniach.

Zdarzenia dotyczące konkretnego zasobu można wyświetlić za pomocą describe, a zdarzenia z całego klastra za pomocą kubectl get events.

kubectl get events --sort-by='.lastTimestamp'

Odczytywanie dzienników kontenerów

Aplikacje zwykle zapisują ważne komunikaty, błędy i informacje debugowania w standardowych strumieniach wyjścia i błędów. kubectl logs umożliwia dostęp do tych danych.

Jeśli Pod ulega awarii, sprawdzenie jego dzienników ma kluczowe znaczenie dla zrozumienia, dlaczego tak się dzieje. Można również śledzić dzienniki w czasie rzeczywistym.

kubectl logs my-app-pod -f

Uruchamianie poleceń w kontenerach

Czasami samo przeglądanie dzienników nie wystarcza. Aby zdiagnozować problemy, może być konieczne uruchomienie poleceń wewnątrz działającego kontenera, podobnie jak podczas łączenia się z serwerem przez SSH.

kubectl exec pozwala wykonywać polecenia, a nawet otwierać powłokę (taką jak bash lub sh) bezpośrednio w kontenerze.

kubectl exec -it my-app-pod -- /bin/bash

Dostęp lokalny za pomocą port-forward

Gdy podejrzewasz, że usługa jest niedostępna, lub chcesz przetestować ją lokalnie bez udostępniania na zewnątrz, pomocne będzie kubectl port-forward.

Tworzy ono bezpieczny tunel z komputera lokalnego do Poda lub usługi w klastrze, umożliwiając dostęp za pośrednictwem localhost.

kubectl port-forward service/my-web-service 8080:80

Diagnozowanie problemów z usługą

Jeśli aplikacja jest niedostępna za pośrednictwem usługi, należy sprawdzić dwie rzeczy:

  • Service Selector: Czy poprawnie pasuje do etykiet Podów?
  • Endpoints: Czy usługa ma aktywne punkty końcowe (czyli działające Pody)?

Użyj kubectl get svc i kubectl get ep, aby je sprawdzić.

kubectl get svc my-web-service
kubectl get ep my-web-service

Rozwiązywanie typowych problemów

Przyjrzyjmy się dwóm częstym problemom z Podami:

  • CrashLoopBackOff: Kontener wielokrotnie się uruchamia i ulega awarii. Sprawdź kubectl logs pod kątem błędów.
  • ImagePullBackOff: Kubernetes nie może pobrać obrazu kontenera. Sprawdź nazwę obrazu, etykietę i dostęp do rejestru.

kubectl describe pod często ujawnia początkową przyczynę w sekcji „Events”.

Wyzwanie: debugowanie!

Zauważasz, że Pod o nazwie data-processor-xyz znajduje się w stanie CrashLoopBackOff. Musisz ustalić, dlaczego ulega awarii.

Które z poniższych dwóch poleceń są najważniejsze do uruchomienia w pierwszej kolejności, aby zdiagnozować bezpośrednią przyczynę?

Powtórzenie: mistrzowskie debugowanie

Świetnie! Nauczyli się Państwo używać kluczowych poleceń kubectl do debugowania Podów i usług:

  • kubectl describe do wyświetlania szczegółowych informacji o zasobach i zdarzeniach.
  • kubectl logs do sprawdzania, co dzieje się wewnątrz kontenerów.
  • kubectl exec do interaktywnego rozwiązywania problemów.
  • kubectl port-forward do lokalnego dostępu do usług.

Narzędzia te są niezbędne do utrzymania płynnego działania aplikacji Kubernetes. Proszę ćwiczyć dalej!

Często zadawane pytania

Czy lekcja „Debugowanie Podów i Services” jest bezpłatna?

Tak — pełny tekst „Debugowanie Podów i Services” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Debugowanie Podów i Services”?

Wykorzystuj polecenia kubectl i inne narzędzia do skutecznego debugowania nieprawidłowo działających Podów oraz problemów z łącznością. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Debugowanie Podów i Services”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Diagnozowanie typowych problemów
  2. Debugowanie Podów i Services
  3. Najlepsze praktyki i wskazówki produkcyjne
  4. Limity zasobów i zakresy limitów
← Powrót do DevOps Bootcamp