Condividi tramite


Eseguire il backup del servizio Azure Kubernetes con PowerShell

Questo articolo descrive come configurare e eseguire il backup del servizio Azure Kubernetes usando Azure PowerShell.

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

Prima di iniziare

Prima di iniziare a eseguire il backup di un cluster del servizio Azure Kubernetes, assicurarsi di esaminare i prerequisiti seguenti:

  • Attualmente, il backup del servizio Azure Kubernetes supporta solo i volumi persistenti basati su disco di Azure (abilitati dal driver CSI). I backup vengono archiviati solo nell'archivio dati operativo (nel tenant) e non vengono spostati in un insieme di credenziali. L'insieme di credenziali di backup e il cluster del servizio Azure Kubernetes devono trovarsi nella stessa area.

  • Il backup del servizio Azure Kubernetes usa un contenitore BLOB e un gruppo di risorse per archiviare i backup. Il contenitore BLOB contiene le risorse del cluster del servizio Azure Kubernetes archiviate, mentre gli snapshot del volume persistente vengono archiviati nel gruppo di risorse. Il cluster del servizio Azure Kubernetes e le posizioni di archiviazione devono trovarsi nella stessa area. Informazioni su come creare un contenitore BLOB.

  • Attualmente, il backup del servizio Azure Kubernetes supporta il backup una volta al giorno. Supporta anche backup più frequenti (ogni 4, 8e 12 ore) al giorno. Questa soluzione consente di conservare i dati per il ripristino per un periodo massimo di 360 giorni. Informazioni su come creare un criterio di backup.

  • È necessario installare l'estensione di backup per configurare le operazioni di backup e ripristino in un cluster del servizio Azure Kubernetes. Altre informazioni sull'estensione Backup.

  • Assicurarsi che , Microsoft.DataProtectione Microsoft.ContainerService siano registrati per la sottoscrizione prima di Microsoft.KubernetesConfigurationavviare le operazioni di configurazione e ripristino del backup.

  • Accertarsi di eseguire tutti i prerequisiti prima di avviare l'operazione di backup o ripristino per il backup del servizio Azure Kubernetes.

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

Creare un insieme di credenziali per il backup

Un insieme di credenziali di Backup è un'entità di archiviazione in Azure che archivia i dati di backup per vari carichi di lavoro più recenti supportati da Backup di Azure, ad esempio i server di Database di Azure per PostgreSQL e i dischi di Azure. Gli insiemi di credenziali di backup semplificano l'organizzazione dei dati di backup, riducendo al minimo il carico di gestione. Questi si basano sul modello di Azure Resource Manager di Azure, che offre funzionalità avanzate per proteggere i dati di backup. Prima di creare un insieme di credenziali di backup, scegliere la ridondanza di archiviazione dei dati nell'insieme di credenziali, quindi creare l'insieme di credenziali di backup con tale ridondanza di archiviazione e la posizione.

In questo caso viene creato un insieme di credenziali di backup TestBkpVault nell'area Stati Uniti occidentali nel gruppo di risorse testBkpVaultRG. Usare il New-AzDataProtectionBackupVault cmdlet per creare un insieme di credenziali di Backup. Altre informazioni sulla creazione di un insieme di credenziali di backup.

Nota

Anche se l'insieme di credenziali selezionato può avere l'impostazione di ridondanza globale, il backup per il servizio Azure Kubernetes attualmente supporta solo il livello operativo. Tutti i backup vengono archiviati nella sottoscrizione nella stessa area del cluster del servizio Azure Kubernetes e non vengono copiati nell'archivio dell'insieme di credenziali di backup.

  1. Per definire le impostazioni di archiviazione dell'insieme di credenziali di backup, eseguire il cmdlet seguente:

    Nota

    L'insieme di credenziali viene creato solo con ridondanza locale e supporto dell'archivio dati operativo.

    $storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant -DataStoreType OperationalStore
    
  2. Per creare l'insieme di credenziali di backup in base ai dettagli indicati in precedenza, eseguire il cmdlet seguente:

    New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
    $TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
    

Al termine della creazione dell'insieme di credenziali, creare un criterio di backup per proteggere i cluster del servizio Azure Kubernetes.

Creare un criterio di backup

