Risolvere i problemi di backup e ripristino del servizio Azure Kubernetes
Questo articolo illustra i passaggi per la risoluzione dei problemi che consentono di risolvere gli errori di backup, ripristino e gestione del servizio Azure Kubernetes.
Risoluzione degli errori di installazione dell'estensione di backup del servizio Azure Kubernetes
Scenario 1
Messaggio di errore:
{Helm installation from path [] for release [azure-aks-backup] failed with the following error: err [release azure-aks-backup failed, and has been uninstalled due to atomic being set: failed post-install: timed out waiting for the condition]} occurred while doing the operation: {Installing the extension} on the config"`
Causa: l'estensione viene installata correttamente, ma i pod non vengono generati perché il calcolo e la memoria necessari non sono disponibili per i pod.
Soluzione: per risolvere il problema, aumentare il numero di nodi nel cluster, consentendo la disponibilità di risorse di calcolo e memoria sufficienti per la generazione dei pod. Per ridimensionare il pool di nodi nel portale di Azure, seguire questa procedura:
- Nel portale di Azure aprire il cluster del servizio Azure Kubernetes.
- Passare a pool di nodi in Impostazioni.
- Selezionare Ridimensiona pool di nodie quindi aggiornare i valori minimi e massimi nell'intervallo del numero di nodi.
- Selezionare Applica.
Scenario 2
Messaggio di errore:
BackupStorageLocation "default" is unavailable: rpc error: code = Unknown desc = azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request to https://management.azure.com/subscriptions/e30af180-aa96-4d81-981a-b67570b0d615/resourceGroups/AzureBackupRG_westeurope_1/providers/Microsoft.Storage/storageAccounts/devhayyabackup/listKeys?%24expand=kerb&api-version=2019-06-01: StatusCode=404 -- Original Error: adal: Refresh request failed. Status Code = '404'. Response body: no azure identity found for request clientID 4e95##### REDACTED #####0777`
Endpoint http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&client_id=4e95dcc5-a769-4745-b2d9-
Causa: quando si abilita l'identità gestita da pod nel cluster del servizio Azure Kubernetes, viene aggiunta una AzurePodIdentityException denominata aks-addon-exception allo spazio dei nomi kube-system. Un'eccezione AzurePodIdentityException consente ai pod con determinate etichette di accedere all'endpoint del Servizio metadati dell'istanza di Azure e non essere intercettati dal server di identità gestita del nodo.
I pod di estensione non sono esenti e richiedono che l'identità del pod Microsoft Entra sia abilitata manualmente.
Risoluzione: creare eccezione di identità pod nel cluster del servizio Azure Kubernetes, che funziona solo per lo spazio dei nomi dataprotection-microsoft e per non kube-system). Altre informazioni.
Esegui questo comando:
az aks pod-identity exception add --resource-group shracrg --cluster-name shractestcluster --namespace dataprotection-microsoft --pod-labels app.kubernetes.io/name=dataprotection-microsoft-kubernetes
Per verificare azurepodidentityexceptions nel cluster, eseguire il comando seguente:
kubectl get Azurepodidentityexceptions --all-namespaces
Per assegnare il ruolo collaboratore ai dati del BLOB di archiviazione all'identità dell'estensione, eseguire il comando seguente:
az role assignment create --assignee-object-id $(az k8s-extension show --name azure-aks-backup --cluster-name aksclustername --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/storageaccountname
Scenario 3
Messaggio di errore:
{"Message":"Error in the getting the Configurations: error {Post \https://centralus.dp.kubernetesconfiguration.azure.com/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /provider/managedclusters/clusters/ aksclustername /configurations/getPendingConfigs?api-version=2021-11-01\: dial tcp: lookup centralus.dp.kubernetesconfiguration.azure.com on 10.63.136.10:53: no such host}","LogType":"ConfigAgentTrace","LogLevel":"Error","Environment":"prod","Role":"ClusterConfigAgent","Location":"centralus","ArmId":"/subscriptions/ subscriptionid /resourceGroups/ aksclusterresourcegroup /providers/Microsoft.ContainerService/managedclusters/ aksclustername ","CorrelationId":"","AgentName":"ConfigAgent","AgentVersion":"1.8.14","AgentTimestamp":"2023/01/19 20:24:16"}`
Causa: sono necessarie regole FQDN/di applicazione specifiche per usare le estensioni del cluster nei cluster del servizio Azure Kubernetes. Altre informazioni.
Questo errore viene visualizzato a causa dell'assenza di queste regole FQDN a causa delle informazioni di configurazione del servizio Estensioni cluster non disponibili.
Risoluzione: per risolvere il problema, è necessario creare un override core DNS personalizzato affinché l'endpoint DP possa passare attraverso la rete pubblica.
Ottenere il file YAML personalizzato CoreDNS esistente nel cluster (salvarlo in locale per farvi riferimento in un secondo momento)::
kubectl get configmap coredns-custom -n kube-system -o yaml
Eseguire l'override del mapping per l'endpoint DP centrale all'indirizzo IP pubblico (usare il codice YAML seguente):
apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: aksdp.override: | hosts { 20.40.200.153 centralus.dp.kubernetesconfiguration.azure.com fallthrough }
Eseguire ora il comando seguente per applicare il file YAML di aggiornamento:
kubectl apply -f corednsms.yaml
Per forzare il ricaricamento
coredns
pod, eseguire il comando seguente:kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
Per eseguire
NSlookup
dal pod ExtensionAgent per verificare se coreDNS-custom è in esecuzione, eseguire il comando seguente:kubectl exec -i -t pod/extension-agent-<pod guid that's there in your cluster> -n kube-system -- nslookup centralus.dp.kubernetesconfiguration.azure.com
Per controllare i log del pod ExtensionAgent, eseguire il comando seguente:
kubectl logs pod/extension-agent-<pod guid that’s there in your cluster> -n kube-system --tail=200
Eliminare e reinstallare l'estensione di backup per avviare il backup.
Errori correlati all'installazione dell'estensione di backup
Questi codici di errore vengono visualizzati a causa di problemi nell'estensione di backup installata nel cluster del servizio Azure Kubernetes.
KubernetesBackupListExtensionsError:
Causa: insieme di credenziali di backup come parte di una convalida, controllare se nel cluster è installata l'estensione di backup. Per questo motivo, l'identità del servizio gestito dell'insieme di credenziali richiede un'autorizzazione di lettura per il cluster del servizio Azure Kubernetes che gli consenta di elencare tutte le estensioni installate nel cluster.
Azione consigliata: riassegnare il ruolo Lettore all'identità del servizio gestito dell'insieme di credenziali (rimuovere l'assegnazione di ruolo esistente e assegnare di nuovo il ruolo Lettore), perché il ruolo Lettore assegnato non è presente nell'autorizzazione estensione elenco. Se la riassegnazione non riesce, usare un insieme di credenziali di backup diverso per configurare il backup.
UserErrorKubernetesBackupExtensionNotFoundError
Causa: insieme di credenziali di backup come parte di convalida, controllare se nel cluster è installata l'estensione del backup. Insieme di credenziali esegue un'operazione per elencare le estensioni installate nel cluster. Se l'estensione backup non è presente nell'elenco, viene visualizzato questo errore.
Azione consigliata: usare il client CL o del portale di Azure per eliminare l'estensione e quindi installare nuovamente l'estensione.
UserErrorKubernetesBackupExtensionHasErrors
Causa: l'estensione di backup installata nel cluster presenta alcuni errori interni.
Azione consigliata: usare il client CL o del portale di Azure per eliminare l'estensione e quindi installare nuovamente l'estensione.
UserErrorKubernetesBackupExtensionIdentityNotFound
Causa: il backup del servizio Azure Kubernetes richiede l'installazione di un'estensione di backup all'interno del cluster. L'estensione, assieme all'installazione, include un'identità utente creatadenominata MSI dell'estensione. Questa identità del servizio gestito viene creata nel gruppo di risorse che comprende i pool di nodi per il cluster del servizio Azure Kubernetes. All'identità del servizio gestito vengono assegnati i ruoli necessari per accedere al percorso di archiviazione di backup. Il codice di errore suggerisce che l'identità dell'estensione è mancante.
Azione consigliata: usare il client CLI o il client del portale di Azure per eliminare l'estensione e quindi installare nuovamente l'estensione. Viene creata una nuova identità insieme all'estensione.
KubernetesBackupCustomResourcesTrackingTimeOutError
Causa: Backup di Azure per il servizio Azure Kubernetes richiede l'installazione di un'estensione di backup nel cluster. Per eseguire le operazioni di backup e ripristino, le risorse personalizzate vengono create risorse personalizzate nel cluster. I pod di estensione che eseguono operazioni correlate al backup tramite queste richieste pull. Questo errore si verifica quando l'estensione non è in grado di aggiornare lo stato di queste richieste pull.
Azione consigliata: è necessario verificare l'integrità dell'estensione eseguendo il comando kubectl get pods -n dataprotection.microsoft
. Se i pod non sono in esecuzione, aumentare il numero di nodi nel cluster 1 o aumentare i limiti di calcolo. Attendere quindi alcuni minuti ed eseguire di nuovo il comando, che dovrebbe modificare lo stato dei pod in modo che siano in esecuzione. Se il problema persiste, eliminare e reinstallare l'estensione.
BackupPluginPodRestartedDuringBackupError
Causa: il pod dell'estensione di backup (dataprotection-microsoft-kubernetes-agent) nel cluster del servizio Azure Kubernetes riscontra instabilità a causa di risorse CPU/memoria insufficienti nel nodo corrente, causando l'interruzione degli eventi imprevisti di OOM (memoria insufficiente). Ciò potrebbe essere dovuto a un calcolo inferiore richiesto dal pod dell'estensione di backup.
Azione consigliata: per risolvere questo problema, è consigliabile aumentare i valori di calcolo allocati a questo pod. In questo modo, verrà eseguito automaticamente il provisioning in un nodo diverso all'interno del cluster del servizio Azure Kubernetes con ampie risorse di calcolo disponibili.
Il valore corrente di calcolo per questo pod è:
resources.requests.cpu è 500m resources.requests.memory è 128Mi modificare l'allocazione di memoria su 512Mi aggiornando il parametro 'resources.requests.memory'. Se il problema persiste, è consigliabile aumentare il parametro "resources.requests.cpu" a 900m, dopo l'allocazione della memoria. È possibile aumentare i valori per i parametri seguendo questa procedura:
- Passare al pannello del cluster del servizio Azure Kubernetes nel portale di Azure.
- Fare clic su "Estensioni e applicazioni" e selezionare l'estensione "azure-aks-backup".
- Aggiornare le impostazioni di configurazione nel portale aggiungendo la coppia chiave-valore seguente. resources.requests.cpu 900m resources.requests.memory 512Mi
BackupPluginDeleteBackupOperationFailed
Causa: l'estensione di backup deve essere in esecuzione per eliminare i backup.
Azione consigliata: se il cluster è in esecuzione, verificare se l'estensione è in esecuzione in uno stato integro. Controllare se i pod di estensione vengono generati; in caso contrario, aumentare i nodi. In caso di errore, provare a eliminare e reinstallare l'estensione. Se il cluster di cui è stato eseguito il backup viene eliminato, eliminare manualmente gli snapshot e i metadati.
ExtensionTimedOutWaitingForBackupItemSync
Causa: l'estensione di backup attende che gli elementi di backup vengano sincronizzati con l'account di archiviazione.
Azione consigliata: se viene visualizzato questo codice di errore, ripetere l'operazione di backup o reinstallare l'estensione.
Errori basati sul percorso di archiviazione di backup
Questi codici di errore vengono visualizzati a causa di problemi basati sull'estensione di backup installata nel cluster del servizio Azure Kubernetes.
UserErrorDeleteBackupFailedBackupStorageLocationReadOnly
Causa: l'account di archiviazione fornito come input durante l'installazione dell'estensione di backup è in stato fi sola lettura, che non consente di eliminare i dati di backup dal contenitore BLOB.
Azione consigliata: modificare lo stato dell'account di archiviazione da sola lettura a scrittura.
UserErrorDeleteBackupFailedBackupStorageLocationNotFound
Causa: durante l'installazione dell'estensione, è necessario specificare un percorso di archiviazione di backup come input che include un account di archiviazione e un contenitore BLOB. Questo errore viene visualizzato se il percorso viene eliminato o aggiunto in modo non corretto durante l'installazione dell'estensione.
Azione consigliata: eliminare l'estensione backup e quindi reinstallarla con l'account di archiviazione e il contenitore BLOB corretti come input.
UserErrorBackupFailedBackupStorageLocationReadOnly
Causa: l'account di archiviazione fornito come input durante l'installazione dell'estensione di backup è in stato fi sola lettura, che non consente di scrivere dati di backup nel contenitore BLOB.
Azione consigliata: modificare lo stato dell'account di archiviazione da sola lettura a scrittura.
UserErrorNoDefaultBackupStorageLocationFound
Causa: durante l'installazione dell'estensione, è necessario specificare un percorso di archiviazione di backup come input che include un account di archiviazione e un contenitore BLOB. L’errore viene visualizzato se il percorso viene eliminato o immesso in modo non corretto durante l'installazione dell'estensione.
Azione consigliata: eliminare l'estensione backup e quindi reinstallarla con l'account di archiviazione e il contenitore BLOB corretti come input.
UserErrorExtensionMSIMissingPermissionsOnBackupStorageLocation
Causa: l'estensione di backup deve avere il ruolo di collaboratore ai dati del BLOB di archiviazione nel percorso di archiviazione di backup (account di archiviazione). L'identità dell'estensione ottiene questo ruolo assegnato.
Azione consigliata: se manca questo ruolo, usare il portale di Azure o l'interfaccia della riga di comando per riassegnare questa autorizzazione mancante per l'account di archiviazione.
UserErrorBackupStorageLocationNotReady
Causa: durante l'installazione dell'estensione, è necessario specificare un percorso di archiviazione di backup come input che include un account di archiviazione e un contenitore BLOB. L'estensione di backup deve avere il ruolo di collaboratore ai dati del BLOB di archiviazione nel percorso di archiviazione di backup (account di archiviazione). L'identità dell'estensione ottiene questo ruolo assegnato.
Azione consigliata: viene visualizzato l'errore se l'identità dell'estensione non dispone delle autorizzazioni appropriate per accedere all'account di archiviazione. Questo errore viene visualizzato se l'estensione di backup del servizio Azure Kubernetes viene installata per la prima volta durante la configurazione dell'operazione di protezione. Ciò si verifica per il tempo impiegato per la propagazione delle autorizzazioni concesse all'estensione di backup del servizio Azure Kubernetes. Come soluzione alternativa, attendere un'ora e ripetere la configurazione della protezione. In caso contrario, usare il portale di Azure o l'interfaccia della riga di comando per riassegnare questa autorizzazione mancante per l'account di archiviazione.
UserErrorSnapshotResourceGroupHasLocks
Causa: Questo codice di errore viene visualizzato quando è stato applicato un blocco di eliminazione o lettura nel gruppo di risorse snapshot fornito come input per l'estensione di backup.
Azione consigliata: se si configura una nuova istanza di backup, usare un gruppo di risorse senza un blocco di eliminazione o lettura. Se l'istanza di backup è già configurata, rimuovere il blocco dal gruppo di risorse snapshot.
Errori basati su backup con insieme di credenziali
Questi codici di errore possono essere visualizzati durante l'abilitazione del backup del servizio Azure Kubernetes per archiviare i backup in un archivio dati standard dell'insieme di credenziali.
DppUserErrorVaultTierPolicyNotSupported
Causa: questo codice di errore viene visualizzato quando vengono creati criteri di backup con regola di conservazione definita per l'archivio dati standard dell'insieme di credenziali per un insieme di credenziali di backup in un'area in cui questo archivio dati non è supportato.
Azione consigliata: aggiornare la regola di conservazione con la durata standard dell'insieme di credenziali definita nel portale di Azure:
Selezionare l’icona Modifica accanto alla regola.
Deselezionare la casella di controllo accanto aStandard dell'insieme di credenziali e quindi selezionare Aggiorna.
Creare criteri di backup per il backup del livello operativo (solo gli snapshot per il cluster del servizio Azure Kubernetes).
Processi di backup e ripristino del servizio Azure Kubernetes completati con avvisi
UserErrorPVSnapshotDisallowedByPolicy
Codice errore: UserErrorPVSnapshotDisallowedByPolicy
Causa: un criterio di Azure viene assegnato tramite una sottoscrizione che impedisce al driver CSI di acquisire lo snapshot del volume.
Azione consigliata: rimuovere i criteri di Azure che applicano l'operazione di snapshot del disco e quindi eseguire un backup su richiesta.
UserErrorPVSnapshotLimitReached
Codice errore: UserErrorPVSnapshotLimitReached
Causa: esiste un numero limitato di snapshot per un volume persistente che può esistere in un momento specifico. Per i volumi persistenti basati su disco di Azure, il limite è di 500 snapshot. Questo errore viene visualizzato quando gli snapshot per volumi persistenti specifici non vengono acquisiti a causa dell'esistenza di snapshot superiori ai limiti supportati.
Azione consigliata: aggiornare i criteri di backup per ridurre la durata di conservazione e attendere che Backup Vault elimini i punti di ripristino meno recenti.
CSISnapshottingTimedOut
Codice errore: CSISnapshottingTimedOut
Causa: lo snapshot non è riuscito perché il driver CSI sta recuperando il timeout per recuperare l'handle di snapshot.
Azione consigliata: esaminare i log e ripetere l'operazione per ottenere snapshot riusciti eseguendo un backup su richiesta o attendere il backup pianificato successivo.
UserErrorHookExecutionFailed
Codice errore: UserErrorHookExecutionFailed
Causa: quando gli hook applicati per l'esecuzione insieme ai backup e ai ripristini hanno rilevato un errore e non vengono applicati correttamente.
Azione consigliata: esaminare i log, aggiornare gli hook e quindi ripetere l'operazione di backup/ripristino.
UserErrorNamespaceNotFound
Codice errore: UserErrorNamespaceNotFound
Causa: gli spazi dei nomi forniti in Configurazione di backup non sono presenti durante l'esecuzione dei backup. Lo spazio dei nomi è stato specificato in modo errato o è stato eliminato.
Azione consigliata: verificare se gli spazi dei nomi di cui eseguire il backup sono specificati correttamente.
UserErrorPVCHasNoVolume
Codice errore: UserErrorPVCHasNoVolume
Causa: l'attestazione di volume persistente (PVC) nel contesto non ha un volume persistente collegato. Quindi, il PVC non verrà sottoposto a backup.
Azione consigliata: collegare un volume al PVC, se necessario eseguire il backup.
UserErrorPVCNotBoundToVolume
Codice errore: UserErrorPVCNotBoundToVolume
Causa: il PVC nel contesto è in sospeso e non ha un volume persistente collegato. Quindi, il PVC non verrà sottoposto a backup.
Azione consigliata: collegare un volume al PVC, se necessario eseguire il backup.
UserErrorPVNotFound
Codice errore: UserErrorPVNotFound
Causa: manca il supporto di archiviazione sottostante per il volume persistente.
Azione consigliata: controllare e collegare un nuovo volume permanente con supporto di archiviazione effettivo collegato.
UserErrorStorageClassMissingForPVC
Codice errore: UserErrorStorageClassMissingForPVC
Causa: il backup del servizio Azure Kubernetes controlla la classe di archiviazione usata e ignora l'acquisizione di snapshot dal volume persistente a causa dell'indisponibilità della classe.
Azione consigliata: aggiornare le specifiche di PVC con la classe di archiviazione usata.
UserErrorSourceandTargetClusterCRDVersionMismatch
Codice errore: UserErrorSourceandTargetClusterCRDVersionMismatch
Causa: il cluster del servizio Azure Kubernetes di origine e il cluster del servizio Azure Kubernetes di destinazione durante il ripristino hanno versioni diverse di FlowSchema e CR PriorityLevelConfigurations. Alcune risorse Kubernetes non vengono ripristinate a causa della mancata corrispondenza nelle versioni del cluster.
Azione consigliata: usare la stessa versione del cluster per il cluster di destinazione come cluster di origine o applicare manualmente le richieste pull.
LinkedAuthorizationFailed
Codice errore: LinkedAuthorizationFailed
Causa: per eseguire un'operazione di ripristino, l'utente deve disporre di un'autorizzazione di lettura sul cluster del servizio Azure Kubernetes di cui è stato eseguito il backup.
Azione consigliata: Assegnare il ruolo lettore nel cluster del servizio Azure Kubernetes di origine e quindi procedere con l'operazione di ripristino.