0Pricing
Kubernetes Basics · Lekcja

Logowanie za pomocą kubectl logs

Uzyskuj dostęp do logów kontenerów bezpośrednio z klastra Kubernetes i analizuj je za pomocą kubectl.

Logowanie za pomocą kubectl logs to bezpłatna lekcja Kubernetes Basics na CoddyKit. To lekcja 1 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 Kubernetes Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Dlaczego logi mają znaczenie w Kubernetes

W Kubernetes kluczowe jest rozumienie tego, co robią aplikacje. Logi przypominają dziennik aplikacji, w którym zapisywane są zdarzenia, błędy i aktualizacje stanu.

Są niezbędne do:

  • Debugowania: lokalizowania problemów, gdy coś działa nieprawidłowo.
  • Monitorowania: obserwowania kondycji i wydajności aplikacji.
  • Audytowania: śledzenia działań i zmian w czasie.

Wyjaśnienie logów kontenerów

Podczas działania aplikacja uruchomiona w kontenerze zazwyczaj zapisuje dane wyjściowe do strumieni standardowego wyjścia (stdout) i standardowego wyjścia błędów (stderr). Kubernetes zbiera te strumienie dla każdego kontenera.

Następnie strumienie te są udostępniane za pośrednictwem API Kubernetes, dzięki czemu można łatwo uzyskać do nich dostęp bez konieczności łączenia się przez SSH z węzłami lub poszczególnymi kontenerami.

Wprowadzenie do kubectl logs

Polecenie kubectl logs jest podstawowym narzędziem do uzyskiwania dostępu do logów kontenerów działających w Podach Kubernetes. Jest proste w użyciu i oferuje kilka zaawansowanych opcji.

Najbardziej podstawowe użycie polega na podaniu nazwy Poda, który chcesz sprawdzić.

Tworzenie Poda generującego logi

Aby zobaczyć kubectl logs w działaniu, wyobraźmy sobie, że wdrożyliśmy prosty Pod, który stale wysyła komunikaty do standardowego wyjścia. Będzie to symulować rzeczywistą aplikację generującą logi.

Oto YAML takiego Poda (należy go zastosować za pomocą kubectl apply -f):

apiVersion: v1
kind: Pod
metadata:
  name: busybox-logger
spec:
  containers:
  - name: busybox-container
    image: busybox
    command: ['sh', '-c', 'while true; do echo "$(date) - Hello from BusyBox"; sleep 5; done']
  restartPolicy: Always

Wyświetlanie podstawowych logów Poda

Gdy Twój Pod busybox-logger działa (sprawdź to za pomocą kubectl get pods), możesz pobrać jego logi za pomocą podstawowego polecenia kubectl logs.

Wyświetli ono wszystkie wpisy w logach zarejestrowane do tej pory.

kubectl logs busybox-logger

Strumieniowanie logów w czasie rzeczywistym

Podczas debugowania na żywo często trzeba obserwować logi w miarę ich powstawania, podobnie jak w przypadku polecenia tail -f w systemie Linux. Flaga -f lub --follow służy właśnie do tego.

Nieprzerwanie strumieniuje ona nowe wpisy logów z kontenera.

kubectl logs -f busybox-logger

Logi z poprzednich kontenerów

Jeśli kontener w Twoim Podzie ulegnie awarii i zostanie uruchomiony ponownie, polecenie kubectl logs domyślnie wyświetla logi z *bieżącej* działającej instancji.

Aby wyświetlić logi z *poprzedniej*, zakończonej instancji kontenera, użyj flagi --previous lub -p. Jest to niezwykle przydatne podczas debugowania przyczyn awarii kontenera.

kubectl logs -p busybox-logger

Logi z określonych kontenerów

Niektóre Pody mogą uruchamiać wiele kontenerów (np. główną aplikację i kontener sidecar odpowiedzialny za logowanie lub monitorowanie). Jeśli Twój Pod zawiera więcej niż jeden kontener, musisz określić, którego kontenera logi chcesz wyświetlić, używając flagi -c lub --container.

kubectl logs my-multi-container-pod -c my-sidecar-container

Filtrowanie i ograniczanie danych wyjściowych logów

Czasami potrzebujesz tylko określonego fragmentu logów albo jedynie najnowszych wpisów. Możesz połączyć kubectl logs ze standardowymi poleceniami systemu Linux lub użyć wbudowanych flag:

  • Filtrowanie za pomocą grep: Przekieruj dane wyjściowe do grep, aby znaleźć określone słowa kluczowe.
  • Ograniczanie liczby wierszy za pomocą --tail: Wyświetl tylko ostatnie N wierszy logów.
kubectl logs busybox-logger | grep "Hello"
kubectl logs busybox-logger --tail=5

Wyzwanie: polecenia dotyczące logów

Masz Pod o nazwie my-app-pod zawierający dwa kontenery: frontend i backend. Kontener backend niedawno uległ awarii i został uruchomiony ponownie. Chcesz wyświetlić logi z poprzedniej instancji kontenera backend.

Podsumowanie logów i debugowania

Gratulacje! Poznałeś podstawy uzyskiwania dostępu do logów kontenerów i ich analizowania za pomocą kubectl logs. To potężne polecenie jest niezbędne do zrozumienia działania aplikacji uruchomionych w Kubernetesie i rozwiązywania problemów z nimi.

Najważniejsze polecenia:

  • kubectl logs <pod-name>: Podstawowe pobieranie logów.
  • kubectl logs -f <pod-name>: Strumieniowanie logów w czasie rzeczywistym.
  • kubectl logs -p <pod-name>: Wyświetlanie logów z poprzedniej instancji kontenera.
  • kubectl logs -c <container> <pod-name>: Pobieranie logów z określonego kontenera.

Często zadawane pytania

Czy lekcja „Logowanie za pomocą kubectl logs” jest bezpłatna?

Tak — pełny tekst „Logowanie za pomocą kubectl logs” 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 Kubernetes Basics, przejdź na CoddyKit PRO. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Co nauczysz się w „Logowanie za pomocą kubectl logs”?

Uzyskuj dostęp do logów kontenerów bezpośrednio z klastra Kubernetes i analizuj je za pomocą kubectl. Ćwiczysz Kubernetes Basics 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ąć Kubernetes Basics?

Nie wymagamy żadnego doświadczenia. Kubernetes Basics 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 1 z 4.

Ile czasu zajmuje lekcja „Logowanie za pomocą kubectl logs”?

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 Kubernetes Basics?

Tak. Każda lekcja Kubernetes Basics 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. Logowanie za pomocą kubectl logs
  2. Metryki z Prometheus i Grafana
  3. Kontrole stanu: sondy liveness i readiness
  4. Śledzenie rozproszone i zdarzenia
← Powrót do Kubernetes Basics