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.

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ładapps/v1).kind: Dla zasobu Deployment zawsze przyjmuje wartośćDeployment.metadata: Zawiera takie informacje jaknameDeploymentu oraz opcjonalnelabels.
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: 80Tworzenie 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.yamlStan można sprawdzić za pomocą polecenia:
kubectl get deploymentsSkalowanie 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=5Polecenie 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-deploymentHistorię 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
- Deployments dla aplikacji bezstanowych
- Services zapewniające dostęp sieciowy
- ConfigMaps i Secrets
- Ingress i routing zewnętrzny