Backup di Azure consente di creare criteri di backup per la protezione del cluster del servizio Azure Kubernetes con Backup giornalieri o Backup multipli al giorno.

Per creare un criterio di backup per il cluster del servizio Azure Kubernetes, eseguire i cmdlet seguenti:

  1. Recuperare il modello di criteri usando il cmdlet Get-AzDataProtectionPolicyTemplate e controllare i componenti interni di un criterio di backup per il backup del servizio Azure Kubernetes. Questo comando restituisce un modello di criteri predefinito per un determinato tipo di origine dati. Usare questo modello di criteri per creare un nuovo criterio.

    $policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureKubernetesService
    

    Il modello di criteri è costituito da un criterio trigger (che determina i fattori per attivare il processo di backup) e un ciclo di vita (che decide quando eliminare, copiare o spostare i backup). Nel backup del servizio Azure Kubernetes il valore predefinito per il trigger è un trigger orario pianificato ogni 4 ore (PT4H) e la conservazione di ogni backup è di 7 giorni.

    $policyDefn.PolicyRule[0]. Trigger | fl
    
    ObjectType: ScheduleBasedTriggerContext
    ScheduleRepeatingTimeInterval: {R/2023-04-05T13:00:00+00:00/PT4H}
    TaggingCriterion: {Default}
    
    $policyDefn.PolicyRule[1]. Lifecycle | fl
    
    DeleteAfterDuration: P7D
    DeleteAfterObjectType: AbsoluteDeleteOption
    SourceDataStoreObjectType : DataStoreInfoBase
    SourceDataStoreType: OperationalStore
    TargetDataStoreCopySetting:
    
  2. Per la frequenza di backup giornaliera, specificare l'ora del giorno in cui devono essere eseguiti i backup.

    Importante

    L'ora del giorno indica l'ora di inizio e non l'ora di completamento del backup. Il tempo necessario per completare l'operazione di backup dipende da vari fattori, tra cui il numero e la dimensione dei volumi persistenti, e la frequenza di varianza tra i backup consecutivi.

    Il backup per il servizio Azure Kubernetes offre più backup al giorno. I backup vengono distribuiti equamente durante il giorno, se sono necessari backup più frequenti scegliendo la frequenza di backup oraria con la possibilità di eseguire backup con intervalli di 4, 6, 8o 12 ore. I backup vengono pianificati in base all'intervallo di tempo selezionato. Ad esempio, se si seleziona ogni 4 ore, i backup vengono eseguiti approssimativamente ogni 4 ore.

  3. Se si desidera modificare la frequenza oraria o il periodo di conservazione, usare i cmdlet Edit-AzDataProtectionPolicyTriggerClientObject e/o Edit-AzDataProtectionPolicyRetentionRuleClientObject. Quando l'oggetto criteri ha tutti i valori necessari, iniziare a creare un nuovo criterio dall'oggetto criteri usando il New-AzDataProtectionBackupPolicy cmdlet.

    New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name aksBkpPolicy -Policy $policyDefn
    
    $aksBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "aksBkpPolicy"
    

Preparare il cluster del servizio Azure Kubernetes per il backup

Al termine della creazione dell’insieme di credenziali e dei criteri, è necessario eseguire i prerequisiti seguenti per preparare il cluster del servizio Azure Kubernetes per il backup:

  1. Creare un account di archiviazione e un contenitore BLOB

    Il backup per il servizio Azure Kubernetes archivia le risorse Kubernetes in un contenitore BLOB come backup. Per preparare il cluster del servizio Azure Kubernetes per il backup, è necessario installare un'estensione nel cluster. Questa estensione richiede l'account di archiviazione e il contenitore BLOB come input.

    Per creare un nuovo account di archiviazione e un contenitore BLOB, seguire questi passaggi.

    Nota

    1. L'account di archiviazione e il cluster del servizio Azure Kubernetes devono trovarsi nella stessa area e nella stessa sottoscrizione.
    2. Il contenitore BLOB non deve contenere file system creati in precedenza (tranne quelli creati dal backup per il servizio Azure Kubernetes).
    3. Se il cluster del servizio Azure Kubernetes di origine o di destinazione si trova in una rete virtuale privata, è necessario creare un endpoint privato per connettere l'account di archiviazione con il cluster del servizio Azure Kubernetes.
  2. Installazione dell'estensione per il backup

    L'estensione di backup deve obbligatoriamente essere installata nel cluster del servizio Azure Kubernetes per eseguire tutte le operazioni di backup e ripristino. L'estensione di backup crea uno spazio dei nomi dataprotection-microsoft nel cluster e usa lo stesso per distribuire le risorse. L'estensione richiede l'account di archiviazione e il contenitore BLOB come input per l'installazione. Informazioni sui comandi di installazione dell'estensione.

    Come parte dell'installazione dell'estensione, viene creata un'identità utente nel gruppo di risorse pool di nodi del cluster del servizio Azure Kubernetes. Per consentire all'estensione di accedere all'account di archiviazione, è necessario fornire a tale identità il ruolo di Collaboratore account di archiviazione. Per assegnare il ruolo richiesto, eseguire questi comandi

  3. Abilitare l'accesso attendibile

