Pomiń nawigację

Strategia wdrażania na platformie Kubernetes

Znajdź optymalną strategię wprowadzania platformy Kubernetes dla aplikacji

Poznaj opcje wdrażania na platformie Kubernetes

Bez względu na to, czy chcesz skracać czas wprowadzania na rynek, przeprowadzać odporne wdrożenia bez przestojów, wydawać aplikacje i funkcje szybciej lub częściej bądź pracować z większą elastycznością, wybór odpowiedniej strategii wdrażania na platformie Kubernetes jest kluczowy, aby móc wdrożyć odporną na błędy aplikację i infrastrukturę. Każda strategia wdrażania na platformie Kubernetes ma swoje zalety — jest to zależne od Twoich celów i potrzeb.

Jesteś nowym użytkownikiem platformy Kubernetes? Poznaj podstawy

Jak działają wdrożenia na platformie Kubernetes

Przed zaimplementowaniem strategii wdrażania na platformie Kubernetes należy poznać elementy procesu wdrażania oraz zasady ich współdziałania.

Co składa się na wdrożenie na platformie Kubernetes?

Plik YAML

Żądany stan klastra Kubernetes (konfiguracja zasobników) zgodny z zadanym opisem, który stanowi podstawę wdrażania na platformie Kubernetes.

Zasobniki

Kontenery, współdzielone zasoby i środowiska, które są wymagane przez aplikację lub przepływ pracy do działania.

ReplicaSet

Grupa identycznie skonfigurowanych zasobników jest określana jako zestawy ReplicaSet, które zapewniają, że zasobniki określonych typów i w określonej liczbie (jest to opisane w pliku YAML) na potrzeby wdrażania na platformie Kubernetes ciągłe działają. Jeśli działanie zasobnika zakończy się niepowodzeniem, tworzony jest nowy zasobnik.

Kube-controller-manager

Zmienia bieżący stan klastra w taki sposób, aby był zgodny z żądanym stanem opisanym w pliku YAML, tworząc nowe zasobniki i zestawy ReplicaSet oraz aktualizując lub usuwając już istniejące.

Kube-scheduler

Określa, w jaki sposób zasobniki i zestawy ReplicaSet są wdrażane w ramach węzłów roboczych, a jednocześnie zapewnia dystrybuowanie ruchu do takich węzłów.

Wprowadzanie

Proces ponownej konfiguracji klastra z jego bieżącego stanu do żądanego stanu — osiągany w większości przypadków bez przestojów.

Jak działa wprowadzanie na platformie Kubernetes

  1. Utwórz plik YAML opisujący żądaną konfigurację stanu klastra.
  2. Zastosuj plik YAML względem klastra za pomocą narzędzia Kubectl, czyli interfejsu wiersza polecenia platformy Kubernetes.
  3. Narzędzie Kubectl przesyła żądanie do serwera kube-apiserver, który uwierzytelnia i autoryzuje żądanie przed zarejestrowaniem zmiany w bazie danych etcd.
  4. Narzędzie kube-controller-manager stale monitoruje system pod kątem nowych żądań i podejmuje działania mające na celu uzgodnienie stanu systemu z żądanym stanem, tworząc zestawy ReplicaSet, wdrożenia i zasobniki w ramach procesu.
  5. Po uruchomieniu kontrolerów narzędzie kube-scheduler otrzymuje informacje, czy istnieją zasobniki w stanie oczekiwania, ponieważ nie zostało jeszcze zaplanowane uruchomienie ich w ramach węzła. Narzędzie kube-scheduler znajduje odpowiednie węzły na potrzeby zasobników, a następnie komunikuje się z elementem kubelet w każdym węźle w celu przejęcia kontroli i rozpoczęcia wdrożenia.

Przypadki użycia wdrażania na platformie Kubernetes

Wdrażaj konteneryzowane aplikacje i przepływy pracy za pośrednictwem wdrożeń na platformie Kubernetes na cztery sposoby. Możliwe do użycia strategie wdrażania na platformie Kubernetes mogą obejmować co najmniej jeden z tych przypadków użycia.

Tworzenie

Wdrażaj całkowicie nowe zasobniki i zestawy ReplicaSet platform Kubernetes.

Aktualizacja

Zadeklaruj nowy żądany stan i wprowadź nowe zasobniki i zestawy ReplicaSet w kontrolowany sposób.

