Dela via


Översikt över tillgänglighetszoner i Azure Kubernetes Service (AKS)

Den här artikeln innehåller en översikt över hur du använder tillgänglighetszoner i Azure Kubernetes Service (AKS) för att öka tillgängligheten för dina program.

Ett AKS-kluster distribuerar resurser, till exempel noder och lagring, över logiska avsnitt i den underliggande Azure-infrastrukturen. Om du använder tillgänglighetszoner separeras noder fysiskt från andra noder som distribuerats till olika tillgänglighetszoner. AKS-kluster som distribueras med flera tillgänglighetszoner som konfigurerats i ett kluster ger en högre tillgänglighetsnivå för att skydda mot maskinvarufel eller en planerad underhållshändelse.

Vad är tillgänglighetszoner?

Tillgänglighetszoner hjälper till att skydda dina program och data från datacenterfel. Zoner är unika fysiska platser i en Azure-region. Varje zon innehåller ett eller flera datacenter som är utrustade med oberoende ström, kylning och nätverk. För att säkerställa återhämtning finns det alltid mer än en zon i alla zonaktiverade regioner. Den fysiska avgränsningen av tillgänglighetszonerna inom en region skyddar program och data mot datacenterfel.

AKS-kluster som distribueras med hjälp av tillgänglighetszoner kan distribuera noder över flera zoner inom en enda region. Ett kluster i regionen USA, östra 2 kan till exempel skapa noder i alla tre tillgänglighetszonerna i USA, östra 2. Den här fördelningen av AKS-klusterresurser förbättrar klustertillgängligheten eftersom de är motståndskraftiga mot fel i en viss zon.

Diagram som visar AKS-noddistribution mellan tillgänglighetszoner.

Om en enskild zon blir otillgänglig fortsätter dina program att köras på kluster som är konfigurerade att spridas över flera zoner.

Mer information finns i Använda Azure-tillgänglighetszoner.

Kommentar

När du implementerar tillgänglighetszoner med autoskalning av kluster rekommenderar vi att du använder en enda nodpool för varje zon. Du kan ange parametern --balance-similar-node-groups till true för att upprätthålla en balanserad fördelning av noder mellan zoner för dina arbetsbelastningar under uppskalningsåtgärder. När den här metoden inte implementeras kan nedskalningsåtgärder störa balansen mellan noder mellan zoner. Den här konfigurationen garanterar inte att liknande nodgrupper har samma antal noder:

  • För närvarande sker utjämning endast under uppskalningsåtgärder. Autoskalning av kluster skalar ned underutnytttagna noder oavsett nodgruppernas relativa storlekar.
  • Autoskalning av kluster lägger bara till så många noder som krävs för att köra alla befintliga poddar. Vissa grupper kan ha fler noder än andra om de har fler poddar schemalagda.
  • Autoskalning av kluster balanserar endast mellan nodgrupper som har stöd för samma uppsättning väntande poddar.

Du kan också använda Azure-zonredundanta lagringsdiskar (ZRS) för att replikera lagringen mellan tre tillgänglighetszoner i den region du väljer. Med en ZRS-disk kan du återställa från fel i tillgänglighetszonen utan dataförlust. Mer information finns i ZRS för hanterade diskar.

Begränsningar

Följande begränsningar gäller när du skapar ett AKS-kluster med hjälp av tillgänglighetszoner:

  • Du kan bara definiera tillgänglighetszoner när klustret eller nodpoolen skapas.
  • Det går inte att uppdatera ett befintligt icke-tillgänglighetszonkluster för att använda tillgänglighetszoner när klustret har skapats.
  • Den valda nodstorleken (VM SKU) som valts måste vara tillgänglig i alla valda tillgänglighetszoner.
  • Kluster med tillgänglighetszoner som är aktiverade kräver användning av Azure Standard Load Balancers för distribution mellan zoner. Du kan bara definiera den här lastbalanserarens typ när klustret skapas. Mer information och begränsningarna för standardlastbalanseraren finns i Standard SKU-begränsningar för Azure Load Balancer.

Stöd för Azure Disk-tillgänglighetszoner

Volymer som använder Azure-hanterade LRS-diskar är inte zonredundanta resurser, och anslutning mellan zoner stöds inte. Du måste samplacera volymer i samma zon som den angivna noden som är värd för målpodden. Volymer som använder Azure-hanterade ZRS-diskar är zonredundanta resurser. Du kan schemalägga dessa volymer på alla zon- och icke-zonagentnoder. I följande exempel visas hur du skapar en lagringsklass med hjälp av StandardSSD_ZRS disk:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: managed-csi-zrs
provisioner: disk.csi.azure.com
parameters:
  skuName: StandardSSD_ZRS  # or Premium_ZRS
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true

Kubernetes version 1.12 och senare är medvetna om Azure-tillgänglighetszoner. Du kan distribuera ett PersistentVolumeClaim-objekt som refererar till en Azure Managed Disk i ett AKS-kluster med flera zoner och Kubernetes sköter schemaläggningen av alla poddar som gör anspråk på denna PVC i rätt tillgänglighetszon.

Från och med Kubernetes version 1.29, när du distribuerar Azure Kubernetes Service-kluster (AKS) över flera tillgänglighetszoner, använder AKS nu zonredundant lagring (ZRS) för att skapa hanterade diskar i inbyggda lagringsklasser. ZRS säkerställer synkron replikering av dina Azure-hanterade diskar över flera Azure-tillgänglighetszoner i den valda regionen. Den här redundansstrategin förbättrar återhämtningsförmågan för dina program och skyddar dina data mot datacenterfel.

Det är dock viktigt att observera att zonredundant lagring (ZRS) har en högre kostnad jämfört med lokalt redundant lagring (LRS). Om kostnadsoptimering är en prioritet kan du skapa en ny lagringsklass med parametern inställd på skuname LRS. Du kan sedan använda den nya lagringsklassen i ditt beständiga volymanspråk (PVC).

Nästa steg