Affinché l'insieme di credenziali di backup si connetta al cluster del servizio Azure Kubernetes, è necessario abilitare l'accesso attendibile perché consente all'insieme di credenziali di backup di avere una linea diretta di vista per il cluster del servizio Azure Kubernetes. Informazioni su come abilitare Accesso attendibile.

Nota

Per l'installazione dell'estensione di backup e l'abilitazione dell'accesso attendibile, i comandi sono disponibili solo nell'interfaccia della riga di comando di Azure.

Configurare i backup

Con l'insieme di credenziali di backup, i criteri di backup creati e il cluster del servizio Azure Kubernetes nello stato pronto per il backup, è ora possibile iniziare a eseguire il backup del cluster del servizio Azure Kubernetes.

Entità chiave

  • Cluster del servizio Azure Kubernetes da proteggere

    Recuperare l'ID di Azure Resource Manager del cluster del servizio Azure Kubernetes da proteggere. Questo viene usato come identificatore del cluster. In questo esempio si userà un cluster del servizio Azure Kubernetes denominato PSTestAKSCluster, in un gruppo di risorse aksrg, in una sottoscrizione diversa:

    $sourceClusterId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/aksrg /providers/Microsoft.ContainerService/managedClusters/ PSTestAKSCluster "
    
  • Gruppo di risorse snapshot

    Gli snapshot del volume permanente vengono archiviati in un gruppo di risorse nella sottoscrizione. È consigliabile creare un gruppo di risorse dedicato come archivio dati snapshot disponibile per il servizio Backup di Azure. Un gruppo di risorse dedicato consente di limitare le autorizzazioni di accesso per il gruppo di risorse, offrendo sicurezza e facilità di gestione dei dati di backup. Salvare l'ID di Azure Resource Manager del gruppo di risorse nel percorso in cui archiviare gli snapshot del volume permanente.

    $snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/snapshotrg"
    

Preparare la richiesta

La configurazione del backup viene eseguita in due passaggi:

  1. Preparare la configurazione del backup per definire le risorse del cluster di cui eseguire il backup usando il New-AzDataProtectionBackupConfigurationClientObject cmdlet. Nell'esempio seguente, la configurazione viene definita come tutte le risorse del cluster in corso e gli spazi dei nomi futuri verranno sottoposti a backup con l'etichetta key-value pair x=y. Viene inoltre eseguito il backup di tutte le risorse con ambito cluster e i volumi permanenti. Gli spazi dei nomi seguenti vengono ignorati dalla configurazione di backup e non configurati per i backup: kube-system, kube-node-lease, kube-public.

    $backupConfig = New-AzDataProtectionBackupConfigurationClientObject -SnapshotVolume $true -IncludeClusterScopeResource $true -DatasourceType AzureKubernetesService -LabelSelector "env=prod"
    
  2. Preparare la richiesta pertinente usando l'insieme di credenziali, i criteri, il cluster del servizio Azure Kubernetes, la configurazione di backup e il gruppo di risorse snapshot usando il Initialize-AzDataProtectionBackupInstance cmdlet.

    $backupInstance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureKubernetesService  -DatasourceLocation $dataSourceLocation -PolicyId $ aksBkpPol.Id -DatasourceId $sourceClusterId -SnapshotResourceGroupId $ snapshotrg -FriendlyName $friendlyName -BackupConfiguration $backupConfig
    

