Cykl życia i stany Poda
Poznaj poszczególne fazy cyklu życia Poda oraz dowiedz się, jak monitorować jego stan.
Cykl życia i stany Poda to bezpłatna lekcja Kubernetes Basics 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 Kubernetes Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.
Pody: podróż przez cykl życia
Pody nie są statyczne — przechodzą przez różne etapy, niczym w podróży. Zrozumienie tego „cyklu życia” ma kluczowe znaczenie dla skutecznego zarządzania aplikacjami w Kubernetes.
Pozwala określić, czy aplikacja działa poprawnie, uruchamia się albo napotkała problem.

Pięć etapów życia Poda
Kubernetes dzieli Pody na pięć głównych faz. Dają one ogólny obraz bieżącego stanu Poda:
- Pending: Pod został zaakceptowany przez Kubernetes, ale jego kontenery nie zostały jeszcze uruchomione.
- Running: Co najmniej jeden kontener w Podzie działa lub jest uruchamiany.
- Succeeded: Wszystkie kontenery w Podzie zakończyły działanie pomyślnie i nie zostaną uruchomione ponownie.
- Failed: Wszystkie kontenery zakończyły działanie, a co najmniej jeden z nich zakończył się niepowodzeniem (np. zwrócił kod różny od zera).
- Unknown: Nie można określić stanu Poda, często z powodu problemów z komunikacją.
Faza 1: Pody w stanie Pending
Pod znajduje się w fazie Pending, gdy został zaakceptowany przez serwer API Kubernetes, ale co najmniej jeden z jego kontenerów nie został jeszcze utworzony lub skonfigurowany.
Typowe przyczyny to:
- Obraz kontenera jest nadal pobierany.
- Klaster nie ma wystarczających zasobów (CPU/pamięci), aby zaplanować uruchomienie Poda.
- Woluminy są nadal przygotowywane lub montowane.
Obserwowanie Poda w stanie Pending
Przyjrzyjmy się przykładowi. Jeśli spróbujesz wdrożyć Poda z obrazem, który nie istnieje, może on utknąć w stanie „Pending” lub wyświetlić błąd pobierania obrazu.
Oto przykładowa definicja Poda:
apiVersion: v1
kind: Pod
metadata:
name: pending-pod-demo
spec:
containers:
- name: my-container
image: non-existent-image:latest
ports:
- containerPort: 80Aby sprawdzić jego stan, użyj polecenia kubectl get pod. Możesz zobaczyć coś takiego:
$ kubectl get pod pending-pod-demo
NAME READY STATUS RESTARTS AGE
pending-pod-demo 0/1 ErrImagePull 0 5sErrImagePull oznacza, że nie udało się pobrać obrazu, przez co Pod nie przechodzi do stanu Running.
Faza 2: Uruchamianie Podów
Faza Running oznacza, że Pod został przypisany do węzła, a wszystkie jego kontenery zostały pomyślnie utworzone. Co najmniej jeden kontener działa albo jest uruchamiany lub ponownie uruchamiany.
Należy pamiętać, że Pod w stanie Running nie oznacza automatycznie, że znajdująca się w nim aplikacja jest zdrowa lub w pełni funkcjonalna. Oznacza to jedynie, że kontenery są aktywne.
Uruchamianie Poda
Oto standardowa definicja Poda dla serwera internetowego Nginx. Po jej zastosowaniu Pod powinien szybko przejść do stanu „Running”.
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Po wdrożeniu polecenie kubectl get pod wyświetliłoby:
$ kubectl get pod nginx-pod
NAME READY STATUS RESTARTS AGE
nginx-pod 1/1 Running 0 10sWartość 1/1 w kolumnie READY potwierdza, że gotowy jest jeden kontener z jednego zdefiniowanego.
Fazy 3 i 4: Succeeded i Failed
Te fazy reprezentują stany zakończenia Poda:
- Succeeded: Pod przechodzi do tej fazy, gdy wszystkie znajdujące się w nim kontenery zakończyły działanie pomyślnie i nie zostaną ponownie uruchomione. Jest to typowe dla Podów wykonujących jednorazowe zadania lub zadania wsadowe.
- Failed: Pod znajduje się w fazie Failed, gdy wszystkie jego kontenery zakończyły działanie, a co najmniej jeden z nich zakończył je niepowodzeniem, na przykład zwrócił kod wyjścia różny od zera.
Zrozumienie tych faz pomaga diagnozować zakończenie zadań lub błędy aplikacji.
Tajemnicza faza Unknown
Faza Unknown oznacza, że nie można było ustalić stanu Poda. Jest to rzadka, ale krytyczna faza.
Zwykle występuje, gdy Kubelet (agent) na węźle, na którym działa Pod, przestaje komunikować się z serwerem API Kubernetes. Przyczyną może być problem z siecią, awaria Kubeleta lub problem z samym węzłem.
Stany kontenerów w Podach
Podczas gdy Pody mają ogólne fazy, poszczególne kontenery w Podzie mają również własne, bardziej szczegółowe stany. Stany te bezpośrednio wpływają na ogólną fazę Poda:
- Waiting: Kontener oczekuje obecnie na uruchomienie. Przyczyną może być pobieranie obrazu, przydzielanie zasobów lub oczekiwanie na zakończenie działania kontenerów inicjujących.
- Running: Kontener aktywnie wykonuje działanie bez problemów.
- Terminated: Kontener zakończył wykonywanie. Mogło ono zakończyć się pomyślnie lub niepowodzeniem.
Sprawdzanie stanu Poda
Wyobraź sobie, że właśnie wdrożono nowy Pod. Uruchamiasz polecenie kubectl get pod my-app i widzisz następujące dane wyjściowe:
NAME READY STATUS RESTARTS AGE
my-app 0/1 Pending 0 12sJaki jest najbardziej prawdopodobny powód, dla którego Pod my-app znajduje się w stanie Pending, a liczba gotowych kontenerów wynosi 0/1?
Podsumowanie cyklu życia i kolejne kroki
Wiesz już, że Pody Kubernetes przechodzą przez określone fazy: Pending, Running, Succeeded, Failed i Unknown. Fazy te dostarczają ogólnych informacji o stanie operacyjnym Poda.
Omówiliśmy również poszczególne stany kontenerów (Waiting, Running, Terminated), które wpływają na ogólną fazę Poda. Monitorowanie tych stanów za pomocą poleceń kubectl get pod i kubectl describe pod (które zostaną dokładniej omówione później) ma kluczowe znaczenie dla zrozumienia kondycji aplikacji.
W następnym kroku zajmiemy się zaawansowanymi wzorcami dla Podów i dowiemy się, jak uruchamiać wiele współlokowanych kontenerów w jednym Podzie za pomocą wzorca sidecar!
Często zadawane pytania
Czy lekcja „Cykl życia i stany Poda” jest bezpłatna?
Tak — pełny tekst „Cykl życia i stany Poda” 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 „Cykl życia i stany Poda”?
Poznaj poszczególne fazy cyklu życia Poda oraz dowiedz się, jak monitorować jego stan. Ć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 2 z 4.
Ile czasu zajmuje lekcja „Cykl życia i stany Poda”?
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
- Pody: najmniejsza jednostka
- Cykl życia i stany Poda
- Pody wielokontenerowe (sidecary)
- Kontenery init i kolejność uruchamiania