Udostępnij za pośrednictwem


Strefy dostępności w usłudze Azure Kubernetes Service (AKS)

Strefy dostępności pomagają chronić aplikacje i dane przed awariami centrum danych. Strefy to unikatowe lokalizacje fizyczne w regionie świadczenia usługi Azure. Każda strefa obejmuje co najmniej jedno centrum danych wyposażone w niezależne zasilanie, chłodzenie i sieć.

Użycie usługi AKS ze strefami dostępności fizycznie dystrybuuje zasoby w różnych strefach dostępności w jednym regionie, co zwiększa niezawodność. Wdrażanie węzłów w wielu strefach nie wiąże się z dodatkowymi kosztami.

W tym artykule pokazano, jak skonfigurować zasoby usługi AKS do używania Strefy dostępności.

Zasoby usługi AKS

Na tym diagramie przedstawiono zasoby platformy Azure tworzone podczas tworzenia klastra usługi AKS:

Diagram przedstawiający różne składniki usługi AKS pokazujące składniki usługi AKS hostowane przez firmę Microsoft i składniki usługi AKS w ramach subskrypcji platformy Azure.

Płaszczyzna sterowania usługi AKS

Firma Microsoft hostuje płaszczyznę sterowania usługi AKS, serwer interfejsu API Kubernetes oraz usługi, takie jak scheduler i etcd jako usługa zarządzana. Firma Microsoft replikuje płaszczyznę sterowania w wielu strefach.

Inne zasoby klastra są wdrażane w zarządzanej grupie zasobów w ramach subskrypcji platformy Azure. Domyślnie ta grupa zasobów ma prefiks MC_ dla klastra zarządzanego i zawiera następujące zasoby:

Pule węzłów

Pule węzłów są tworzone jako zestaw skalowania maszyn wirtualnych w ramach subskrypcji platformy Azure.

Podczas tworzenia klastra usługi AKS jedna pula węzłów systemowych jest wymagana i tworzona automatycznie. Hostuje krytyczne zasobniki systemowe, takie jak CoreDNS i metrics-server. Więcej pul węzłów użytkownika można dodać do klastra usługi AKS w celu hostowania aplikacji.

Istnieją trzy sposoby wdrażania pul węzłów:

  • Spanning zone (Strefy)
  • Wyrównana strefa
  • Regionalne

Diagram przedstawiający rozkład węzłów usługi AKS między strefami dostępności w różnych modelach.

W przypadku puli węzłów systemowych liczba używanych stref jest konfigurowana podczas tworzenia klastra.

Spanning zone (Strefy)

Strefa obejmująca zestaw skalowania rozprzestrzenia węzły we wszystkich wybranych strefach, określając te strefy za pomocą parametru --zones .

# Create an AKS Cluster, and create a zone spanning System Nodepool in all three AZs, one node in each AZ
az aks create --resource-group example-rg --name example-cluster --node-count 3 --zones 1, 2, 3
# Add one new zone spanning User Nodepool, two nodes in each
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-a  --node-count 6 --zones 1, 2, 3 

Usługa AKS równoważy liczbę węzłów między strefami automatycznie.

Jeśli wystąpi awaria strefowa, mogą mieć wpływ na węzły w strefie, której dotyczy problem, podczas gdy węzły w innych strefach dostępności pozostaną nienaruszone.

Wyrównana strefa

Każdy węzeł jest wyrównany (przypięty) do określonej strefy. Aby utworzyć trzy pule węzłów dla regionu z trzema Strefy dostępności:

# # Add three new zone aligned User Nodepools, two nodes in each
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-x  --node-count 2 --zones 1
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-y  --node-count 2 --zones 2
az aks nodepool add --resource-group example-rg --cluster-name example-cluster --name userpool-z  --node-count 2 --zones 3

Ta konfiguracja może być używana, gdy potrzebujesz mniejszego opóźnienia między węzłami. Zapewnia również bardziej szczegółową kontrolę nad operacjami skalowania lub w przypadku korzystania z narzędzia do automatycznego skalowania klastra.

Uwaga

  • Jeśli pojedyncze obciążenie jest wdrażane w pulach węzłów, zalecamy ustawienie --balance-similar-node-groups w celu true zachowania zrównoważonego rozkładu węzłów między strefami dla obciążeń podczas operacji skalowania w górę.

Regionalne (nieużywane Strefy dostępności)

Tryb regionalny jest używany, gdy przypisanie strefy nie jest ustawione w szablonie wdrożenia ("zones"=[] or "zones"=null).

