0Pricing
Docker & DevOps Fundamentals · Lekcja

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.

Pody: najmniejsze jednostki — ilustracja 1

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ład v1).
  • kind: Określa typ obiektu Kubernetes, którym jest Pod.
  • metadata: Zawiera takie informacje jak name i labels Poda.
  • spec: Określa pożądany stan Poda, w tym uruchamiane containers, volumes i 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: 80

Wdraż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/app

Sprawdź 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 pods i kubectl describe pod pomagają 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

  1. Architektura Kubernetes
  2. Pody: najmniejsze jednostki
  3. Najważniejsze polecenia kubectl
  4. Namespaces i etykiety do organizacji
← Powrót do Docker & DevOps Fundamentals