Panoramica delle zone di disponibilità nel servizio Azure Kubernetes

Questo articolo offre una panoramica sull'uso delle zone di disponibilità nel servizio Azure Kubernetes per aumentare la disponibilità delle applicazioni.

Un cluster del servizio Azure Kubernetes distribuisce risorse quali nodi e archiviazione tra sezioni logiche dell'infrastruttura di Azure sottostante. L'uso di zone di disponibilità separa fisicamente i nodi da altri nodi distribuiti in zone di disponibilità diverse. I cluster del servizio Azure Kubernetes distribuiti con più zone di disponibilità configurate in un cluster forniscono un livello di disponibilità più elevato per la protezione da un errore hardware o da un evento di manutenzione pianificata.

Quali sono le zone di disponibilità?

Le zone di disponibilità consentono di proteggere le applicazioni e i dati dai guasti del data center. Le zone sono località fisiche esclusive all'interno di un'area di Azure. Ogni zona comprende uno o più data center dotati di impianti indipendenti per l'alimentazione, il raffreddamento e la connettività di rete. Per garantire la resilienza, sono sempre presenti più di una zona in tutte le aree abilitate delle zone. La separazione fisica delle zone di disponibilità all'interno di un'area consente di proteggere le applicazioni e i dati da eventuali guasti del data center.

I cluster del servizio Azure Kubernetes distribuiti usando le zone di disponibilità possono distribuire nodi in più zone all'interno di una singola area. Ad esempio, un cluster nell'area Stati Uniti orientali 2 può creare nodi in tutte e tre le zone di disponibilità in Stati Uniti orientali 2. Questa distribuzione delle risorse cluster del servizio Azure Kubernetes migliora la disponibilità del cluster perché sono resilienti agli errori di una zona specifica.

Diagramma che mostra la distribuzione del nodo del servizio Azure Kubernetes tra le zone di disponibilità.

Se una singola zona diventa non disponibile, le applicazioni continuano a essere eseguite sui cluster configurati per essere distribuiti in più zone.

Per altre informazioni, vedere Uso delle zone di disponibilità di Azure.

Nota

Quando si implementano zone di disponibilità con l’utilità di scalabilità automatica del cluster, è consigliabile usare un singolo pool di nodi per ogni zona. Puoi impostare il parametro --balance-similar-node-groups su true per mantenere una distribuzione bilanciata di nodi tra zone per i tuoi carichi di lavoro durante le operazioni di scale up. Quando questo approccio non viene implementato, le operazioni di scale down possono compromettere il bilanciamento dei nodi tra le zone. Questa configurazione non garantisce che i gruppi di nodi simili abbiano lo stesso numero di nodi:

  • Attualmente, il bilanciamento avviene solo durante le operazioni di aumento delle prestazioni. Il ridimensionamento automatico del cluster riduce i nodi sottoutilizzati indipendentemente dalle dimensioni relative dei gruppi di nodi.
  • Il ridimensionamento automatico del cluster aggiunge solo il numero di nodi necessari per eseguire tutti i pod esistenti. Alcuni gruppi potrebbero avere più nodi di altri se hanno più pod pianificati.
  • Il ridimensionamento automatico del cluster bilancia solo i gruppi di nodi che possono supportare lo stesso set di pod in sospeso.

È anche possibile usare dischi di archiviazione con ridondanza della zona (ZRS) di Azure per replicare l'archiviazione in tre zone di disponibilità nell'area selezionata. Un disco di archiviazione con ridondanza della zona (ZRS) consente di eseguire il ripristino da un errore della zona di disponibilità senza perdita di dati. Per altre informazioni, vedere Archiviazione con ridondanza della zona (ZRS) per dischi gestiti.

Limiti

Quando si crea un cluster del servizio Azure Kubernetes usando le zone di disponibilità, si applicano le limitazioni seguenti:

  • È possibile definire zone di disponibilità durante la creazione del cluster o del pool di nodi.
  • Non è possibile aggiornare un cluster di zona non di disponibilità esistente per usare le zone di disponibilità dopo la creazione del cluster.
  • Le dimensioni del nodo scelto (SKU della macchina virtuale) selezionate devono essere disponibili in tutte le zone di disponibilità selezionate.
  • I cluster con le zone di disponibilità abilitate richiedono l'uso dei servizi di bilanciamento del carico standard di Azure per la distribuzione tra le zone. È possibile definire questo tipo di servizio di bilanciamento del carico solo in fase di creazione del cluster. Per altre informazioni e per le limitazioni del servizio di bilanciamento del carico standard, vedere Limitazioni dello SKU standard di bilanciamento del carico di Azure.

Supporto delle zone di disponibilità del disco di Azure

I volumi che usano archiviazione con ridondanza locale gestita di Azure non sono risorse con ridondanza della zona e il collegamento tra le zone non è supportato. È necessario individuare i volumi nella stessa zona del nodo specificato che ospita il pod di destinazione. I volumi che usano i dischi ZRS gestiti di Azure sono risorse con ridondanza della zona. È possibile pianificare tali volumi in tutti i nodi dell'agente di zona e non di zona. L'esempio seguente illustra come creare una classe di archiviazione usando il disco StandardSSD_ZRS:

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

Le versioni 1.12 di Kubernetes e successive sono consapevoli delle zone di disponibilità di Azure. È possibile distribuire un oggetto PersistentVolumeClaim che fa riferimento a un disco gestito di Azure in un cluster del servizio Azure Kubernetes a più zone e Kubernetes si occupa della pianificazione di tutti i pod che dichiarano il PVC nella zona di disponibilità corretta.

A partire dalla versione 1.29 di Kubernetes, quando si distribuiscono cluster del servizio Azure Kubernetes in più zone di disponibilità, il servizio Azure Kubernetes ora usa l'archiviazione con ridondanza della zona (ZRS) per creare dischi gestiti all'interno di classi di archiviazione predefinite. L'archiviazione con ridondanza della zona garantisce la replica sincrona dei dischi gestiti di Azure in più zone di disponibilità di Azure nell'area scelta. Questa strategia di ridondanza migliora la resilienza delle applicazioni e protegge i dati dagli errori del data center.

Tuttavia, è importante notare che l'archiviazione con ridondanza della zona (ZRS) comporta un costo più elevato rispetto all'archiviazione con ridondanza locale. Se l'ottimizzazione dei costi è una priorità, è possibile creare una nuova classe di archiviazione con il parametro skuname impostato su Archiviazione con ridondanza locale. È quindi possibile usare la nuova classe di archiviazione nell'attestazione di volume persistente (PVC).

Passaggi successivi