0Pricing
Docker & DevOps Fundamentals · Lekcja

Deployments dla aplikacji bezstanowych

Używaj obiektów Deployments do zarządzania aplikacjami bezstanowymi, umożliwiając aktualizacje kroczące i wycofywanie zmian.

Deployments dla aplikacji bezstanowych to bezpłatna lekcja Docker & DevOps Fundamentals 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 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.

Poznaj wdrożenia Kubernetes

Witamy przy podstawowym pojęciu w Kubernetes: Deployments! To zasób przeznaczony przede wszystkim do zarządzania aplikacjami bezstanowymi.

Deployment można traktować jak plan aplikacji. Informuje on Kubernetes, ile kopii (replik) aplikacji ma działać oraz jak je aktualizować bez przestoju.

Deployments dla aplikacji bezstanowych — ilustracja 1

Więcej niż Pody i ReplicaSets

Poznali już Państwo Pody (najmniejsze jednostki) oraz ReplicaSets (zapewniające określoną liczbę Podów).

Deployment działa na bazie ReplicaSet. Zapewnia wyższy poziom abstrakcji dla:

  • Tworzenia i aktualizowania ReplicaSets.
  • Wdrażania nowych wersji aplikacji.
  • Przywracania poprzednich wersji, jeśli coś pójdzie nie tak.

Znacznie ułatwia to zarządzanie aplikacjami i zwiększa jego bezpieczeństwo.

Budowa pliku YAML Deploymentu

Podobnie jak inne zasoby Kubernetes, Deployments definiuje się za pomocą YAML. Przyjrzyjmy się podstawowej strukturze:

  • apiVersion: Określa wersję API Kubernetes (na przykład apps/v1).
  • kind: Dla zasobu Deployment zawsze przyjmuje wartość Deployment.
  • metadata: Zawiera takie informacje jak name Deploymentu oraz opcjonalne labels.

Pola te pomagają Kubernetes identyfikować i porządkować wdrożenia.

Określanie replik i szablonu

Najważniejszą częścią Deploymentu jest sekcja spec. W tym miejscu definiuje się:

  • replicas: Żądaną liczbę identycznych Podów dla aplikacji.
  • selector: Sposób, w jaki Deployment odnajduje zarządzane przez siebie Pody (za pomocą etykiet).
  • template: Zasadniczo jest to definicja Poda opisująca kontenery, wolumeny i inne elementy każdego Poda.

Deployment wykorzystuje element template do tworzenia nowych Podów.

Nasz Deployment Nginx

Oto prosty manifest Deploymentu dla serwera WWW Nginx. Informuje on Kubernetes, aby utrzymywał 3 działające Pody Nginx.

Proszę spróbować zrozumieć każdą jego część!

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

Tworzenie Deploymentu

Po przygotowaniu pliku YAML Deploymentu (na przykład nginx-deployment.yaml) można utworzyć Deployment w klastrze Kubernetes za pomocą polecenia kubectl apply.

Kubernetes dopilnuje wtedy utworzenia i utrzymania żądanej liczby Podów.

kubectl apply -f nginx-deployment.yaml

Stan można sprawdzić za pomocą polecenia:

kubectl get deployments

Skalowanie w górę i w dół

Potrzebują Państwo większej lub mniejszej liczby instancji aplikacji? Deployments ułatwiają skalowanie! Można zmienić pole replicas w pliku YAML i ponownie go zastosować albo użyć bezpośredniego polecenia:

kubectl scale deployment nginx-deployment --replicas=5

Polecenie to natychmiast poinformuje Deployment, aby utworzył 2 dodatkowe Pody Nginx, zwiększając ich łączną liczbę do 5.

Aktualizacje bez przestoju

Jedną z największych zalet Deploymentów jest możliwość przeprowadzania aktualizacji kroczących. Po zaktualizowaniu szablonu Poda (na przykład po zmianie wersji obrazu) Kubernetes nie wyłącza jednocześnie wszystkich starych Podów.

Zamiast tego stopniowo zastępuje stare Pody nowymi, dzięki czemu aplikacja pozostaje dostępna przez cały proces aktualizacji.

kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1

Łatwe wycofywanie zmian

W aktualizacji pojawił się błąd? Bez obaw! Wdrożenia przechowują historię zmian, dzięki czemu można łatwo powrócić do wcześniejszej, stabilnej wersji.

Nazywa się to wycofaniem zmian (rollbackiem) i stanowi kluczowy mechanizm zabezpieczający we wdrożeniach.

kubectl rollout undo deployment/nginx-deployment

Historię można również sprawdzić za pomocą kubectl rollout history deployment/nginx-deployment.

Czas na quiz o wdrożeniach

Deweloper aktualizuje Deployment Nginx, zmieniając obraz z nginx:1.14.2 na nginx:1.16.1. Jaka jest główna korzyść z użycia Kubernetes Deployment podczas tej aktualizacji?

Deployments: najważniejsze informacje

Świetnie! Poznali Państwo Kubernetes Deployments — zaawansowany zasób do zarządzania aplikacjami bezstanowymi.

  • Deployments zarządzają ReplicaSets, które z kolei zarządzają Podami.
  • Definiują stan pożądany, w tym liczbę replicas.
  • Do najważniejszych funkcji należą łatwe skalowanie, aktualizacje kroczące bez przestojów oraz proste wycofywanie zmian do wcześniejszych wersji.

W następnej części omówimy Services, które umożliwiają udostępnianie aplikacji!

Często zadawane pytania

Czy lekcja „Deployments dla aplikacji bezstanowych” jest bezpłatna?

Tak — pełny tekst „Deployments dla aplikacji bezstanowych” 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 „Deployments dla aplikacji bezstanowych”?

Używaj obiektów Deployments do zarządzania aplikacjami bezstanowymi, umożliwiając aktualizacje kroczące i wycofywanie zmian. Ć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 1 z 4.

Ile czasu zajmuje lekcja „Deployments dla aplikacji bezstanowych”?

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. Deployments dla aplikacji bezstanowych
  2. Services zapewniające dostęp sieciowy
  3. ConfigMaps i Secrets
  4. Ingress i routing zewnętrzny
← Powrót do Docker & DevOps Fundamentals