W tej konfiguracji pula węzłów tworzy wystąpienia regionalne (nieprzypinane do strefy) i niejawnie umieszcza wystąpienia w całym regionie. Nie ma żadnej gwarancji dla równowagi lub rozkładu w różnych strefach albo że wystąpienia lądują w tej samej strefie dostępności.

W rzadkich przypadkach całkowitej awarii strefowej może mieć wpływ na dowolne lub wszystkie wystąpienia w puli węzłów.

Aby zweryfikować lokalizacje węzłów, uruchom następujące polecenie:

kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
NAME                                REGION   ZONE
aks-nodepool1-34917322-vmss000000   eastus   eastus-1
aks-nodepool1-34917322-vmss000001   eastus   eastus-2
aks-nodepool1-34917322-vmss000002   eastus   eastus-3

Wdrożenia

Zasobniki

Platforma Kubernetes zna usługę Azure Strefy dostępności i może równoważyć zasobniki między węzłami w różnych strefach. W przypadku, gdy strefa stanie się niedostępna, platforma Kubernetes automatycznie przenosi zasobniki z węzłów, których to dotyczy.

Zgodnie z opisem w sekcji Dobrze znane etykiety, adnotacje i znaki, platforma Kubernetes używa topology.kubernetes.io/zone etykiety do automatycznego dystrybuowania zasobników w kontrolerze replikacji lub usłudze w różnych dostępnych strefach.

Aby wyświetlić, na których węzłach zasobników są uruchomione, uruchom następujące polecenie:

  kubectl describe pod | grep -e "^Name:" -e "^Node:"

Parametr "maxSkew" opisuje stopień, w jakim zasobniki mogą być nierównomiernie rozłożone. Przy założeniu, że trzy strefy i trzy repliki, ustawienie tej wartości na 1 gwarantuje, że każda strefa ma uruchomiony co najmniej jeden zasobnik:

kind: Pod
apiVersion: v1
metadata:
  name: myapp
spec:
  replicas: 3
  topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: "topology.kubernetes.io/zone"
    whenUnsatisfiable: DoNotSchedule # or ScheduleAnyway
  containers:
  - name: pause
    image: registry.k8s.io/pause:3.1

Magazyn i woluminy

Domyślnie platforma Kubernetes w wersji 1.29 lub nowszej korzysta z usługi Azure Dyski zarządzane przy użyciu magazynu strefowo nadmiarowego (ZRS) na potrzeby oświadczeń trwałych woluminów.

Te dyski są replikowane między strefami, aby zwiększyć odporność aplikacji i chronić dane przed awariami centrum danych.

Przykład oświadczenia trwałego woluminu używającego dysków SSD w warstwie Standardowa w magazynie ZRS:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
    name: azure-managed-disk
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: managed-csi
  #storageClassName: managed-csi-premium
  resources:
    requests:
      storage: 5Gi

W przypadku wdrożeń wyrównanych do strefy można utworzyć nową klasę magazynu z parametrem ustawionym skuname na LRS (magazyn lokalnie nadmiarowy). Następnie możesz użyć nowej klasy magazynu w trwałym oświadczeniu woluminu (PVC).

Chociaż dyski LRS są tańsze, nie są strefowo nadmiarowe i dołączanie dysku do węzła w innej strefie nie jest obsługiwane.

Przykład klasy magazynu SSD LRS w warstwie Standardowa:

kind: StorageClass

metadata:
  name: azuredisk-csi-standard-lrs
provisioner: disk.csi.azure.com
parameters:
  skuname: StandardSSD_LRS
  #skuname: PremiumV2_LRS

Moduły równoważenia obciążenia

Platforma Kubernetes domyślnie wdraża usługa Load Balancer w warstwie Standardowa Platformy Azure, która równoważy ruch przychodzący we wszystkich strefach w regionie. Jeśli węzeł stanie się niedostępny, moduł równoważenia obciążenia przekierowuje ruch do węzłów w dobrej kondycji.

Przykładowa usługa korzystająca z usługi Azure Load Balancer:

apiVersion: v1
kind: Service
metadata:
  name: example
spec:
  type: LoadBalancer
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080

Ważne

30 września 2025 r. usługa Load Balancer w warstwie Podstawowa zostanie wycofana. Więcej informacji znajdziesz w oficjalnym ogłoszeniu. Jeśli obecnie używasz usługi Load Balancer w warstwie Podstawowa, pamiętaj o uaktualnieniu do usługa Load Balancer w warstwie Standardowa przed datą wycofania.

Ograniczenia

Podczas korzystania z Strefy dostępności obowiązują następujące ograniczenia:

Następne kroki