Skalowanie aplikacji za pomocą ReplicaSets
Używaj obiektów ReplicaSets, aby zagwarantować stałe działanie określonej liczby identycznych Podów.
Skalowanie aplikacji za pomocą ReplicaSets to bezpłatna lekcja DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Dlaczego skalowanie ma znaczenie
W świecie aplikacji cloud-native skalowanie ma kluczowe znaczenie. Dzięki niemu aplikacje mogą obsługiwać zmienne obciążenie i pozostawać dostępne nawet w przypadku awarii komponentów.
Skalowanie oznacza dostosowywanie liczby uruchomionych instancji aplikacji do zapotrzebowania. Gdy jest ich zbyt mało, aplikacja działa wolno lub przestaje odpowiadać. Gdy jest ich zbyt wiele, zasoby są marnowane.
Poznaj obiekt ReplicaSet
ReplicaSet to podstawowy obiekt Kubernetes, którego głównym zadaniem jest utrzymywanie w dowolnym momencie stabilnego zestawu uruchomionych Podów.
Można myśleć o nim jak o opiekunie Podów. Dba on o to, aby liczba identycznych Podów, których potrzebujesz, zawsze odpowiadała liczbie Podów faktycznie uruchomionych.
Główne zadanie obiektu ReplicaSet
Głównym celem obiektu ReplicaSet jest zagwarantowanie dostępności określonej liczby identycznych Podów.
- Jeśli Pod przestanie działać (na przykład z powodu awarii węzła), ReplicaSet automatycznie tworzy nowy.
- Jeśli zewnętrzny proces utworzy zbyt wiele Podów, ReplicaSet usuwa nadmiarowe.
- Ta funkcja samonaprawiania ma kluczowe znaczenie dla niezawodności aplikacji.
Struktura YAML obiektu ReplicaSet
Podobnie jak inne obiekty Kubernetes, obiekt ReplicaSet definiuje się za pomocą pliku YAML. Oto jego podstawowa struktura:
apiVersion: Definiuje wersję API Kubernetes (na przykładapps/v1).kind: Określa typ obiektu, czyliReplicaSet.metadata: Zawiera informacje identyfikujące, takie jakname.spec: Opisuje pożądany stan obiektu ReplicaSet.
Pożądany stan: repliki i selektor
W sekcji spec znajdują się dwa kluczowe pola: replicas i selector:
replicas: Liczba określająca, ile identycznych Podów ma być uruchomionych.selector: Określa, jak ReplicaSet wyszukuje Pody i nimi zarządza. Do dopasowywania Podów używa etykiet. Tylko Pody pasujące do tych etykiet będą uznawane za część tego obiektu ReplicaSet.
Szablon Poda
Pole spec.template zawiera szablon Podów, które utworzy ReplicaSet. Jest to zasadniczo standardowa definicja Poda.
Szablon obejmuje metadane Poda (takie jak etykiety) oraz jego specyfikację (taką jak obrazy kontenerów, porty itd.). Etykiety w szablonie muszą odpowiadać wartości spec.selector!
Definiowanie prostego obiektu ReplicaSet
Zdefiniujmy obiekt ReplicaSet, który zagwarantuje stałe działanie 2 Podów serwera WWW Nginx. Zwróć uwagę, że etykiety szablonu Poda (app: nginx) odpowiadają selektorowi.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80Tworzenie i sprawdzanie stanu
Aby utworzyć ten obiekt ReplicaSet, zapisz kod YAML jako nginx-rs.yaml i zastosuj go. Następnie sprawdź jego stan oraz zarządzane przez niego Pody:
kubectl apply -f nginx-rs.yaml
kubectl get rs
kubectl get pods -l app=nginxZwiększanie i zmniejszanie skali
Liczbę żądanych Podów obiektu ReplicaSet można dynamicznie zmieniać za pomocą polecenia kubectl scale. Zwiększmy skalę naszego obiektu ReplicaSet dla Nginx do 4 Podów:
kubectl scale --replicas=4 rs/nginx-replicaset
kubectl get rs
kubectl get pods -l app=nginxObserwowanie skalowania
Podczas skalowania obiektu ReplicaSet Kubernetes automatycznie tworzy lub usuwa Pody, aby dopasować ich liczbę do nowej wartości replicas. Można obserwować ten proces w czasie rzeczywistym:
kubectl scale --replicas=1 rs/nginx-replicaset
kubectl get pods -l app=nginx -wWyzwanie: skalowanie
Masz obiekt ReplicaSet o nazwie my-app-rs, który obecnie uruchamia 3 Pody. Chcesz zwiększyć tę liczbę do 5 Podów. Jakiego polecenia kubectl użyjesz?
Podsumowanie i dalsze kroki
Dowiedziałeś się, że obiekty ReplicaSet mają kluczowe znaczenie dla utrzymywania żądanej liczby identycznych Podów, zapewniając aplikacjom samonaprawianie i wysoką dostępność. Można je definiować w YAML i skalować za pomocą kubectl scale.
Choć obiekty ReplicaSet są przydatne, w praktyce często używa się obiektów Deployment, które zarządzają nimi automatycznie i oferują bardziej zaawansowane funkcje, takie jak aktualizacje kroczące. Następnie omówimy obiekty Deployment!
Często zadawane pytania
Czy lekcja „Skalowanie aplikacji za pomocą ReplicaSets” jest bezpłatna?
Tak — pełny tekst „Skalowanie aplikacji za pomocą ReplicaSets” 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 „Skalowanie aplikacji za pomocą ReplicaSets”?
Używaj obiektów ReplicaSets, aby zagwarantować stałe działanie określonej liczby identycznych Podów. Ć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 2 z 4.
Ile czasu zajmuje lekcja „Skalowanie aplikacji za pomocą ReplicaSets”?
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
- Poznajemy obiekty Deployments
- Skalowanie aplikacji za pomocą ReplicaSets
- Aktualizacje kroczące i wycofywanie zmian
- Strategie wdrażania: blue-green i canary