0Pricing
Kubernetes Basics · Lekcja

Strategie wdrażania: blue-green i canary

Wyjdź poza aktualizacje kroczące i poznaj bezpieczne wdrażanie za pomocą wzorców blue-green i canary w Kubernetes.

Strategie wdrażania: blue-green i canary to bezpłatna lekcja Kubernetes Basics na CoddyKit. To lekcja 4 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 Kubernetes Basics, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Dlaczego nie tylko aktualizacje kroczące?

Aktualizacje kroczące zastępują Pody stopniowo, ale w okresie przejściowym działają jednocześnie stare i nowe wersje. W przypadku ryzykownych wydań może być potrzebna pełna kontrola nad tym, którzy użytkownicy zobaczą nową wersję.

Taką kontrolę zapewniają strategie blue-green i canary.

Idea blue-green

W ramach wdrożenia blue-green uruchamia się dwa identyczne środowiska:

  • Blue = aktualnie działająca wersja
  • Green = nowa wersja, w pełni wdrożona, ale jeszcze nieotrzymująca ruchu

Cały ruch przełącza się jednocześnie z blue na green.

Dwa obiekty Deployment, jeden obiekt Service

Każda wersja ma własny obiekt Deployment z etykietą wersji. Jeden obiekt Service wybiera kolor, który jest aktualnie aktywny.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-blue
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
      version: blue
  template:
    metadata:
      labels:
        app: web
        version: blue
    spec:
      containers:
      - name: web
        image: myapp:1.0

Przełączanie ruchu

Aby aktywować wersję green, wystarczy zaktualizować selektor obiektu Service, tak aby wskazywał wersję green. Przełączenie następuje natychmiast.

kubectl patch service web -p '{"spec":{"selector":{"app":"web","version":"green"}}}'

Zalety i wady blue-green

  • Zaleta: natychmiastowy powrót dzięki przełączeniu z powrotem na blue
  • Zaleta: brak mieszania wersji podczas wydania
  • Wada: w okresie współistnienia potrzebne są dwukrotnie większe zasoby

Idea canary

Wdrożenie canary kieruje najpierw niewielką część ruchu do nowej wersji. Jeśli metryki wyglądają dobrze, jej udział jest stopniowo zwiększany.

Nazwa pochodzi od kanarków, których górnicy używali do wczesnego wykrywania zagrożeń.

Canary na podstawie liczby replik

Proste wdrożenie canary korzysta z dwóch obiektów Deployment współdzielących tę samą etykietę obiektu Service. Ruch dzieli się w przybliżeniu proporcjonalnie do liczby replik.

# stable: 9 replicas, canary: 1 replica => ~10% to canary
kubectl scale deployment app-stable --replicas=9
kubectl scale deployment app-canary --replicas=1

Promowanie canary

W miarę wzrostu pewności zwiększa się udział canary, a następnie wycofuje starą wersję, gdy canary obsługuje cały ruch.

kubectl scale deployment app-canary --replicas=5
kubectl scale deployment app-stable --replicas=5
# later, fully promote
kubectl scale deployment app-canary --replicas=10
kubectl scale deployment app-stable --replicas=0

Obserwowanie canary

Celem canary jest obserwacja. Przed jego promowaniem należy monitorować wskaźniki błędów, opóźnienia i logi.

kubectl get pods -l version=canary
kubectl logs -l version=canary --tail=50

Wybór strategii

  • Blue-green: najlepsze rozwiązanie, gdy potrzebne jest czyste, natychmiastowe przełączenie i szybki powrót
  • Canary: najlepsze rozwiązanie, gdy należy ograniczyć zakres potencjalnych skutków i przeprowadzić walidację na rzeczywistym ruchu
  • Rolling: dobry domyślny wybór w przypadku rutynowych aktualizacji o niskim ryzyku

Narzędzia wykraczające poza kubectl

Do precyzyjnego dzielenia ruchu (np. dokładnie 5%) zespoły używają service meshów, takich jak Istio, lub narzędzi progressive delivery, takich jak Argo Rollouts i Flagger, które automatyzują analizę canary.

Szybki test

Należy wybrać stwierdzenie, które najlepiej opisuje wdrożenie canary.

Podsumowanie

Porównał Pan zaawansowane strategie wydań. Blue-green natychmiast przełącza cały ruch między dwoma środowiskami, umożliwiając szybki powrót, natomiast canary stopniowo kieruje ruch do nowej wersji, ograniczając ryzyko. Obie strategie wykorzystują obiekty Deployment i Service, które są już Panu znane.

Często zadawane pytania

Czy lekcja „Strategie wdrażania: blue-green i canary” jest bezpłatna?

Tak — pełny tekst „Strategie wdrażania: blue-green i canary” 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 Kubernetes Basics, przejdź na CoddyKit PRO. Kurs Kubernetes Basics zawiera 4 lekcji w sumie.

Co nauczysz się w „Strategie wdrażania: blue-green i canary”?

Wyjdź poza aktualizacje kroczące i poznaj bezpieczne wdrażanie za pomocą wzorców blue-green i canary w Kubernetes. Ćwiczysz Kubernetes Basics 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ąć Kubernetes Basics?

Nie wymagamy żadnego doświadczenia. Kubernetes Basics 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 4 z 4.

Ile czasu zajmuje lekcja „Strategie wdrażania: blue-green i canary”?

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 Kubernetes Basics?

Tak. Każda lekcja Kubernetes Basics 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 Kubernetes Basics