Condividi tramite


Ripristinare lo stato dei cluster Kubernetes dopo un'emergenza

Si applica a: Servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server

Nel servizio Azure Kubernetes in Azure Stack HCI o Windows Server il cluster di gestione viene distribuito come singola macchina virtuale autonoma per ogni distribuzione, rendendolo un singolo punto di errore. È importante notare che un'interruzione del cluster di gestione non ha alcun impatto sulle applicazioni in esecuzione nei cluster del carico di lavoro. Quando la macchina virtuale del cluster di gestione ha esito negativo, i cluster del carico di lavoro (e i carichi di lavoro) continuano a essere in esecuzione, ma non è possibile eseguire operazioni giornaliere.When the management cluster vm, the workload clusters (and workloads) continue running, but you't perform day-2 operations. Ad esempio, non è possibile creare nuovi cluster del carico di lavoro, creare o ridimensionare un pool di nodi o aggiornare le versioni di Kubernetes fino al ripristino della macchina virtuale.

Il cluster di gestione è una macchina virtuale rilevata nel clustering di failover di Windows. È anche resiliente alle interruzioni a livello di host. In altre parole, durante un errore del computer host, il clustering di failover di Windows riavvia la macchina virtuale in un computer host integro. Questo articolo fornisce indicazioni su come eseguire le attività seguenti:

  • Ripristinare lo stato del servizio Azure Kubernetes in un nuovo hardware (potrebbe essere un nuovo sito).
  • Ripristino dal danneggiamento del cluster di gestione.

In uno di questi scenari è necessario ricreare il cluster di gestione e tutti i cluster del carico di lavoro.

Ripristinare lo stato del servizio Azure Kubernetes in un nuovo hardware o in un nuovo sito

Per ripristinare lo stato dei cluster Kubernetes è necessario disporre di un cluster di gestione disponibile in un nuovo hardware o nella nuova posizione.

  • Il servizio Azure Kubernetes supporta il backup dei cluster Kubernetes in Archiviazione BLOB di Azure e MinIO usando Velero. Microsoft consiglia di eseguire il backup di Archiviazione di Azure perché fornisce 3 copie ridondanti dei dati nell'area di archiviazione primaria.
  • Prendere in considerazione l'esecuzione del backup in un processo cron per garantire che i backup disponibili soddisfino gli obiettivi del punto di ripristino.

Prerequisiti

Preparare il cold standby prima di un'emergenza creando un cluster di gestione e un cluster di carico di lavoro vuoto. È necessario un cluster di carico di lavoro vuoto per ogni cluster Kubernetes da ripristinare dal backup. Sono richiesti i prerequisiti seguenti:

Ripristino dal danneggiamento del cluster di gestione

Il ripristino da un danneggiamento di un cluster di gestione richiede la disinstallazione del servizio Azure Kubernetes e la reinstallazione del cluster di gestione e di tutti i cluster del carico di lavoro. I cluster del carico di lavoro possono essere ripristinati in cluster di carico di lavoro vuoti dai backup di Velero.

Sono richiesti i prerequisiti seguenti:

  • Backup del cluster del carico di lavoro: backup, ripristino di cluster del carico di lavoro con Velero.
  • Backup della configurazione del servizio Azure Kubernetes per le impostazioni di rete, archiviazione e cluster precedenti. Le impostazioni del cluster includono dimensioni e conteggi del piano di controllo, del servizio di bilanciamento del carico e delle macchine virtuali del nodo di lavoro. Ad esempio, se il cluster precedente aveva 3 macchine virtuali del piano di controllo Standard_A2_V2 , è necessario creare 3 macchine virtuali del piano di controllo nel nuovo ambiente.

