Przywracanie stanu klastrów Kubernetes po awarii
Dotyczy: AKS na Azure Local 22H2, AKS na Windows Server
W usłudze AKS na platformie Azure lokalnie lub w systemie Windows Server klaster zarządzania jest wdrażany jako pojedyncza autonomiczna maszyna wirtualna na wdrożenie, co czyni go pojedynczym punktem awarii. Należy pamiętać, że awaria klastra zarządzania nie ma wpływu na aplikacje działające w klastrach obciążeń. Gdy maszyna wirtualna klastra zarządzania ulegnie awarii, klastry obciążeń (i obciążenia) będą nadal działać, ale nie można wykonywać operacji dnia 2. Na przykład nie można tworzyć nowych klastrów obciążeń, tworzyć ani skalować puli węzłów ani uaktualniać wersji platformy Kubernetes, dopóki maszyna wirtualna nie zostanie przywrócona.
Klaster zarządzania to maszyna wirtualna śledzona w klastrze trybu failover systemu Windows. Jest również odporny na zakłócenia na poziomie hosta. Innymi słowy, podczas awarii maszyny hosta klaster trybu failover systemu Windows ponownie uruchamia maszynę wirtualną na maszynie hosta w dobrej kondycji. Ten artykuł zawiera wskazówki dotyczące wykonywania następujących zadań:
- Przywróć stan usługi AKS na nowym sprzęcie (może to być nowa lokacja).
- Odzyskiwanie po uszkodzenia klastra zarządzania.
W jednym z tych scenariuszy należy ponownie utworzyć klaster zarządzania i wszystkie klastry obciążeń.
Przywracanie stanu usługi AKS na nowym sprzęcie lub nowej lokacji
Odzyskanie stanu klastrów Kubernetes wymaga, aby klaster zarządzania był dostępny na nowym sprzęcie lub w nowej lokalizacji.
- Usługa AKS obsługuje tworzenie kopii zapasowych klastrów Kubernetes w usłudze Azure Blob Storage i MinIO przy użyciu rozwiązania Velero. Firma Microsoft zaleca tworzenie kopii zapasowych usługi Azure Storage, ponieważ udostępnia 3 nadmiarowe kopie danych w regionie magazynu podstawowego.
- Rozważ uruchomienie kopii zapasowej w zadaniu cron, aby zapewnić, że dostępne kopie zapasowe spełniają cele punktu odzyskiwania.
Wymagania wstępne
Przygotuj chłodną rezerwę przed awarią, tworząc klaster zarządzania i pusty klaster obciążenia. Potrzebujesz pustego klastra obciążenia dla każdego klastra Kubernetes, który chcesz przywrócić z kopii zapasowej. Wymagane są następujące wymagania wstępne:
- Konfigurowanie i klastrowanie fizycznych maszyn hosta.
- Skonfiguruj wymagany magazyn:
- W przypadku protokołu SMB: użyj sterowników plików interfejsu magazynu kontenerów (CSI).
- W przypadku magazynu lokalnego: użyj sterowników dysków interfejsu magazynu kontenerów (CSI).
- Dostępne są kopie zapasowe klastra obciążeń: tworzenie kopii zapasowych, przywracanie klastrów obciążeń przy użyciu platformy Velero.
- Klaster zarządzania usługi AKS jest zainstalowany na nowym sprzęcie lub można zainstalować nowy klaster zarządzania na nowym sprzęcie, wykonując kroki 1–5 tego artykułu: Konfigurowanie usługi Kubernetes w klastrach lokalnych platformy Azure przy użyciu programu PowerShell.
- Do przywrócenia kopii zapasowych jest wymagany pusty klaster obciążenia. Zobacz Tworzenie kopii zapasowych, przywracanie klastrów obciążeń przy użyciu platformy Velero.
Odzyskiwanie po uszkodzenie klastra zarządzania
Odzyskiwanie po uszkodzenia klastra zarządzania wymaga odinstalowania usługi AKS i ponownego zainstalowania klastra zarządzania i wszystkich klastrów obciążeń. Klastry obciążeń można przywrócić do pustych klastrów obciążeń z kopii zapasowych platformy Velero.
Wymagane są następujące wymagania wstępne:
- Kopie zapasowe klastra obciążeń: tworzenie kopii zapasowych, przywracanie klastrów obciążeń przy użyciu platformy Velero.
- Kopia zapasowa konfiguracji usługi AKS dla poprzednich ustawień sieci, magazynu i klastra. Ustawienia klastra obejmują rozmiary i liczby maszyn wirtualnych płaszczyzny sterowania, modułu równoważenia obciążenia i węzła roboczego. Jeśli na przykład stary klaster miał 3 Standard_A2_V2 maszyny wirtualne płaszczyzny sterowania, musisz utworzyć 3 maszyny wirtualne płaszczyzny sterowania w nowym środowisku.
Aby odzyskać sprawę po uszkodzeniu klastra zarządzania, wykonaj następujące czynności:
- Odinstaluj usługę AKS: Uninstall-AksHci.
- Zainstaluj nowy klaster zarządzania usługi AKS, wykonując kroki 1–5 tego artykułu: Konfigurowanie usługi Kubernetes w klastrach usługi AKS przy użyciu programu PowerShell.
- Utwórz klaster obciążeń z wymaganymi pulami węzłów, wykonując krok 6 w tym artykule. Potrzebujesz oddzielnego klastra obciążeń dla każdego klastra obciążenia, który można przywrócić z kopii zapasowej.
- Podczas tworzenia klastra obciążenia można skonfigurować wiele maszyn wirtualnych płaszczyzny sterowania i maszyn wirtualnych modułu równoważenia obciążenia, korzystając z tego artykułu: New-AksHciCluster for AKS.
- Skonfiguruj wymagany magazyn:
- W przypadku protokołu SMB: użyj sterowników plików interfejsu magazynu kontenerów (CSI).
- W przypadku magazynu lokalnego: użyj sterowników dysków interfejsu magazynu kontenerów (CSI).
- Przywróć wszystkie klastry obciążeń z kopii zapasowej.
Często zadawane pytania
Jaka odporność jest wbudowana w klaster zarządzania?
Każde wdrożenie usługi AKS obejmuje klaster zarządzania, który jest pojedynczą autonomiczną maszyną wirtualną. W przypadku odporności i wysokiej dostępności usługa AKS opiera się na klastrze trybu failover systemu Windows w celu odzyskania maszyny wirtualnej w przypadku wystąpienia zakłóceń.
Awaria klastra zarządzania nie ma wpływu na aplikacje działające w klastrach obciążeń. Gdy maszyna wirtualna klastra zarządzania ulegnie awarii, ma to wpływ na możliwość wykonywania operacji usługi AKS Day 2, takich jak tworzenie nowych klastrów obciążeń, tworzenie lub skalowanie pul węzłów, uaktualnianie wersji platformy Kubernetes itp., dopóki maszyna wirtualna nie zostanie odzyskana. W przypadkach, gdy nie można odzyskać sprawności po awarii klastra zarządzania, zalecamy skontaktowanie się z pomoc techniczna firmy Microsoft.
Co znajduje się w kopii zapasowej platformy Velero?
Nazwa pliku | Opis zawartości |
---|---|
*-csi-volumesnapshotclasses.json.gz | Pliki zawierające pliki csi to trwałe migawki woluminów. |
*-csi-volumesnapshotcontents.json.gz | Pliki zawierające pliki csi to trwałe migawki woluminów. |
*-csi-volumesnapshots.json.gz | Pliki zawierające pliki csi to trwałe migawki woluminów. |
*-logs.gz | Dane wyjściowe dziennika operacji tworzenia kopii zapasowej. Te same dane z uruchamiania: velero backup log <backupname> . |
*-podvolumebackups.json.gz | Metadane dotyczące zasobników i woluminów trwałych. |
*-resource-list.json.gz | Zasoby zawarte w kopii zapasowej są wymienione w tym pliku. |
*-volumesnapshots.json.gz | Metadane dotyczące zasobników i woluminów trwałych. |
*.tar.gz | Metadane: przestrzeń nazw, liczba replik zasobników, pamięć, procesor. Te same dane, które zostały zwrócone z: kubectl get deployment . |
Co nie jest uwzględnione w kopiach zapasowych platformy Velero?
Kopia zapasowa platformy Velero nie zawiera następujących elementów:
- Konfiguracja klastra zarządzania (AKS)
- Metadane maszyny wirtualnej płaszczyzny sterowania (serwer interfejsu API)
- Metadane modułu równoważenia obciążenia (ha proxy)
- Ustawienia sieciowe
- Ustawienia magazynu
Jak mogę utworzyć kopię zapasową konfiguracji usługi AKS przed awarią?
Aby utworzyć kopię zapasową konfiguracji klastra zarządzania, otwórz okno programu PowerShell i uruchom następujące polecenie:
Get-AksHciConfig | ConvertTo-Json
Jak mogę upewnić się, że klaster obciążenia ma taką samą konfigurację jak przed awarią?
Aby utworzyć kopię zapasową konfiguracji klastra obciążenia, otwórz okno programu PowerShell i uruchom następujące polecenie:
Get-AksHciCluster -name <cluster name> | ConvertTo-Json