Assegnare le autorizzazioni necessarie e convalidare

Per assegnare le autorizzazioni necessarie ed eseguire la convalida per la protezione del cluster del servizio Azure Kubernetes, eseguire i cmdlet seguenti:

  1. Dopo aver preparato la richiesta, è necessario assegnare all'utente le autorizzazioni necessarie tramite il controllo degli accessi in base al ruolo di Azure (Azure RBAC) all'insieme di credenziali (rappresentato dall'identità del sistema gestito dell'insieme di credenziali) e al cluster del servizio Azure Kubernetes. È possibile eseguire questa operazione usando il Set-AzDataProtectionMSIPermission cmdlet. L'insieme di credenziali di Backup usa un'identità gestita per accedere ad altre risorse di Azure. Per configurare il backup del cluster del servizio Azure Kubernetes, l'identità gestita dell'insieme di credenziali di backup richiede un set di autorizzazioni per il cluster del servizio Azure Kubernetes e i gruppi di risorse, in cui vengono creati e gestiti gli snapshot. Il cluster del servizio Azure Kubernetes richiede anche l'autorizzazione per il gruppo di risorse snapshot.

    Nota

    Solo l'identità gestita assegnata dal sistema è attualmente supportata per il backup (insieme di credenziali di backup e cluster del servizio Azure Kubernetes). Un'identità gestita assegnata dal sistema è limitata a una per risorsa ed è legata al ciclo di vita di tale risorsa. È possibile concedere le autorizzazioni all'identità gestita usando il controllo degli accessi in base al ruolo di Azure. Un'identità gestita è un'entità servizio di un tipo speciale che è possibile usare solo con le risorse di Azure. Vedere altre informazioni sulle identità gestite.

    Set-AzDataProtectionMSIPermission -BackupInstance $backupInstance -VaultResourceGroup $rgName -VaultName $vaultName -PermissionsScope "ResourceGroup"
    
  2. Dopo aver assegnato le autorizzazioni, testare la conformità dell'istanza creata.

    test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance  $backupInstance.Property 
    
  3. Quando la convalida ha esito positivo, inviare la richiesta per proteggere il cluster del servizio Azure Kubernetes usando il New-AzDataProtectionBackupInstance cmdlet .

    New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $backupInstance
    

Eseguire un backup su richiesta

Per attivare un backup su richiesta, eseguire i cmdlet seguenti:

  1. Recuperare l'istanza di backup pertinente in cui si vuole attivare un backup eseguendo il Get-AzDataProtectionBackupInstance cmdlet .

    $instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
    
  2. Specificare una regola di conservazione durante l'attivazione del backup. Per visualizzare le regole di conservazione nei criteri, andare all'oggetto criteri per le regole di conservazione. Nell'esempio seguente viene visualizzata la regola con nome predefinito che verrà usata per il backup su richiesta.

    $policyDefn.PolicyRule | fl
    BackupParameter: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
    BackupParameterObjectType: AzureBackupParams
    DataStoreObjectType: DataStoreInfoBase
    DataStoreType: OperationalStore
    Name: BackupHourly
    ObjectType: AzureBackupRule
    Trigger: Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
    TriggerObjectType: ScheduleBasedTriggerContext
    IsDefault: True
    Lifecycle: {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
    Name: Default
    ObjectType: AzureRetentionRule
    
  3. Attivare un backup su richiesta usando il Backup-AzDataProtectionBackupInstanceAdhoc cmdlet .

    $AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
    
    Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
    

Rilevamento dei processi

Tenere traccia di tutti i processi usando il Get-AzDataProtectionJob cmdlet. È possibile elencare tutti i processi e recuperare un dettaglio specifico del processo. È anche possibile usare il Az.ResourceGraph cmdlet per tenere traccia di tutti i processi in tutti gli insiemi di credenziali di backup. Usare il Search-AzDataProtectionJobInAzGraph cmdlet per ottenere i dettagli del processo pertinenti da qualsiasi insieme di credenziali di Backup.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureKubernetesService  -Operation OnDemandBackup

Passaggi successivi