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.DataProtection
eMicrosoft.ContainerService
siano registrati per la sottoscrizione prima diMicrosoft.KubernetesConfiguration
avviare 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.
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
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:
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:
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.
Se si desidera modificare la frequenza oraria o il periodo di conservazione, usare i cmdlet
Edit-AzDataProtectionPolicyTriggerClientObject
e/oEdit-AzDataProtectionPolicyRetentionRuleClientObject
. Quando l'oggetto criteri ha tutti i valori necessari, iniziare a creare un nuovo criterio dall'oggetto criteri usando ilNew-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:
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
- L'account di archiviazione e il cluster del servizio Azure Kubernetes devono trovarsi nella stessa area e nella stessa sottoscrizione.
- Il contenitore BLOB non deve contenere file system creati in precedenza (tranne quelli creati dal backup per il servizio Azure Kubernetes).
- 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.
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
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:
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'etichettakey-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"
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:
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"
Dopo aver assegnato le autorizzazioni, testare la conformità dell'istanza creata.
test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstance $backupInstance.Property
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:
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"
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
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