Condividi tramite


Eseguire il backup di servizio Azure Kubernetes usando Backup di Azure

Questo articolo descrive come configurare e eseguire il backup di servizio Azure Kubernetes usando portale di Azure. È anche possibile eseguire il backup del servizio Azure Kubernetes usando Azure PowerShell.

Backup di Azure consente di eseguire il backup dei cluster AKS (risorse cluster e volumi permanenti collegati al cluster) usando l'estensione Backup, che deve essere installata nel cluster. L'insieme di credenziali di backup comunica con il cluster tramite l'estensione di backup per eseguire operazioni di backup e ripristino.

Prerequisiti

Aspetti da assicurarsi prima di configurare il backup per il cluster del servizio Azure Kubernetes:

  • Il servizio AKS Backup supporta i volumi persistenti basati su Azure Disk e Azure SMB Files abilitati dal driver CSI. I dati di backup, inclusi gli snapshot del volume basati su Azure Disk e Files, possono essere archiviati come snapshot nel livello operativo e solo gli snapshot del volume basati su dischi di Azure possono essere spostati nel livello Vault per l'archiviazione a lungo termine. L'insieme di credenziali di backup e il cluster AKS possono trovarsi in sottoscrizioni diverse all'interno della stessa area e tenant.

    • Per i volumi basati su File di Azure, è necessario il driver CSI versione 1.32 o successiva.
    • I volumi di File di Azure con endpoint di rete privati non sono supportati; sono supportate solo le condivisioni file con endpoint accessibili pubblicamente.
    • Sono supportate solo le condivisioni file con 25.000 file o meno.
    • File di Azure che usano il protocollo NFS non sono supportati; è supportato solo il protocollo SMB.
  • Il backup di AKS utilizza un contenitore di BLOB e un gruppo di risorse per archiviare i backup. Il contenitore BLOB contiene le risorse del cluster AKS. Gli snapshot del volume permanente vengono archiviati nel gruppo di risorse per i volumi basati su disco di Azure. Per i volumi basati su File di Azure, gli snapshot vengono archiviati insieme alla condivisione file nello stesso account di archiviazione. Il cluster AKS e le posizioni di archiviazione devono trovarsi nella stessa regione. Scopri come creare un contenitore BLOB.

  • Attualmente, AKS supporta backup giornalieri. Supporta anche backup più frequenti (in intervalli di 4 ore, 8 ore e 12 ore) al giorno. Questa soluzione consente di conservare i dati per il ripristino per un massimo di 360 giorni per i volumi basati su disco di Azure. Per i volumi basati su File di Azure, la conservazione dei backup è limitata a un massimo di 30 giorni. Informazioni su come creare un criterio di backup.

  • Per i volumi basati su File di Azure, è consigliabile creare volumi permanenti con i criteri di recupero impostati su Mantieni per garantire che gli snapshot rimangano disponibili anche se il PVC viene eliminato. È possibile impostare il criterio di recupero con: kubectl patch pv <your-pv-name> --patch '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'

  • È necessario installare l'estensione per il backup per configurare le operazioni di backup e ripristino per un cluster AKS. Altre informazioni sull'estensione Backup.

  • Accertarsi di disporre di Microsoft.KubernetesConfiguration, Microsoft.DataProtection e Microsoft.ContainerService registrati per la sottoscrizione prima di avviare le operazioni di configurazione e ripristino del backup.

  • Assicuratevi di completare tutti i prerequisiti prima di avviare un'operazione di backup o ripristino per AKS Backup.

Per altre informazioni su scenari, limitazioni e disponibilità supportati, vedere la matrice di supporto.

Creare un archivio di backup

Un vault di Backup è un'entità di gestione che memorizza i punti di ripristino trattati nel tempo. Un cassetto di backup fornisce anche un'interfaccia per eseguire le operazioni di backup. Le operazioni includono l'esecuzione di backup su richiesta, l'esecuzione di ripristini e la creazione di criteri di backup. Il backup di AKS richiede che il Vault di Backup e il cluster AKS siano situati nella stessa regione. Tuttavia, possono risiedere in sottoscrizioni diverse, a condizione che siano all'interno dello stesso tenant. Scopri come creare un archivio di backup.

Nota

Un vault di Backup è una nuova risorsa usata per eseguire il backup di nuovi dati supportati. "Un archivio di Backup è diverso da un archivio di Recovery Services."

