Pody: najmniejsze jednostki
Poznaj Pody — podstawowe elementy składowe Kubernetes — oraz dowiedz się, jak je definiować i nimi zarządzać.
Pody: najmniejsze jednostki to bezpłatna lekcja Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Czym jest Kubernetes Pod?
W Kubernetes najmniejszą i najbardziej podstawową jednostką, którą można wdrożyć, jest Pod. Można wyobrazić go sobie jako pojedynczy „dom”, w którym znajduje się jeden lub więcej kontenerów.
Pody są warstwą abstrakcji nad kontenerami. Reprezentują uruchomiony proces w klastrze i obejmują kontenery aplikacji, zasoby pamięci masowej, unikalny adres IP sieci oraz opcje określające sposób uruchamiania kontenerów.

Pod a kontener: różnica
Można się zastanawiać: „Po co potrzebuję Poda, skoro mam już kontenery?”. Oto najważniejsza różnica:
- Kontener (na przykład kontener Docker) to pakiet zawierający aplikację i jej zależności.
- Pod to abstrakcja Kubernetes, która obejmuje jeden lub więcej kontenerów i zapewnia im współdzielone zasoby oraz wspólną tożsamość sieciową.
Kontener jest faktycznym plikiem wykonywalnym, natomiast Pod określa sposób, w jaki Kubernetes zarządza tymi plikami i je orkiestruje.
Dlaczego używać Podów?
Pody oferują kilka istotnych korzyści:
- Współdzielona przestrzeń nazw sieci: Wszystkie kontenery w Podzie współdzielą ten sam adres IP i porty sieciowe. Mogą komunikować się ze sobą za pomocą
localhost. - Współdzielona pamięć masowa: Pody mogą współdzielić wolumeny, dzięki czemu kontenery w tym samym Podzie mogą uzyskiwać dostęp do wspólnych danych.
- Współlokowanie i wspólne planowanie: Kontenery, które muszą ściśle ze sobą współpracować (na przykład aplikacja i agent rejestrowania), mogą mieć zagwarantowane uruchomienie w tym samym węźle i są zawsze planowane razem.
Budowa definicji Poda
Pody definiuje się za pomocą plików konfiguracyjnych YAML. Oto najważniejsze elementy, które można w nich znaleźć:
apiVersion: Określa wersję API Kubernetes (na przykładv1).kind: Określa typ obiektu Kubernetes, którym jestPod.metadata: Zawiera takie informacje jaknameilabelsPoda.spec: Określa pożądany stan Poda, w tym uruchamianecontainers,volumesi inne ustawienia.
Definiowanie Poda z jednym kontenerem
Większość Podów zawiera jeden kontener. Jest to typowe w przypadku prostych aplikacji. Oto podstawowa definicja YAML Poda uruchamiającego serwer WWW Nginx:
apiVersion: v1
kind: Pod
metadata:
name: my-nginx-pod
labels:
app: webserver
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80Wdrażanie pierwszego Poda
Aby utworzyć Pod na podstawie pliku YAML, należy użyć polecenia kubectl apply. Informuje ono Kubernetes, aby utworzył lub zaktualizował zasoby zgodnie z definicją.
Załóżmy, że poprzednią definicję Poda Nginx zapisano jako nginx-pod.yaml. Można ją wdrożyć za pomocą następującego polecenia:
kubectl apply -f nginx-pod.yaml
Następnie Kubernetes zaplanuje uruchomienie tego Poda na jednym z węzłów roboczych.
Sprawdzanie Podów: Get i Describe
Po wdrożeniu warto sprawdzić stan Podów. Oto dwa podstawowe polecenia kubectl:
kubectl get pods: Wyświetla listę wszystkich Podów w bieżącej przestrzeni nazw wraz z ich nazwą, stanem i węzłem.kubectl describe pod <pod-name>: Wyświetla szczegółowe informacje o konkretnym Podzie, w tym zdarzenia, stan kontenerów i przypisane zasoby.
Te polecenia mają kluczowe znaczenie podczas monitorowania i rozwiązywania problemów.
Pody wielokontenerowe: sidecary
Choć Pody z jednym kontenerem są powszechne, w niektórych sytuacjach korzystne jest użycie Podów wielokontenerowych. Klasycznym przykładem jest wzorzec sidecar.
Kontener sidecar działa obok głównego kontenera aplikacji w tym samym Podzie i wykonuje zadania pomocnicze, takie jak:
- Agregowanie logów i monitorowanie
- Synchronizacja danych
- Przekazywanie ruchu sieciowego przez serwer proxy
Kontenery te współdzielą sieć i pamięć masową Poda, co usprawnia komunikację.
Przykład: Pod wielokontenerowy
Oto przykład Poda wielokontenerowego. Zawiera on serwer WWW Nginx oraz kontener sidecar busybox, który zapisuje logi we współdzielonym wolumenie.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
volumes:
- name: shared-log-volume
emptyDir: {}
containers:
- name: web-server
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- name: shared-log-volume
mountPath: /var/log/nginx
- name: log-writer
image: busybox:latest
command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
volumeMounts:
- name: shared-log-volume
mountPath: /var/log/appSprawdź swoją wiedzę o Podach
Które z poniższych stwierdzeń dotyczących Podów Kubernetes jest PRAWDZIWE?
Podsumowanie: Pody — podstawowa jednostka
Właśnie poznali Państwo Pody Kubernetes, czyli podstawowe elementy składowe aplikacji w klastrze.
- Pody obejmują jeden lub więcej kontenerów i zapewniają im współdzielone zasoby.
- Zapewniają współdzieloną sieć i pamięć masową oraz gwarantują współlokowanie powiązanych kontenerów.
- Pody definiuje się za pomocą YAML i wdraża przy użyciu
kubectl apply. - Polecenia
kubectl get podsikubectl describe podpomagają je monitorować.
W dalszej części omówimy kolejne polecenia kubectl służące do pracy z klastrem!
Często zadawane pytania
Czy lekcja „Pody: najmniejsze jednostki” jest bezpłatna?
Tak — pełny tekst „Pody: najmniejsze jednostki” 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 Docker & DevOps Fundamentals, przejdź na CoddyKit PRO. Kurs Docker & DevOps Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Pody: najmniejsze jednostki”?
Poznaj Pody — podstawowe elementy składowe Kubernetes — oraz dowiedz się, jak je definiować i nimi zarządzać. Ćwiczysz Docker & DevOps Fundamentals 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ąć Docker & DevOps Fundamentals?
Nie wymagamy żadnego doświadczenia. Docker & DevOps Fundamentals 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 „Pody: najmniejsze jednostki”?
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 Docker & DevOps Fundamentals?
Tak. Każda lekcja Docker & DevOps Fundamentals 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
- Architektura Kubernetes
- Pody: najmniejsze jednostki
- Najważniejsze polecenia kubectl
- Namespaces i etykiety do organizacji