Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Kubernetes Service (AKS) wykonuje uaktualnienia stopniowe, aby zminimalizować zakłócenia działania obciążeń.
W przypadku większości obciążeń produkcyjnych usługa AKS Automatic jest zalecaną wartością domyślną, jeśli ma to zastosowanie. Usługa AKS Automatic obejmuje ustawienia domyślne gotowe do produkcji dla operacji uaktualniania, takie jak automatyczne uaktualnienia wersji platformy Kubernetes, aktualizacje obrazów systemu operacyjnego (OS), zarządzane operacje węzłów systemowych i wbudowane zabezpieczenia, które zmniejszają ręczne obciążenie. Aby uzyskać więcej informacji, zobacz Wprowadzenie do usługi AKS Automatic.
W tym artykule opisano mechanikę uaktualniania usługi AKS i wyróżniono różnice między usługami AKS Automatic i AKS Standard.
Wymagania wstępne
- Informacje o najlepszych rozwiązaniach dotyczących uaktualniania platformy Kubernetes
- Znajomość budżetów zakłóceń zasobników (PDB)
Model uaktualniania: AKS Automatic i AKS Standard
Tryby klastra AKS Automatic i AKS Standard opierają się na tych samych podstawowych mechanizmach uaktualniania Kubernetes, ale różnią się ustawieniami domyślnymi i zakresem odpowiedzialności operacyjnej.
| Problem z aktualizacją | Automatyczne usługi AKS | AKS Standard |
|---|---|---|
| Pozycjonowanie produkcyjne | Zalecana wartość domyślna dla większości obciążeń produkcyjnych, jeśli ma to zastosowanie | Elastyczny model z bardziej ręczną konfiguracją domyślnie |
| Aktualizacje pomniejszych wersji Kubernetes | Wstępnie skonfigurowany kanał automatycznej aktualizacji | Domyślnie ręczny, opcjonalny kanał automatyczny |
| Uaktualnienia obrazu systemu operacyjnego Node | Wstępnie skonfigurowany automatyczny kanał obrazu systemu operacyjnego węzła | Domyślnie ręczny, opcjonalny kanał automatyczny |
| Operacje puli węzłów systemowych | Zarządzane przez AKS | Zarządzane przez klienta |
| Planowane terminy konserwacji | Dostępne domyślnie | Opcjonalna konfiguracja |
| Mechanizmy kontroli zakłóceń obciążeń | Zarządzane przez klienta, w tym strategia replik, zachowanie gotowości i polityka zakłóceń | Zarządzane przez klienta, w tym strategia replik, zachowanie gotowości i polityka zakłóceń |
Note
Usługa AKS Automatic upraszcza operacje platformy, ale nadal ma zastosowanie wspólna odpowiedzialność. Projekt dostępności na poziomie obciążenia oraz działanie zasad eksmisji pozostają po stronie klienta.
Działanie aktualizacji stopniowej w usłudze AKS
Usługa AKS aktualizuje pule węzłów w sposób stopniowy, który utrzymuje dostępną pojemność podczas zastępowania lub ponownego obrazowania węzłów. To zachowanie jest takie samo we wszystkich trybach klastra AKS.
Ogólnie rzecz biorąc, AKS:
- Dodaje tymczasową dodatkową pojemność na podstawie ustawień aktualizacji.
- Cordons i opróżnia węzły w celu przenoszenia obciążeń.
- Ponownie tworzy obrazy węzłów lub zastępuje je docelową wersją.
- Usuwa tymczasowo zwiększoną wydajność po zakończeniu.
Przykład uaktualnienia stopniowego
W tym przykładzie pokazano uaktualnienie klastra z dwoma węzłami z Kubernetes 1.30 do 1.31, przy ustawieniu maxSurge na 1.
Krok 1. Konfiguracja początkowa
Klaster rozpoczyna się od dwóch węzłów z systemem w wersji 1.30, z których każdy hostuje zasobniki aplikacji.
- Węzeł 1: Pod A, Pod B
- Węzeł 2: Pod C, Pod D
- Surge Node: pusty (z wyjątkiem DaemonSets i nowych zasobników)
Krok 2. Zablokuj i opróżnij pierwszy węzeł
Usługa AKS cordonuje Node 1, aby zapobiec planowaniu nowych zasobników, a następnie odprowadza istniejące zasobniki.
- Pod A → usunięty i zastąpiony w węźle Surge Node
- Pod B → usunięty i zastąpiony na węźle 2
Krok 3. Uaktualnianie pierwszego węzła
Węzeł 1 jest przeinstalowywany z wersją 1.31 systemu Kubernetes, podczas gdy zasobniki nadal działają na innych węzłach.
- Węzeł 1: Uaktualniono do wersji 1.31
- Węzeł 2: Pod B, Pod C, Pod D
- Węzeł skokowy: Pod A
Krok 4. Cordon i opróżnianie drugiego węzła
AKS powtarza proces dla węzła 2, kontenery są eksmitowane, a harmonogram rozmieszcza je ponownie w odpowiednich dostępnych węzłach.
- Pod C, B → usunięty i zastąpiony na węźle 1
- Zasobnik D → usunięty i zastąpiony na węźle Surge
- Węzeł 2: odizolowany i zaktualizowany do obrazu wersji 1.31
Krok 5. Usuwanie węzła przepięcia
Po uaktualnieniu wszystkich stałych węzłów węzeł skokowy jest odprowadzany, opróżniany i usuwany.
- Zasobnik A → eksmitowany i zastąpiony na węźle 1
- Pod D → usunięty i zastąpiony na węźle 2
- Węzeł rozruchowy: usunięty
Stan końcowy
Wszystkie węzły teraz działają na Kubernetes w wersji 1.31 z podami rozłożonymi w klastrze.
- Węzeł 1 (wersja 1.31): Pod A, Pod C
- Węzeł 2 (wersja 1.31): Pod B, Pod D
Zachowanie restrykcyjnego Pod Disruption Budget (PDB)
Jeśli restrykcyjne bloki PDB blokują eksmisję, opróżnianie węzłów może być opóźnione lub uniemożliwione. Usługa AKS może używać zachowania Cordon dla nieopróżnialnego węzła, aby kontynuować aktualizowanie innych węzłów spełniających warunki zgodnie ze skonfigurowanym ustawieniem. Zablokowane węzły mogą pozostać w starszej wersji do momentu rozwiązania warunku blokowania.
Przykład restrykcyjnego pliku PDB
W tym przykładzie pokazano aktualizację dwuwęzłowego klastra z Kubernetes 1.30 do 1.31 z ustawieniem maxSurge na 2, przy czym PDB blokuje operację opróżniania pierwszego węzła.
Krok 1. Początkowa konfiguracja z restrykcyjnym plikiem PDB
Klaster rozpoczyna się od dwóch węzłów działających na wersji 1.30, z Profilem Ochrony Przemieszczeń (PDB), chroniącym Pod A przed eksmisją.
- Węzeł 1: Pod A (chroniony przez PDB), Pod B
- Węzeł 2: Pod C, Pod D
- Węzły skokowe: utworzono 2 nowe węzły
- PDB: Uniemożliwia eksmisję Podu A
Krok 2. Próba opróżnienia pierwszego węzła (zablokowane)
AKS oznacza węzeł 1 jako niedostępny do planowania, ale nie może usunąć Poda A z węzła z powodu ograniczeń PDB.
- Węzeł 1: Odizolowany i oznaczony jako poddany kwarantannie (zasobnik A utknięty)
- Pod B → Usunięty i zastąpiony na węźle Surge Node 1, podczas gdy węzeł Surge Node 2 tymczasowo nie jest używany
- Stan: Aktualizacja węzła 1 zablokowana
Krok 3. Przejście do drugiego węzła
Po kwarantannie węzła 1 usługa AKS kontynuuje uaktualnianie węzła 2.
- Węzeł 1: Pozostaje w kwarantannie (wersja 1.30)
- Węzeł 2: Pomyślnie odizolowany i opróżniony
- Pod C → Eksmitowany i zastąpiony na Surge Node 2
- Pod D → usunięty i zastąpiony na węźle Surge 2
Krok 4. Uaktualnianie drugiego węzła
Węzeł 2 został pomyślnie zresetowany do wersji 1.31 na platformie Kubernetes.
- Węzeł 1: Nadal poddany kwarantannie (wersja 1.30) z Podem A
- Węzeł 2: Uaktualniono do wersji 1.31
- Węzeł awaryjny 1: Pod B
- Węzeł sieciowy 2: Pod C, Pod D
Krok 5: Jeden węzeł Surge staje się trwałym zamiennikiem, gdy usuwany jest inny węzeł
Ponieważ węzeł 1 pozostaje w kwarantannie, węzeł Surge 1 staje się stałym zamiennikiem działającym w wersji 1.31, a węzeł Surge 2 zostaje usunięty.
- Węzeł 1: Poddane kwarantannie (wersja 1.30) — wymaga interwencji ręcznej
- Pod C, Pod D → usunięty z węzła Surge Node 2 i zastąpiony na Node 2
- Węzeł Surge 1 (wersja 1.31): Zasobnik B (teraz stały)
- Surge Node 2 (v1.31): Usunięty
Stan końcowy
Uaktualnienie kończy się z jednym węzłem poddanym kwarantannie, który wymaga interwencji ręcznej.
Węzeł 1 : Poddany kwarantannie (wersja 1.30) z Podem A — klient musi rozwiązać problem ręcznie (zobaczRozwiązywanie niezdrążalnych węzłów )- Węzeł 2 (wersja 1.31): Działa normalnie
- Były węzeł skokowy (wersja 1.31): Teraz trwałe zastąpienie
Ważne
Węzeł poddany kwarantannie (Węzeł 1) pozostaje w obowiązkach klienta do obsługi. Musisz wykonać jedną z następujących czynności:
- Dostosuj PDB, aby zezwolić na ewikcję Podu A.
- Ręcznie usuń Pod A.
- Usuń i utwórz ponownie węzeł po naprawieniu warunku blokowania.
Kluczowe zagadnienia dotyczące uaktualnień zablokowanych przez PDB
-
Niezrównane zachowanie węzła: ustaw wartość na
Cordondla puli węzłów, aby włączyć to zachowanie kwarantanny. - Odpowiedzialność klienta: Węzły poddane kwarantannie wymagają ręcznej interwencji w celu rozwiązania problemu.
- Pojemność klastra: węzeł wzrostowy staje się trwały, potencjalnie wpływając na planowanie pojemności klastra.
- Monitorowanie: śledź węzły poddane kwarantannie za pomocą Azure Monitor lub kubectl, aby zapewnić terminowe rozwiązanie.
Tip
Aby całkowicie uniknąć scenariusza kwarantanny, można użyć automatycznego zarządzania pdB do automatycznego skalowania replik wdrożenia w górę, aby ograniczenia pdB zostały spełnione przed rozpoczęciem opróżniania. Dzięki temu eksmisji można kontynuować bez blokowania, eliminując konieczność ręcznego rozwiązania kwarantanny.
Aktualizacje Blue-Green puli węzłów (sterowanie ręczne)
Uaktualnienia typu Blue-Green oferują bardziej kontrolowane podejście do aktualizacji, polegające na ręcznym utworzeniu pełnego zestawu nowych pul węzłów przed migracją obciążeń. Podejście manualne zapewnia pełną kontrolę nad procesem aktualizacji i harmonogramem.
Aby uzyskać więcej informacji, zobacz „Blue-Green” — uaktualnienia pul węzłów w usłudze AKS.
Kiedy należy używać uaktualnień Blue-Green
Ręczne uaktualnienia puli węzłów Blue-Green to zaawansowana strategia stosowana w przypadku specjalistycznych wymagań, takich jak jawne punkty kontrolne migracji, niestandardowe etapy walidacji lub ściśle kontrolowane przełączenia.
Jeśli potrzebujesz, użyj ręcznego Blue-Green:
- Fazy migracji kontrolowane przez operatory.
- Niestandardowe kryteria weryfikacji i akceptacji przed zatwierdzeniem.
- Wyraźnie określona choreografia wycofywania zmian powiązana z wewnętrznymi runbookami.
W przypadku większości obciążeń produkcyjnych, tam gdzie ma to zastosowanie, domyślny sposób aktualizacji w AKS Automatic jest zalecanym punktem wyjścia, a ręczne wdrożenie Blue-Green stosuje się zwykle tylko w wyjątkowych przypadkach.
Najważniejsze pojęcia
- Niebieska pula węzłów: istniejąca pula węzłów z bieżącą wersją platformy Kubernetes.
- Zielona pula węzłów: nowa pula węzłów, którą tworzysz, uruchamia docelową wersję platformy Kubernetes.
- Sterowanie ręczne: zarządzasz wszystkimi aspektami procesu migracji.
- Punkty kontrolne weryfikacji: decydujesz, kiedy kontynuować, wstrzymać lub wycofać.
Korzyści wynikające z uaktualnień Blue-Green
- Pełna kontrola: decydujesz dokładnie, kiedy wystąpi każdy krok.
- Walidacja niestandardowa: zaimplementuj własne kryteria walidacji i chronometraż.
- Migracja stopniowa: przenoszenie obciążeń w preferowanym tempie.
- Łatwe wycofywanie: oryginalne węzły pozostają dostępne do momentu ich usunięcia.
Kluczowe zagadnienia dotyczące uaktualnień Blue-Green
- Nakład pracy ręcznej: wymaga aktywnego zarządzania w całym procesie.
- Wymagania dotyczące limitu przydziału: wymaga 2x pojemności węzła podczas uaktualniania.
- Planowanie: udokumentowanie kryteriów weryfikacji i procedur wycofywania.
Przykład ręcznego procesu uaktualniania Blue-Green
W tym przykładzie pokazano ręczne uaktualnianie klastra dwuwęzłowego z Kubernetes 1.30 do 1.31 przy użyciu metody wdrażania Blue-Green.
Krok 1. Tworzenie puli zielonych węzłów
Zacznij od ręcznego utworzenia nowej puli węzłów z docelową wersją Kubernetes, obok istniejącej puli węzłów.
- Niebieska pula węzłów (wersja 1.30): Pod A, Pod B, Pod C, Pod D (istniejące)
- Zielona pula węzłów (wersja 1.31): Pusta (utworzona ręcznie)
-
Twoja akcja:
az aks nodepool addz nową wersją rozwiązania Kubernetes
Krok 2: Ręcznie odseparować niebieskie węzły
Oznacz niebieskie węzły jako niedostępne do planowania nowych podów, pozostawiając już uruchomione pody bez zmian.
-
Twoja akcja:
kubectl cordonna każdym niebieskim węźle - Niebieskie węzły: Odgrodzone, brak zaplanowanych nowych podów
- Zielone węzły: Gotowe do odbierania obciążeń
Krok 3. Ręczne opróżnianie niebieskich węzłów (kontrolowane tempo)
Tempo migracji można kontrolować przez ręczne opróżnianie węzłów pojedynczo lub w partiach.
-
Akcja:
kubectl drainna wybranych niebieskich węzłach - Migracja podów: Pody są automatycznie ponownie przypisane do zielonych węzłów
- Walidacja: Przed kontynuowaniem sprawdź obciążenia na zielonych węzłach
Krok 4. Weryfikowanie i podejmowanie decyzji
Po przeprowadzeniu migracji obciążeń zweryfikuj wydajność aplikacji w zielonych węzłach.
W tej fazie można wykonywać następujące czynności:
- Monitorowanie: sprawdzanie metryk i dzienników aplikacji
- Test: Uruchom testy weryfikacyjne w zielonej puli węzłów
- Zdecyduj: Zatwierdź na zielono lub wycofaj na niebieski
Krok 5. Zatwierdzanie lub wycofywanie
Na podstawie swojej weryfikacji ręcznie dokonujesz uaktualnienia lub wycofania.
Opcja A — zatwierdź (sukces):
-
Twoja akcja: Usuń niebieską pulę węzłów przy użyciu polecenia
az aks nodepool delete - Wynik: Pula węzłów zielonych staje się główną
Opcja B — wycofanie (wykryto problemy):
-
Twoja akcja: Odznacz niebieskie węzły jako niedostępne przy użyciu
kubectl uncordon, wydrenuj zielone węzły przy użyciukubectl draini usuń zieloną pulę węzłów przy użyciuaz aks nodepool delete - Wynik: Obciążenia wracają do węzłów niebieskich
Aspekty środowiska produkcyjnego przy planowaniu uaktualnienia
-
Konfiguracja nadmiaru (
maxSurge): określa liczbę nadmiarowych węzłów tworzonych podczas aktualizacji. Wyższe wartości przyspieszają uaktualnienia, ale zużywają więcej zasobów. - Budżety zakłóceń podów (PDB): Skonfiguruj budżety PDB, aby zapewnić dostępność aplikacji podczas procesu aktualizacji.
- Uaktualnienia puli węzłów: Każda pula węzłów uaktualnia się niezależnie. Odpowiednio zaplanuj strategię uaktualniania.
- Pojemność i limit przydziału: przed uaktualnieniem okna sprawdź wymagania dotyczące pojemności tymczasowej i stałej.
- Monitorowanie i alerty: skonfiguruj monitorowanie i alerty przed rozpoczęciem uaktualniania.
W usłudze AKS Automatic kilka opcji uaktualnienia na poziomie platformy jest wstępnie skonfigurowanych pod kątem gotowości produkcyjnej. W usłudze AKS Standard zespoły zazwyczaj jawnie podejmują te decyzje.