Se si vuole usare Backup di Azure per proteggere i cluster del servizio Azure Kubernetes da eventuali interruzioni a livello di area, è possibile abilitare il ripristino tra aree. Per abilitare il ripristino tra aree, è necessario:

  1. Impostare il parametro Ridondanza di archiviazione di Backup su Geo-ridondante durante la creazione dell'insieme di credenziali. Dopo aver impostato la ridondanza per un insieme di credenziali, non è possibile disabilitarla.

    Screenshot che mostra come abilitare il parametro Ridondanza dell'archivio di backup.

  2. Impostare il parametro Ripristino tra aree sotto Proprietà dell'insieme di credenziali su Abilitato. Dopo aver abilitato questo parametro, non è possibile disabilitarlo.

    Screenshot che mostra come abilitare il parametro Ripristino tra regioni.

  3. Creare un'istanza di backup utilizzando un criterio di backup con durata di conservazione impostata per un archivio dati di tipo Vault-standard. Ogni punto di ripristino inserito in questo archivio dati si troverà nell'area secondaria.

Creare una politica di backup

Prima di configurare i backup, è necessario creare criteri di backup che definiscono la frequenza dei backup e la durata di conservazione dei backup.

Per creare un criterio di backup:

  1. Accedere all'archivio di backup creato e selezionare Gestisci>Criteri di backup>Aggiungi.

  2. Inserire un nome per la politica di backup.

  3. Per Tipo di origine dati, selezionare Servizi Kubernetes.

  4. Nella scheda Pianificazione e conservazione, definire il programma di backup.

    • Frequenza di backup: selezionare la frequenza di backup (oraria o giornaliera) e quindi scegliere la durata di conservazione per i backup.
    • Impostazione di conservazione: per impostazione predefinita, un nuovo criterio di backup ha la regola Predefinita definita. È possibile modificare questa regola e non eliminarla. La regola predefinita definisce la durata di conservazione per tutti i backup del livello operativo eseguiti. È anche possibile creare regole di conservazione aggiuntive per archiviare i backup per una durata più lunga che vengono eseguiti ogni giorno o settimana.

    Importante

    Per i volumi basati su File di Azure, la conservazione dei backup è limitata a 30 giorni al massimo. Il backup del Vault Tier non è supportato per i volumi di Azure Files. Se è necessario eseguire il backup di volumi di Azure Disk e Azure Files con diverse destinazioni di backup (deposito e snapshot), creare istanze di backup separate, una per ogni tipo di risorsa. Screenshot che mostra le impostazioni di conservazione.

    Nota

    • Oltre al primo backup corretto del giorno, è possibile definire le regole di conservazione per il primo backup riuscito della settimana, del mese e dell'anno. In termini di priorità, l'ordine è anno, mese, settimana e giorno.
    • È possibile copiare i backup nell'area secondaria (area abbinata di Azure) archiviati nel livello del cassone, che è possibile usare per ripristinare i cluster di Azure Kubernetes Service (AKS) in un'area secondaria quando l'area primaria non è disponibile. Per scegliere questa funzionalità, usare un Insieme di credenziali a ridondanza geografica con Ripristino interregionale abilitato.
  5. Quando sono configurate le impostazioni di frequenza di backup e conservazione, selezionare Avanti.

  6. Nella scheda Rivedi e crea esaminare le informazioni e quindi selezionare Crea.

Installare l'estensione backup e configurare il backup

Puoi usare AKS Backup per eseguire il backup di un intero cluster o di risorse cluster specifiche distribuite nel cluster. È anche possibile proteggere un cluster più volte in base alla pianificazione e ai requisiti di conservazione dell'applicazione distribuita o ai requisiti di sicurezza.

Nota

Per configurare più istanze di backup per lo stesso cluster del servizio Azure Kubernetes:

  • Configurare il backup nello stesso archivio di backup, ma utilizzando una politica di backup diversa.
  • Configurare il backup in una cassetta di backup diversa.

Installare l'estensione backup

Per configurare i backup per un cluster del servizio Azure Kubernetes:

  1. Nel portale di Azure, vai al cluster AKS di cui desideri eseguire il backup.

  2. Nel menu del servizio, in Impostazioni, selezionare Backup.

  3. Per preparare il cluster del servizio Azure Kubernetes per il backup o il ripristino, selezionare Installa estensione per installare l'estensione backup nel cluster.

  4. Fornire un account di archiviazione e un contenitore BLOB come input.

    I backup del cluster AKS sono archiviati in questo contenitore BLOB. L'account di archiviazione deve trovarsi nella stessa area e nella stessa sottoscrizione del cluster.

    Screenshot che mostra come aggiungere i dettagli di archiviazione e BLOB per il backup.

  5. Selezionare Avanti. Esaminare i dettagli di installazione dell'estensione e selezionare Crea.

    Viene avviata l'installazione dell'estensione.

