0Pricing
DevOps Bootcamp · Lekcja

Poznajemy obiekty Deployments

Dowiedz się, jak obiekty Deployments automatyzują zarządzanie Podami i ReplicaSets dla aplikacji bezstanowych.

Poznajemy obiekty Deployments to bezpłatna lekcja DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Czym są Deploymenty?

Witamy! W Kubernetes zarządzanie aplikacjami oznacza zarządzanie ich Podami. Bezpośrednie zarządzanie pojedynczymi Podami, a nawet ReplicaSetami, może jednak stać się złożone.

Deployment to obiekt wyższego poziomu, który upraszcza zarządzanie aplikacjami bezstanowymi. Można myśleć o nim jak o menedżerze aplikacji.

  • Definiuje pożądany stan aplikacji.
  • Dba o utrzymanie tego stanu, nawet jeśli Pody ulegną awarii.
  • Automatyzuje aktualizacje i wycofywanie zmian.

Dlaczego używać Deploymentów?

Deploymenty zapewniają istotne korzyści podczas niezawodnego uruchamiania aplikacji w Kubernetes:

  • Automatyczne zarządzanie: Obsługują tworzenie, skalowanie i usuwanie Podów.
  • Samonaprawianie: Jeśli Pod ulegnie awarii, Deployment automatycznie go zastąpi, aby utrzymać żądaną liczbę replik.
  • Aktualizacje deklaratywne: Opisują Państwo pożądany nowy stan, a Deployment ustala sposób jego osiągnięcia, na przykład wdrażając nowe wersje stopniowo.

Są zalecanym sposobem zarządzania aplikacjami bezstanowymi.

Główna rola Deploymentu

U podstaw Deployment zarządza obiektami ReplicaSet. Zadaniem ReplicaSetu jest zapewnienie, że przez cały czas działa określona liczba replik Podów.

Deployment używa więc ReplicaSetów, aby osiągnąć swój cel: zapewnić aplikacji odpowiednią liczbę zdrowych Podów działających zgodnie z definicją.

Ta abstrakcja znacznie ułatwia definiowanie i utrzymywanie cyklu życia aplikacji.

Budowa manifestu YAML Deploymentu

Podobnie jak większość obiektów Kubernetes, Deploymenty definiuje się za pomocą YAML. Oto najważniejsze sekcje, które zwykle można znaleźć:

  • apiVersion i kind: Identyfikują typ obiektu (Deployment).
  • metadata: Zawiera nazwę, etykiety itp. samego Deploymentu.
  • spec: Główna definicja, obejmująca:
    • replicas: Żądaną liczbę Podów.
    • selector: Sposób, w jaki Deployment odnajduje zarządzane przez siebie Pody.
    • template: Szablon tworzonych Podów.

Szablon Poda

Pole template w sekcji spec Deploymentu ma ogromne znaczenie. Jest ono w zasadzie kompletną definicją Poda.

Wszystkie Pody utworzone przez ten Deployment będą korzystać z tego szablonu. Oznacza to, że definiują Państwo:

  • Obrazy kontenerów, których należy użyć.
  • Porty, które należy udostępnić.
  • Zmienne środowiskowe.
  • Żądania i limity zasobów.
  • I wiele więcej!

Zmiany w tym szablonie uruchamiają aktualizacje aplikacji.

Tworzenie prostego Deploymentu

Zdefiniujmy Deployment dla prostego serwera internetowego Nginx. Chcemy użyć 3 replik.

Zwróć uwagę, że selector.matchLabels musi odpowiadać template.metadata.labels. Informuje to Deployment, którymi Podami zarządza.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

Stosowanie Deploymentu

Aby utworzyć ten Deployment w klastrze Kubernetes, na przykład w Minikube, należy użyć polecenia kubectl apply. Zapisz powyższy YAML jako nginx-deployment.yaml.

kubectl utworzy obiekt Deployment. Kontroler Deploymentu wykryje następnie ten obiekt i podejmie działanie, tworząc ReplicaSet, który z kolei utworzy 3 Pody Nginx.

kubectl apply -f nginx-deployment.yaml

Sprawdzanie Deploymentu

Po zastosowaniu konfiguracji można sprawdzić stan Deploymentu oraz zarządzanych przez niego Podów:

  • kubectl get deployments: Wyświetla Deployment.
  • kubectl get replicasets: Wyświetla ReplicaSet utworzony przez Deployment.
  • kubectl get pods -l app=nginx: Wyświetla Pody zarządzane przez Deployment za pośrednictwem jego selektora etykiet.
  • kubectl describe deployment my-nginx-deployment: Dostarcza szczegółowych informacji o Deploymentcie, w tym o zdarzeniach.
kubectl get deployments
kubectl get pods -l app=nginx
kubectl describe deployment my-nginx-deployment

Utrzymywanie pożądanego stanu

Jedną z najpotężniejszych funkcji Deploymentów jest ich zdolność do utrzymywania pożądanego stanu. Jeśli zdefiniowano replicas: 3, Deployment zadba o to, aby zawsze działały 3 Pody.

Spróbuj ręcznie usunąć jeden z Podów Nginx (kubectl delete pod <pod-name>). Zobaczysz, że Deployment szybko utworzy nowy Pod w jego miejsce! To właśnie samonaprawianie w działaniu.

Szybkie sprawdzenie

Do zarządzania jakim typem aplikacji służy przede wszystkim Deployment?

Podsumowanie: zrozumienie Deploymentów

Świetnie! Wykonali Państwo pierwsze kroki w pracy z Deploymentami Kubernetes.

  • Deploymenty to obiekty wyższego poziomu służące do zarządzania aplikacjami bezstanowymi.
  • Automatyzują tworzenie, skalowanie i samonaprawianie Podów, zarządzając ReplicaSetami.
  • Deployment definiuje się za pomocą manifestu YAML, określając żądaną liczbę replicas oraz template dla Podów.
  • kubectl apply tworzy Deployment, a polecenia kubectl get/describe pomagają go monitorować.

W następnym kroku dokładniej zajmiemy się ReplicaSetami i tym, jak gwarantują utrzymanie żądanej liczby Podów!

Często zadawane pytania

Czy lekcja „Poznajemy obiekty Deployments” jest bezpłatna?

Tak — pełny tekst „Poznajemy obiekty Deployments” 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 „Poznajemy obiekty Deployments”?

Dowiedz się, jak obiekty Deployments automatyzują zarządzanie Podami i ReplicaSets dla aplikacji bezstanowych. Ć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 1 z 4.

Ile czasu zajmuje lekcja „Poznajemy obiekty Deployments”?

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. Poznajemy obiekty Deployments
  2. Skalowanie aplikacji za pomocą ReplicaSets
  3. Aktualizacje kroczące i wycofywanie zmian
  4. Strategie wdrażania: blue-green i canary
← Powrót do DevOps Bootcamp