Wycofuj

Przywróć wdrożenie na platformie Kubernetes do poprzedniego stanu — jest to przydatne, jeśli bieżący stan nie jest stabilny.

Skalowanie

Zwiększ liczbę zasobników i zestawów ReplicaSet w ramach wdrażania na platformie Kubernetes bez potrzeby wprowadzania w nich zmian.

Strategie wdrażania na platformie Kubernetes

Najlepsza strategia wdrażania na platformie Kubernetes w przypadku Twojego scenariusza zależy od wielu czynników: długości dopuszczalnego przestoju (jeśli w ogóle jest możliwy), środowiska wdrażania, zaufania dotyczącego stabilności nowej wersji lub platformy, konieczności testowania i rodzaju informacji, które chcesz uzyskać, kosztu zasobów oraz celów biznesowych. Poniżej przedstawiono cztery typowe strategie wdrażania używane przez organizacje w środowisku produkcyjnym.

Pochyłe

Domyślna metoda wprowadzania na platformie Kubernetes to wdrożenie pochyłe lub stopniowe. Podczas takiego wdrożenia ma miejsce powolne zastępowanie pojedynczych zasobników w celu uniknięcia przestojów. Stare zasobniki są skalowane w dół dopiero wtedy, gdy gotowe są nowe zasobniki. Jeśli podczas wdrażania wystąpią problemy, możesz wstrzymać lub anulować wdrażanie na platformie Kubernetes bez konieczności przejścia całego klastra w tryb offline.

Niebieskie/zielone

W przypadku wdrażania niebiskie/zielone wydawana jest nowa wersja (niebieska) aplikacji lub przepływu pracy, a wersja bieżąca (zielona) jest nadal używana. Umożliwia to testowanie wersji niebieskiej w środowisku produkcyjnym, gdy użytkownicy mają dostęp tylko do wersji stabilnej (zielonej). Po przetestowaniu wersja niebieska stopniowo zastępuje wersję zieloną.

Kanarkowe

Zapewnij klientom możliwość testowania wdrożenia na platformie Kubernetes, wydając nową wersję dla małej grupy takich osób. Uruchomisz jeden zestaw ReplicaSet nowej wersji wraz z aktualną wersją, a następnie po określonym okresie bez wystąpienia żadnych błędów przeprowadzisz skalowanie w górę nowej wersji, jednocześnie usuwając starszą wersję.

Testowanie A/B

Podobnie jak w przypadku kanarkowej strategii wdrażania na platformie Kubernetes, strategia testowania A/B dotyczy określonej grupy klientów. Jednak podczas testowania A/B nacisk kładziony jest na zapewnienie czegoś więcej niż tylko stabilności wersji — służy ono do testowania, jak efektywnie dana wersja pozwala osiągać cele biznesowe. Nowa wersja jest dystrybuowana użytkownikom na podstawie takich czynników, jak pliki cookie, lokalizacja geograficzna, system operacyjny i typ urządzenia. Jest ona często uruchamiana wraz z bieżącą wersją i skalowana, gdy nowa wersja potwierdzi swoją wartość.

Narzędzia wdrażania na platformie Kubernetes

Mimo że do przeprowadzenia dowolnej z opisanych strategii wdrażania na platformie Kubernetes możesz użyć wiersza polecenia lub plików YAML, zaimplementowanie poniższych narzędzi wdrażania na platformie Kubernetes zapewni lepsze wykorzystanie klastra i wdrożeń.

Azure DevOps

Kompletny łańcuch dostaw aplikacji w celu automatyzacji wdrożeń na platformie Kubernetes. Zachowaj równowagę między szybkością i zabezpieczeniami, dostarczając kod szybciej na dużą skalę.

Helm

Narzędzie do tworzenia pakietów typu open source. Instaluj i uaktualniaj aplikacje platformy Kubernetes oraz zarządzaj nimi za pomocą tworzonych wykresów, wersji, udostępniania i publikowania.

Azure Kubernetes Service (AKS)

Wysoce dostępna, bezpieczna i w pełni zarządzana usługa platformy Kubernetes. Wdrażaj konteneryzowane aplikacje w chmurze i zarządzaj nimi.

Gdy się przygotujesz, wypróbuj platformę Kubernetes bezpłatnie na platformie Azure