Per eseguire il ripristino dal danneggiamento del cluster di gestione, seguire questa procedura:

  • Disinstallare il servizio Azure Kubernetes: Uninstall-AksHci.
  • Installare un nuovo cluster di gestione del servizio Azure Kubernetes seguendo i passaggi da 1 a 5 di questo articolo: Usare PowerShell per configurare Kubernetes nei cluster del servizio Azure Kubernetes.
  • Creare il cluster del carico di lavoro con i pool di nodi necessari usando il passaggio 6 di questo articolo. È necessario un cluster di carico di lavoro separato per ogni cluster del carico di lavoro ripristinato dal backup.
  • È possibile configurare più macchine virtuali del piano di controllo e macchine virtuali del servizio di bilanciamento del carico durante la creazione del cluster del carico di lavoro usando questo articolo: New-AksHciCluster per il servizio Azure Kubernetes.
  • Configurare l'archiviazione necessaria:
    • Per SMB: usare i driver di file CSI (Container Storage Interface).
    • Per l'archiviazione locale: usare i driver del disco CSI (Container Storage Interface).
  • Ripristinare tutti i cluster del carico di lavoro dal backup.

Domande frequenti

Quale resilienza è incorporata nel cluster di gestione?

Ogni distribuzione del servizio Azure Kubernetes include un cluster di gestione che è una singola macchina virtuale autonoma. Per la resilienza e la disponibilità elevata, il servizio Azure Kubernetes si basa sul clustering di failover windows per ripristinare la macchina virtuale in caso di interruzione.

Un'interruzione del cluster di gestione non ha alcun impatto sulle applicazioni in esecuzione nei cluster del carico di lavoro. Quando la macchina virtuale del cluster di gestione diventa inattiva, ciò influisce sulla possibilità di eseguire operazioni del giorno 2 del servizio Azure Kubernetes, ad esempio creare nuovi cluster di carico di lavoro, creare o ridimensionare pool di nodi, aggiornare le versioni di Kubernetes e così via, fino a quando non viene ripristinata la macchina virtuale. Nei casi in cui non è possibile eseguire il ripristino da un errore del cluster di gestione, è consigliabile contattare supporto tecnico Microsoft.

Cosa è incluso in un backup di Velero?

Filename Descrizione del contenuto
*-csi-volumesnapshotclasses.json.gz I file contenenti csi sono gli snapshot del volume permanente.
*-csi-volumesnapshotcontents.json.gz I file contenenti csi sono snapshot di volumi permanenti.
*-csi-volumesnapshots.json.gz I file contenenti csi sono gli snapshot del volume permanente.
*-logs.gz Output del log dell'operazione di backup. Stessi dati dall'esecuzione: velero backup log <backupname>.
*-podvolumebackups.json.gz Metadati relativi ai pod e ai volumi permanenti.
*-resource-list.json.gz Le risorse contenute in un backup sono elencate in questo file.
*-volumesnapshots.json.gz Metadati relativi ai pod e ai volumi permanenti.
*.tar.gz Metadati: spazio dei nomi, numero di repliche pod, memoria, CPU. Stessi dati restituiti da: kubectl get deployment.

Cosa non è incluso nei backup di Velero?

Il backup di Velero non include gli elementi seguenti:

  • Configurazione del cluster di gestione
  • Metadati della macchina virtuale del piano di controllo (server API)
  • Metadati del servizio di bilanciamento del carico (proxy a disponibilità elevata)
  • Impostazioni di rete
  • Impostazioni di archiviazione

Ricerca per categorie eseguire il backup della configurazione del servizio Azure Kubernetes prima di un'emergenza?

Per eseguire il backup della configurazione del cluster di gestione, aprire una finestra di PowerShell ed eseguire il comando seguente:

Get-AksHciConfig | ConvertTo-Json 

Ricerca per categorie assicurarsi che il cluster del carico di lavoro abbia la stessa configurazione di prima di un'emergenza?

Per eseguire il backup della configurazione del cluster del carico di lavoro, aprire una finestra di PowerShell ed eseguire il comando seguente:

Get-AksHciCluster -name <cluster name> | ConvertTo-Json 

Passaggi successivi