Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come configurare e eseguire il backup di Servizio Azure Kubernetes (AKS) usando interfaccia della riga di comando di Azure. È anche possibile eseguire il backup di AKS usando Azure PowerShell.
Backup di Azure ora consente 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. Il vault di backup comunica con il cluster tramite questa estensione di backup per eseguire operazioni di backup e ripristino.
Prima di iniziare
Attualmente, il backup di AKS supporta solo i volumi persistenti basati su disco Azure (abilitati dal driver CSI). I backup vengono archiviati solo nel datastore operativo (nel tenant) e non vengono spostati in un vault. L'insieme di credenziali di backup e il cluster AKS devono essere nella stessa regione.
Il backup di AKS utilizza un contenitore blob e un gruppo di risorse per archiviare i backup. Il blob container contiene le risorse del cluster AKS, mentre gli snapshot dei volumi persistenti vengono archiviati nel gruppo di risorse. Il cluster AKS e le posizioni di archiviazione devono trovarsi nella stessa regione. Informazioni su come creare un contenitore BLOB.
Attualmente, il backup di AKS supporta un backup giornaliero. 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.KubernetesConfiguration,Microsoft.DataProtectioneMicrosoft.ContainerServicesiano registrati per la sottoscrizione prima di avviare le operazioni di configurazione e ripristino del backup.Accertarsi di eseguire tutti i prerequisiti prima di iniziare l'operazione di backup o ripristino per il backup di AKS.
Per altre informazioni su scenari, limitazioni e disponibilità supportati, vedere la matrice di supporto.
Creare una cassaforte di backup
Un Vault di backup è un'entità di gestione in Azure che archivia i dati di backup per diversi carichi di lavoro più recenti supportati da Backup di Azure, come Database di Azure per PostgreSQL server e Azure Disks. Gli insiemi di credenziali di backup semplificano l'organizzazione dei dati di backup, riducendo al minimo il carico di gestione. Gli insiemi di credenziali di backup si basano sul modello di Azure Resource Manager di Azure, in cui sono disponibili funzionalità avanzate per proteggere i dati di backup.
Prima di creare un vault di backup, scegliere la ridondanza di archiviazione dei dati nel vault, quindi creare il vault di backup con tale ridondanza di archiviazione e la posizione. Altre informazioni sulla creazione di una cassaforte 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 AKS e non vengono copiati nell'archivio del backup.
Per creare la cassetta di Backup, esegui il comando seguente:
az dataprotection backup-vault create --resource-group $backupvaultresourcegroup --vault-name $backupvault --location $region --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
Al termine della creazione del vault, creare un criterio di backup per proteggere i cluster AKS.
Creare una politica di backup
Per comprendere i componenti interni di una politica di backup per il backup del servizio Azure Kubernetes (AKS), recuperare il modello di politica usando il comando az dataprotection backup-policy get-default-policy-template. 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.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureKubernetesService > akspolicy.json
{
"datasourceTypes": [
"Microsoft.ContainerService/managedClusters"
],
"name": "AKSPolicy1",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
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 di Azure Kubernetes Service, il valore predefinito per il trigger è un trigger orario pianificato ogni 4 ore (PT4H) e la conservazione di ogni backup è di sette giorni.
Scheduled trigger:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2023-01-04T09:00:00+00:00/PT4H"
]
}
}
Default retention lifecycle:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Il backup per il servizio Azure Kubernetes offre più backup al giorno. Se sono necessari backup più frequenti, scegliere la frequenza di backup oraria con la possibilità di eseguire backup con intervalli di ogni 4, 6, 8 o 12 ore. I backup vengono pianificati in base all'intervallo di tempo selezionato.
Importante
L'ora del giorno indica l'ora di inizio e non l'ora di completamento del backup.
La pianificazione del backup segue il formato di durata ISO 8601. Tuttavia, il prefisso dell'intervallo di ripetizione R non è supportato, poiché i backup sono configurati per essere eseguiti indefinitamente. Qualsiasi valore specificato con R verrà ignorato.
Dopo aver scaricato il modello come file JSON, è possibile modificarlo per la pianificazione e la conservazione in base alle esigenze. Creare quindi un nuovo criterio con il codice JSON risultante. Se si desidera modificare la frequenza oraria o il periodo di conservazione, usare i az dataprotection backup-policy trigger set comandi e/o az dataprotection backup-policy retention-rule set .
Nota
Per archiviare i dati di backup nel livello Vault, sia per conservarli a lungo termine per scopi di conformità, sia per il ripristino di emergenza regionale tramite ripristino interregionale, è necessario definire una nuova regola di conservazione nel modello predefinito che stabilisce per quanto tempo il backup deve essere archiviato nel Vault.
Si prenda un esempio in cui si aggiornerà il modello predefinito per i criteri di backup e si aggiungerà una regola di conservazione per conservare il primo backup riuscito al giorno nel livello Vault per 30 giorni.
Usare il comando az dataprotection backup-policy retention-rule create-lifecycle per creare una regola di conservazione e quindi aggiungere la regola di conservazione al modello di criteri di backup con il comando ''
az dataprotection backup-policy retention-rule create-lifecycle --count 30 --retention-duration-type Days --copy-option ImmediateCopyOption --target-datastore VaultStore --source-datastore OperationalStore > ./retentionrule.json
az dataprotection backup-policy retention-rule set --lifecycles ./retentionrule.json --name Daily --policy ./akspolicy.json > ./akspolicy.json
Dopo che il codice JSON dei criteri ha tutti i valori necessari, procedere con la creazione di un nuovo criterio dall'oggetto criteri usando il az dataprotection backup-policy create comando .
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
Preparare il cluster AKS per il backup
Al termine della creazione dell'insieme di credenziali e dei criteri, è necessario eseguire i seguenti prerequisiti per rendere pronto il cluster AKS per il backup:
Creare un account di archiviazione e un contenitore blob.
Il backup per AKS archivia le risorse Kubernetes in un contenitore blob. Per preparare il cluster AKS 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, eseguire il comando seguente:
az storage account create --name $storageaccount --resource-group $storageaccountresourcegroup --location $region --sku Standard_LRSAl termine della creazione dell'account di archiviazione, creare un contenitore BLOB all'interno eseguendo il comando seguente:
az storage container create --name $blobcontainer --account-name $storageaccount --auth-mode loginInformazioni su come abilitare o disabilitare funzionalità specifiche, come l'endpoint privato, durante la creazione di un account di archiviazione e di un contenitore BLOB.
Nota
- L'account di archiviazione e il cluster AKS devono essere nella stessa area e nella stessa sottoscrizione.
- Il contenitore BLOB non deve contenere file system creati in precedenza (ad eccezione di quelli creati per il backup per Azure Kubernetes Service, AKS).
- 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.
Installare l'estensione di 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-microsoftnel cluster e usa lo stesso per distribuire le risorse. L'estensione richiede l'account di archiviazione di dati e il contenitore BLOB come input per l'installazione.az k8s-extension create --name azure-aks-backup --extension-type microsoft.dataprotection.kubernetes --scope cluster --cluster-type managedClusters --cluster-name $akscluster --resource-group $aksclusterresourcegroup --release-train stable --configuration-settings blobContainer=$blobcontainer storageAccount=$storageaccount storageAccountResourceGroup=$storageaccountresourcegroup storageAccountSubscriptionId=$subscriptionId
Nel caso in cui il cluster del servizio Azure Kubernetes si trovi all'interno di una rete virtuale, sarà necessario creare un endpoint privato, connettendo l'account di archiviazione alla rete virtuale in cui risiede il cluster del servizio Azure Kubernetes.
#Fetch the Subnet ID using the name of the virtual network and subnet in which cluster resides
$PESubnetId = az network vnet subnet show --resource-group $aksMCResourceGroup --vnet-name $aksVnetName --name $PESubnetName --query 'id' --output tsv
#Create a Private Endpoint between Storage Account and the Virtual Network.
az network private-endpoint create `
--resource-group $aksclusterresourcegroup `
--name $StoragePrivateEndpoint `
--vnet-name $aksVnetName `
--subnet $PESubnetId `
--private-connection-resource-id $(az storage account show --nameD $storageaccount --resource-group $storageaccountresourcegroup --query "id" --output tsv) `
--group-ids "blob" `
--connection-name "StoragePESharedVNetConnection"
Come parte dell'installazione dell'estensione, viene creata un'identità utente nel gruppo di risorse del pool di nodi del cluster AKS. Per consentire all'estensione di accedere all'account di archiviazione, è necessario assegnare a questa identità il ruolo di Collaboratore dei dati blob di archiviazione. Per assegnare il ruolo richiesto, eseguire il comando seguente:
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name $akscluster --resource-group $aksclusterresourcegroup --cluster-type managedClusters --query aksAssignedIdentity.principalId --output tsv) --role 'Storage Blob Data Contributor' --scope /subscriptions/$subscriptionId/resourceGroups/$storageaccountresourcegroup/providers/Microsoft.Storage/storageAccounts/$storageaccount
Abilitare l'accesso attendibile
Affinché il Backup vault si connetta al cluster AKS, è necessario abilitare Trusted Access poiché permette al Backup vault di avere una comunicazione diretta con il cluster AKS.
Per abilitare l'accesso attendibile, eseguire il comando seguente:
az aks trustedaccess rolebinding create --cluster-name $akscluster --name backuprolebinding --resource-group $aksclusterresourcegroup --roles Microsoft.DataProtection/backupVaults/backup-operator --source-resource-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/BackupVaults/$backupvault
Configurare il backup
Con il Cassetto di Backup e i criteri di backup creati, e il cluster AKS nello stato pronto per il backup, è ora possibile iniziare a eseguire il backup del cluster AKS.
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
az dataprotection backup-instance initialize-backupconfigcomando . Il comando genera un file JSON, che è possibile aggiornare per definire la configurazione di backup per il cluster del servizio Azure Kubernetes in base alle esigenze.az dataprotection backup-instance initialize-backupconfig --datasource-type AzureKubernetesService > aksbackupconfig.json { "excluded_namespaces": null, "excluded_resource_types": null, "include_cluster_scope_resources": true, "included_namespaces": null, "included_resource_types": null, "label_selectors": null, "snapshot_volumes": true }
I seguenti spazi dei nomi sono esclusi dalla configurazione di backup e non impostati per il backup: kube-system, kube-node-lease, kube-public.
Preparare la richiesta pertinente usando il vault appropriato, la politica, il cluster AKS, la configurazione del backup e il gruppo di risorse snapshot mediante il comando
az dataprotection backup-instance initialize.az dataprotection backup-instance initialize --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --datasource-location $region --datasource-type AzureKubernetesService --policy-id /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupPolicies/$backuppolicy --backup-configuration ./aksbackupconfig.json --friendly-name ecommercebackup --snapshot-resource-group-name $snapshotresourcegroup > backupinstance.json
Ora, usa l'output JSON di questo comando per configurare il backup per il cluster di Azure Kubernetes Service.
Assegnare le autorizzazioni necessarie e convalidare
La cassetta di protezione di backup utilizza un'identità gestita per accedere ad altre risorse di Azure. Per configurare il backup del cluster AKS, l'identità gestita del vault di backup richiede un set di autorizzazioni sul cluster AKS e sui gruppi di risorse, dove gli snapshot vengono creati e gestiti. Il cluster AKS richiede anche l'autorizzazione per il gruppo di risorse Snapshot.
Solo l'identità gestita assegnata dal sistema è attualmente supportata per il backup (Backup vault e cluster AKS). Un'identità gestita assegnata dal sistema è limitata a una per risorsa ed è legata al ciclo di vita di tale risorsa. È possibile concedere autorizzazioni all'identità gestita usando il Controllo degli Accessi in base al Ruolo di Azure (Azure RBAC). 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.
Dopo aver preparato la richiesta, è prima necessario verificare se i ruoli necessari vengono assegnati alle risorse indicate in precedenza eseguendo il comando seguente:
az dataprotection backup-instance validate-for-backup --backup-instance ./backupinstance.json --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault
Se la convalida non riesce e mancano determinate autorizzazioni, è possibile assegnarle eseguendo il comando seguente:
az dataprotection backup-instance update-msi-permissions command.
az dataprotection backup-instance update-msi-permissions --datasource-type AzureKubernetesService --operation Backup --permissions-scope ResourceGroup --vault-name $backupvault --resource-group $backupvaultresourcegroup --backup-instance backupinstance.json
Dopo aver assegnato le autorizzazioni, riconvalidare usando la convalida seguente per il comando di backup :
az dataprotection backup-instance create --backup-instance backupinstance.json --resource-group $backupvaultresourcegroup --vault-name $backupvault
Eseguire un backup su richiesta
Per recuperare l'istanza di backup pertinente in cui si vuole attivare un backup, eseguire il az dataprotection backup-instance list-from-resourcegraph -- comando .
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --query aksAssignedIdentity.id
Attivare ora un backup su richiesta per l'istanza di backup eseguendo il comando seguente:
az dataprotection backup-instance adhoc-backup --rule-name "BackupDaily" --ids /subscriptions/$subscriptionId/resourceGroups/$backupvaultresourcegroup/providers/Microsoft.DataProtection/backupVaults/$backupvault/backupInstances/$backupinstanceid
Configurare il backup usando un singolo comando interfaccia della riga di comando di Azure
Backup di Azure offre un'esperienza semplificata per configurare la protezione dei backup per i cluster Servizio Azure Kubernetes (AKS) usando un singolo comando interfaccia della riga di comando di Azure.
Nota
Questa procedura è un approccio alternativo. L'approccio precedente per la creazione di istanze di backup tramite az dataprotection backup-instance initialize-backupconfig il comando continua a funzionare come di consueto.
La configurazione di backup per i cluster del servizio Azure Kubernetes richiede di completare più passaggi manuali, tra cui l'installazione dell'estensione di backup, il provisioning delle risorse di archiviazione, l'insieme di credenziali di backup e la creazione di criteri di backup, la configurazione dell'accesso attendibile tra il cluster del servizio Azure Kubernetes e l'inizializzazione dell'istanza di backup.
Per semplificare questa configurazione di backup, Microsoft offre un approccio alternativo per abilitare la protezione di backup per un cluster del servizio Azure Kubernetes eseguendo il comando seguente:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name>
Quando si esegue questo comando, Backup di Azure esegue automaticamente il flusso di lavoro di configurazione seguente:
- Verificare lo stato del cluster AKS e la compatibilità dei backup
- Creazione o riutilizzo di un gruppo di risorse di backup specifico dell'area
- Installazione dell'estensione Backup nel cluster AKS (se non è già presente)
- Creazione o riutilizzo delle risorse di archiviazione necessarie per il backup
- Creazione o riutilizzo di credenziali per il backup e criteri di backup
- Abilitazione dell'accesso attendibile tra il vault di backup e il cluster AKS
- Inizializzare e creare l'istanza di backup
Specificare i parametri di configurazione del backup facoltativi
Facoltativamente, è possibile specificare un file di configurazione per usare le risorse di backup esistenti o applicare impostazioni personalizzate durante la configurazione del backup.
Nota
Per eseguire questo comando, è necessario trovarsi nella versione 1.9.0 e successive dell'interfaccia della riga di comando. Seguire questa procedura per installare o aggiornare la versione dell'interfaccia della riga di comando:
- Installazione per la prima volta:
az extension add -n dataprotection - Aggiornare se già installato:
az extension add -n dataprotection --upgrade - Verificare la versione (deve essere >= 1.9.0):
az extension show -n dataprotection --query version -o tsv
Eseguire il comando seguente per abilitare il backup usando un file di configurazione:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name> \
--backup-strategy <Strategy>\
--backup-configuration-file @config.json
Il file di configurazione può includere i parametri seguenti:
| Parametro | Descrizione |
|---|---|
backupVaultId |
Usare un vault di backup esistente |
backupPolicyId |
Usare un criterio di backup esistente |
storageAccountResourceId |
Usare un account di archiviazione esistente |
blobContainerName |
Specificare un nome di contenitore personalizzato |
backupResourceGroupId |
Usare un gruppo di risorse esistente |
tags |
Applicare tag alle risorse create |
File di configurazione di esempio:
{
"tags": {
"Owner": "azure@microsoft.com",
"Environment": "Production"
}
}
Strategie di backup supportate
Eseguire il comando seguente per configurare il backup usando una strategia predefinita:
az dataprotection enable-backup trigger \
--datasource-type AzureKubernetesService \
--datasource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ContainerService/managedClusters/<aks-cluster-name> \
--backup-strategy DisasterRecovery\
È possibile scegliere tra le strategie di backup predefinite seguenti:
| Strategia | Descrizione |
|---|---|
Week (impostazione predefinita) |
Conserva i backup nell'archivio operativo per 7 giorni |
Month |
Conserva i backup nell'archivio operativo per 30 giorni |
DisasterRecovery |
Conserva i backup nell'archivio operativo per 7 giorni e nell'archivio Vault per 90 giorni. |
| Personalizzato | Usare l'insieme di credenziali e i criteri di backup esistenti |
Con la strategia personalizzata , sarà necessario usare il file di configurazione indicato in precedenza.
Per ulteriori dettagli, consultare il comando CLI.
Tracciamento dei lavori
Tenere traccia dei processi di backup che eseguono il az dataprotection job comando . È possibile elencare tutti i lavori e recuperare un dettaglio specifico di un lavoro.
È anche possibile usare Resource Graph per tenere traccia di tutti i processi in tutte le sottoscrizioni, i gruppi di risorse e le casseforti di backup eseguendo il comando az dataprotection job list-from-resourcegraph per ottenere i processi pertinenti.
Per il backup su richiesta:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation OnDemandBackup
Per il backup pianificato:
az dataprotection job list-from-resourcegraph --datasource-type AzureKubernetesService --datasource-id /subscriptions/$subscriptionId/resourceGroups/$aksclusterresourcegroup/providers/Microsoft.ContainerService/managedClusters/$akscluster --operation ScheduledBackup
Passaggi successivi
- Ripristinare servizio Azure Kubernetes cluster usando interfaccia della riga di comando di Azure, Azure PowerShell
- Gestisci i backup del cluster servizio Azure Kubernetes
- Informazioni sul backup del cluster servizio Azure Kubernetes