Configurare il backup

  1. Quando l'estensione backup è installata correttamente, selezionare Configura backup.

  2. Selezionare il caveau di backup creato in precedenza. Per eseguire il backup del cluster AKS, è necessario che il vault di backup disponga dell'accesso attendibile abilitato. Per abilitare l'accesso attendibile, selezionare Concedi autorizzazione. Se è già abilitata, selezionare Avanti.

  3. Nella scheda Criteri di backup selezionare i criteri di backup, che definiscono la pianificazione per i backup e il relativo periodo di conservazione, quindi selezionare Avanti.

  4. Nella scheda Origini dati selezionare Aggiungi/Modifica per definire la configurazione dell'istanza di backup.

  5. Nel riquadro Seleziona risorse da eseguire il backup definire le risorse del cluster di cui si vuole eseguire il backup.

    Altre informazioni sulle configurazioni di backup.

  6. Per Gruppo di risorse snapshot selezionare il gruppo di risorse da usare per archiviare gli snapshot del disco di Azure e quindi selezionare Convalida. Questo gruppo di risorse è necessario anche se si esegue il backup dei volumi di File di Azure (gli snapshot di File di Azure vengono archiviati insieme alla condivisione file nell'account di archiviazione).

    Al termine della convalida, se i ruoli obbligatori non vengono assegnati all'insieme di credenziali nel gruppo di risorse snapshot o all'account di archiviazione (per i volumi di File di Azure), viene visualizzato un errore:

    Screenshot che mostra un errore di convalida quando non sono assegnate le autorizzazioni necessarie.

    Per risolvere l'errore, in Nome origine dati selezionare la casella di controllo per l'origine dati e quindi selezionare Assegna ruoli mancanti.

  7. Al termine dell'assegnazione di ruolo, selezionare Avanti>Configura backup.

    Nota

    Per i volumi basati su File di Azure, l'insieme di credenziali di backup assegna automaticamente il ruolo Collaboratore con privilegi per i dati dei file di archiviazione al cluster del servizio Azure Kubernetes sull'account di archiviazione per i volumi di cui è stato eseguito il provisioning dinamico. Per i volumi con provisioning statico, è necessario assegnare questo ruolo manualmente.

Configurazioni di backup

Backup di Azure per il servizio Azure Kubernetes consente di definire il limite dell'applicazione all'interno del cluster del servizio Azure Kubernetes di cui si vuole eseguire il backup. È possibile usare i filtri disponibili nelle configurazioni di backup per scegliere le risorse di cui eseguire il backup e anche per eseguire hook personalizzati. La configurazione di backup definita fa riferimento al valore per Nome dell'istanza di backup. I filtri seguenti sono disponibili per definire il limite dell'applicazione:

  1. Selezionare Seleziona spazi dei nomi di cui eseguire il backup. È possibile selezionare Tutti per eseguire il backup di tutti gli spazi dei nomi esistenti e futuri nel cluster oppure selezionare spazi dei nomi specifici per il backup.

    Gli spazi dei nomi seguenti vengono ignorati dalle configurazioni di backup: kube-system, kube-node-lease e kube-public.

    Screenshot che mostra come selezionare gli spazi dei nomi da includere nel backup.

  2. Espandere Impostazioni risorse aggiuntive per visualizzare i filtri che è possibile usare per scegliere le risorse del cluster di cui eseguire il backup. È possibile scegliere di eseguire il backup delle risorse in base alle categorie seguenti:

    • Etichette: è possibile filtrare le risorse del servizio Azure Kubernetes usando etichette assegnate ai tipi di risorse. Immettere le etichette sotto forma di coppie chiave/valore. È possibile combinare più etichette usando la AND logica. Ad esempio, se si immettono le etichette env=prod;tier!=web, il processo seleziona le risorse con un'etichetta con la chiave env e il valore prod e un'etichetta con la chiave tier per cui il valore non è web.

    • Gruppi di API: è anche possibile includere risorse fornendo il gruppo di API AKS e il tipo. Ad esempio, è possibile scegliere risorse del servizio Azure Kubernetes per il backup, come le distribuzioni. È possibile accedere all'elenco dei gruppi di API definiti da Kubernetes qui.

    • Altre opzioni: è possibile abilitare o disabilitare il backup per risorse con ambito cluster, volumi persistenti e segreti. Le risorse con ambito cluster e i volumi permanenti sono abilitati per impostazione predefinita.

      • Tipo di volume: per eseguire il backup dei volumi basati su File di Azure, selezionare Condivisioni file SMB di Azure dall'elenco a discesa Tipo di volume . Per impostazione predefinita, sono selezionati solo i volumi dischi di Azure.
      • Segreti: abilitare Includi segreti se si usano segreti Kubernetes per archiviare le chiavi dell'account di archiviazione per i volumi di File di Azure. Questa operazione è necessaria per le operazioni di ripristino riuscite dei volumi basati su File di Azure.

Nota

È necessario aggiungere le etichette a ogni singolo file YAML distribuito e di cui eseguire il backup. Sono incluse risorse con ambito spazio dei nomi come attestazioni di volume persistente e risorse con ambito cluster come volumi persistenti.

Se si desidera escludere attestazioni di volume persistente specifiche dai backup, aggiungere l'annotazione velero.io/exclude-from-backup=true. Questa annotazione Velero è supportata da Azure Backup per AKS.

Verificare i backup e gli snapshot

Dopo aver configurato il backup, è possibile verificare che i backup vengano eseguiti correttamente e che vengano creati snapshot:

  1. Nel portale di Azure andare all'insieme di credenziali di Backup.

  2. Selezionare Istanze di backup in Gestisci per visualizzare lo stato dell'istanza di backup del cluster del servizio Azure Kubernetes.

  3. Selezionare Processi di backup per visualizzare le operazioni di backup completate e in corso.

  4. Per verificare gli snapshot di Azure Files:

    • Passare all'account di archiviazione che contiene la condivisione file di Azure Files.
    • Passare alla condivisione file usata dal volume permanente.
    • Selezionare Snapshot per visualizzare gli snapshot di backup creati da Backup di Azure.
  5. Per verificare gli snapshot dei dischi di Azure:

    • Passare al gruppo di risorse snapshot specificato durante la configurazione del backup.
    • Visualizzare gli snapshot del disco che corrispondono ai volumi persistenti basati su disco di Azure.

Usare hook durante il backup di AKS

Questa sezione descrive come usare un hook di backup per creare uno snapshot applicativo coerente del cluster AKS con MySQL distribuito (un volume persistente che contiene l'istanza di MySQL).

È possibile usare hook personalizzati nel backup del servizio Azure Kubernetes per eseguire snapshot coerenti con l'applicazione dei volumi. I volumi vengono usati per i database distribuiti come carichi di lavoro in contenitori.

Usando un hook di backup, è possibile definire i comandi per bloccare e sbloccare un pod MySQL in modo che sia possibile acquisire uno snapshot dell'applicazione del volume. L'estensione Backup quindi orchestra i passaggi necessari per eseguire i comandi all'interno degli hook e acquisisce lo snapshot del volume.

Uno scatto coerente con l'applicazione di un volume con MySQL installato si ottiene eseguendo le seguenti azioni:

  1. Il pod che esegue MySQL è bloccato in modo che non venga eseguita alcuna nuova transazione nel database.
  2. Viene creato uno snapshot come backup del volume.
  3. Il pod che esegue MySQL viene sbloccato in modo che le transazioni possano essere eseguite di nuovo nel database.

Per abilitare un hook di backup come parte del flusso di configurazione del backup per eseguire il backup di MySQL:

  1. Scrivere la risorsa personalizzata per l'hook di backup con i comandi per bloccare e sbloccare un pod PostgreSQL.

    È anche possibile usare lo script YAML di esempio seguente postgresbackuphook.yaml, con comandi predefiniti:

    apiVersion: clusterbackup.dataprotection.microsoft.com/v1alpha1
    kind: BackupHook
    metadata:
    # BackupHook CR Name and Namespace
    name: bkphookname0
    namespace: default
    spec:
    # BackupHook Name. This is the name of the hook that will be executed during backup.
    # compulsory
    name: hook1
    # Namespaces where this hook will be executed.
    includedNamespaces: 
    - hrweb
    excludedNamespaces:
    labelSelector:
    # PreHooks is a list of BackupResourceHooks to execute prior to backing up an item.
    preHooks:
       - exec:
          command:
          - /sbin/fsfreeze
          - --freeze
          - /var/lib/postgresql/data
          container: webcontainer
          onError: Continue
    # PostHooks is a list of BackupResourceHooks to execute after backing up an item.
    postHooks:
       - exec:
          container: webcontainer
          command:
             - /sbin/fsfreeze
             - --unfreeze
          onError: Fail
          timeout: 10s
    
    
    
  2. Prima di configurare un backup, è necessario distribuire la risorsa personalizzata hook di backup nel cluster AKS.

    Per distribuire lo script, eseguire il comando seguente:

    kubectl apply -f mysqlbackuphook.yaml
    
    
  3. Al termine della distribuzione, è possibile configurare i backup per il cluster AKS.

    Nota

    Come parte di una configurazione di backup, è necessario specificare il nome della risorsa personalizzata e lo spazio dei nomi in cui la risorsa viene distribuita come input.

Passaggi successivi