Compartir a través de


Solución de problemas de copia de seguridad y restauración de Azure Kubernetes Service

En este artículo se proporcionan pasos para la solución de problemas que le ayudarán a resolver los errores de copia de seguridad, restauración y administración de Azure Kubernetes Service (AKS).

Resolución de errores de instalación de la extensión de copia de seguridad de AKS

Escenario 1

Mensaje de error:

{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: la extensión se instala correctamente, pero los pods no se generan porque el proceso y la memoria necesarios no están disponibles para los pods.

Resolución: para resolver el problema, aumente el número de nodos del clúster, lo que permite que haya suficiente proceso y memoria disponibles para que los pods se generen. Para escalar el grupo de nodos en Azure Portal, siga estos pasos:

  1. En Azure Portal, abra el clúster de AKS.
  2. Vaya a Grupos de nodos en Configuración.
  3. Seleccione Escalar grupo de nodos y, a continuación, actualice los valores mínimo y máximo en el intervalo de recuento de nodos.
  4. Seleccione Aplicar.

Escenario 2

Mensaje de error:

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: al habilitar la identidad administrada del pod en el clúster de AKS, se añade una excepción AzurePodIdentityException denominada aks-addon-exception al espacio de nombres kube-system. Una AzurePodIdentityException permite que los pods con determinadas etiquetas accedan al punto de conexión de Azure Instance Metadata Service (IMDS) no están interceptados por el servidor NMI.

Los pods de extensión no están exentos y requieren que la identidad del pod de Microsoft Entra se habilite manualmente.

Resolución: cree una excepción de identidad de pod en el clúster de AKS (que solo funciona para el espacio de nombres dataprotection-microsoft y para no kube-system). Más información.

  1. Ejecute el siguiente 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
    
  2. Para comprobar Azurepodidentityexceptions en el clúster, ejecute el siguiente comando:

    kubectl get Azurepodidentityexceptions --all-namespaces
    
  3. Para asignar el rol Colaborador de datos de Storage Blob a la identidad de extensión, ejecute el siguiente comando:

    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
    

Escenario 3

Mensaje de error:

{"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: se requieren reglas de aplicación/FQDN específicas para usar extensiones de clúster en los clústeres de AKS. Más información.

Este error aparece debido a la ausencia de estas reglas FQDN, por lo que la información de configuración del servicio Extensiones de clúster no estaba disponible.

Resolución: para resolver el problema, debe crear una invalidación de CoreDNS-custom para que el punto de conexión de DP pase a través de la red pública.

  1. Obtenga YAML personalizado de CoreDNS existente en el clúster (guárdelo en el entorno local como referencia más adelante)::

    kubectl get configmap coredns-custom -n kube-system -o yaml
    
  2. Invalide la asignación del punto de conexión de DP centralus a la dirección IP pública (use el código YAML siguiente):

    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
               }
    

    Ahora ejecute el siguiente comando para aplicar el archivo yaml de actualización:

    kubectl apply -f corednsms.yaml
    
  3. Para forzar la recarga de pods coredns, ejecute el siguiente comando:

    kubectl delete pod --namespace kube-system -l k8s-app=kube-dns
    
  4. Para poder NSlookup desde el pod ExtensionAgent comprobar si coreDNS-custom funciona, ejecute el siguiente comando:

    kubectl exec -i -t pod/extension-agent-<pod guid that's there in your cluster> -n kube-system -- nslookup centralus.dp.kubernetesconfiguration.azure.com
    
  5. Para comprobar los registros del pod ExtensionAgent, ejecute el siguiente comando:

    kubectl logs pod/extension-agent-<pod guid that’s there in your cluster> -n kube-system --tail=200
    
  6. Elimine y vuelva a instalar la extensión de copia de seguridad para iniciar la copia de seguridad.

Errores relacionados con la instalación de la extensión de Backup después de la instalación

Estos códigos de error aparecen debido a problemas en la extensión de Backup instalada en el clúster de AKS.

KubernetesBackupListExtensionsError:

Causa: el almacén de Backup como parte de una validación comprueba si el clúster tiene instalada la extensión de Backup. Para ello, la MSI del almacén necesita un permiso de lector en el clúster de AKS, lo que le permite enumerar todas las extensiones instaladas.

Acción recomendada: reasigne el rol Lector a la MSI del almacén (quite la asignación de roles existente y vuelva a asignar el rol Lector), ya que al rol Lector asignado le falta el permiso de extensión de lista. Si se produce un error en la reasignación, use otro almacén de Backup para configurar la copia de seguridad.

UserErrorKubernetesBackupExtensionNotFoundError

Causa: el almacén de Backup como parte de la validación comprueba si el clúster tiene instalada la extensión de Backup. El almacén realiza una operación para enumerar las extensiones instaladas en el clúster. Si la extensión de Backup está ausente en la lista, aparece este error.

Acción recomendada: use el cliente CL o Azure Portal para eliminar la extensión y, a continuación, vuelva a instalarla.

UserErrorKubernetesBackupExtensionHasErrors

Causa: la extensión de Backup instalada en el clúster tiene algunos errores internos.

Acción recomendada: use la CLI o el cliente de Azure Portal para eliminar la extensión y, a continuación, vuelva a instalarla.

UserErrorKubernetesBackupExtensionIdentityNotFound

Causa: la copia de seguridad de AKS requiere una extensión de Backup instalada en el clúster. La extensión junto con su instalación tiene una identidad de usuario creada denominada "MSI de la extensión". Este MSI se crea en el grupo de recursos que comprende los grupos de nodos para el clúster de AKS. Este MSI obtiene los roles necesarios asignados para acceder a la ubicación de almacenamiento de copia de seguridad. El código de error sugiere que falta la identidad de la extensión.

Acción recomendada: use la CLI o el cliente de Azure Portal para eliminar la extensión y, a continuación, vuelva a instalarla. Se crea una nueva identidad junto con la extensión.

KubernetesBackupCustomResourcesTrackingTimeOutError

Causa: Azure Backup para AKS requiere que se instale una extensión de Backup en el clúster. Para realizar las operaciones de copia de seguridad y restauración, los recursos personalizados se crean en el clúster. Los pods de extensión que realizan operaciones relacionadas con la copia de seguridad a través de estas entidades de certificación. Este error se produce cuando la extensión no puede actualizar el estado de estas entidades de certificación.

Acción recomendada: es necesario comprobar el estado de la extensión mediante la ejecución del comando kubectl get pods -n dataprotection.microsoft. Si los pods no están en estado de ejecución, aumente el número de nodos del clúster en 1 o aumente los límites de proceso. A continuación, espere unos minutos y vuelva a ejecutar el comando, que debe cambiar el estado de los pods a en ejecución. Si la incidencia persiste, elimine la extensión y vuelva a instalarla.

BackupPluginPodRestartedDuringBackupError

Causa: el pod de extensión de la copia de seguridad (dataprotection-microsoft-kubernetes-agent) en el clúster de AKS experimenta inestabilidad debido a una falta de recursos de la CPU o la memoria en su nodo actual, lo que provoca incidentes de eliminación por memoria insuficiente (OOM). Esto podría deberse a un proceso menor solicitado por el pod de extensión de la copia de seguridad.

Acción recomendada: para solucionar este problema, se aconseja aumentar los valores de proceso asignados a este pod. De este modo, se aprovisionará automáticamente en un nodo diferente dentro del clúster de AKS con amplios recursos de proceso disponibles.

A continuación, se muestra el valor actual de proceso para este pod:

resources.requests.cpu es de 500 m resources.requests.memory es de 128 Mi; modifique la asignación de memoria a 512 Mi actualizando el parámetro "resources.requests.memory". Si el problema persiste tras la asignación de memoria, se recomienda aumentar el parámetro "resources.requests.cpu" a 900 m. Puede aumentar los valores de los parámetros siguiendo estos pasos:

  1. Diríjase al panel del clúster de AKS en Azure Portal.
  2. Haga clic en "Extensiones y aplicaciones" y seleccione la extensión "azure-aks-backup".
  3. Actualice los ajustes de configuración en el portal agregando el siguiente par clave-valor. resources.requests.cpu 900 m resources.requests.memory 512 Mi

BackupPluginDeleteBackupOperationFailed

Causa: la extensión de Backup debe ejecutarse para eliminar las copias de seguridad.

Acción recomendada: si el clúster se está ejecutando, compruebe si la extensión se está ejecutando en un estado correcto. Compruebe si los pods de extensión se están generando; si no es así, aumente los nodos. Si se produce un error, intente eliminar y reinstalar la extensión. Si se elimina el clúster de copia de seguridad, elimine manualmente las instantáneas y los metadatos.

ExtensionTimedOutWaitingForBackupItemSync

Causa: la extensión de Backup espera a que los elementos de copia de seguridad se sincronicen con la cuenta de almacenamiento.

Acción recomendada: si aparece este código de error, vuelva a intentar la operación de copia de seguridad o vuelva a instalar la extensión.

Errores basados en la ubicación de almacenamiento de copia de seguridad

Estos códigos de error aparecen debido a problemas basados en la extensión de Backup instalada en el clúster de AKS.

UserErrorDeleteBackupFailedBackupStorageLocationReadOnly

Causa: la cuenta de almacenamiento proporcionada como entrada durante la instalación de la extensión de Backup está en estado de solo lectura, lo que no permite eliminar los datos de copia de seguridad del contenedor de blobs.

Acción recomendada: cambie el estado de la cuenta de almacenamiento de solo lectura a escritura.

UserErrorDeleteBackupFailedBackupStorageLocationNotFound

Causa: durante la instalación de la extensión, se proporciona una ubicación de almacenamiento de copia de seguridad como entrada que incluye una cuenta de almacenamiento y un contenedor de blobs. Este error aparece si la ubicación se elimina o se agrega incorrectamente durante la instalación de la extensión.

Acción recomendada: elimine la extensión de Backup y vuelva a instalarla con la cuenta de almacenamiento correcta y el contenedor de blobs como entrada.

UserErrorBackupFailedBackupStorageLocationReadOnly

Causa: la cuenta de almacenamiento proporcionada como entrada durante la instalación de la extensión de copia de seguridad está en estado de solo lectura, que no permite escribir datos de copia de seguridad en el contenedor de blobs.

Acción recomendada: cambie el estado de la cuenta de almacenamiento de solo lectura a escritura.

UserErrorNoDefaultBackupStorageLocationFound

Causa: durante la instalación de la extensión, se proporciona una ubicación de almacenamiento de copia de seguridad como entrada, que incluye una cuenta de almacenamiento y un contenedor de blobs. Este error aparece si la ubicación se elimina o se introduce incorrectamente durante la instalación de la extensión.

Acción recomendada: elimine la extensión de Backup y vuelva a instalarla con la cuenta de almacenamiento correcta y el contenedor de blobs como entrada.

UserErrorExtensionMSIMissingPermissionsOnBackupStorageLocation

Causa: la extensión de Backup debe tener el rol Colaborador de datos de Storage Blob en la ubicación de almacenamiento de copia de seguridad (cuenta de almacenamiento). La identidad de extensión obtiene este rol asignado.

Acción recomendada: si falta este rol, use Azure Portal o la CLI para reasignar este permiso que falta en la cuenta de almacenamiento.

UserErrorBackupStorageLocationNotReady

Causa: durante la instalación de la extensión, se proporciona una ubicación de almacenamiento de copia de seguridad como entrada que incluye una cuenta de almacenamiento y un contenedor de blobs. La extensión de Backup debe tener el rol Colaborador datos de Storage Blob en la ubicación de almacenamiento de copia de seguridad (cuenta de almacenamiento). La identidad de extensión obtiene este rol asignado.

Acción recomendada: aparece el error si la identidad de extensión no tiene permisos adecuados para acceder a la cuenta de almacenamiento. Este error aparece si la extensión de copia de seguridad de AKS se instala la primera vez que se configura la operación de protección. Esto sucede durante el tiempo necesario para que los permisos concedidos se propaguen a la extensión de copia de seguridad de AKS. Como solución alternativa, espere una hora y vuelva a intentar la configuración de protección. De lo contrario, use Azure Portal o la CLI para reasignar este permiso que falta en la cuenta de almacenamiento.

UserErrorSnapshotResourceGroupHasLocks

Causa: este código de error aparece cuando se ha aplicado un bloqueo de eliminación o lectura en el grupo de recursos de instantánea proporcionado como entrada para la extensión de copia de seguridad.

Acción recomendada: en caso de que configure una nueva instancia de copia de seguridad, use un grupo de recursos sin un bloqueo de eliminación o lectura. Si la instancia de copia de seguridad ya está configurada, quite el bloqueo del grupo de recursos de instantáneas.

Errores basados en copias de seguridad de almacén

Estos códigos de error pueden aparecer mientras habilita la copia de seguridad de AKS para almacenar copias de seguridad en un almacén de datos estándar del almacén.

DppUserErrorVaultTierPolicyNotSupported

Causa: este código de error aparece cuando se crea una directiva de copia de seguridad con una regla de retención definida para un almacén de datos estándar para un almacén de Backup en una región en la que no se admite este almacén de datos.

Acción recomendada: actualice la regla de retención con la duración estándar del almacén definida en Azure Portal:

  1. Seleccione el icono Editar junto a la regla.

    Captura de pantalla que muestra cómo editar la duración de retención de las copias de seguridad de AKS.

  2. Desactive la casilla situada junto al estándar de almacén y, a continuación, seleccione Actualizar.

    Captura de pantalla que muestra cómo desactivar la casilla del almacén estándar.

  3. Cree una directiva de copia de seguridad para la copia de seguridad de nivel operativo (solo instantáneas para el clúster de AKS).

Trabajos de copia de seguridad y restauración de AKS completados con advertencias

UserErrorPVSnapshotDisallowedByPolicy

Código de error: UserErrorPVSnapshotDisallowedByPolicy

Causa: se asigna una directiva de Azure sobre la suscripción que hace que el controlador de CSI deje de tomar la instantánea del volumen.

Acción recomendada: elimine la directiva de Azure cesando la operación de instantánea de disco, y después realice una copia de seguridad bajo demanda.

UserErrorPVSnapshotLimitReached

Código de error: UserErrorPVSnapshotLimitReached

Causa: hay un número limitado de instantáneas para un volumen persistente que puede existir en un momento dado. En el caso de los volúmenes persistentes basados en discos de Azure, el límite es de 500 instantáneas. Este error aparece cuando no se toman instantáneas para volúmenes persistentes específicos debido a la existencia de instantáneas superiores a los límites admitidos.

Acción recomendada: actualice la directiva de copia de seguridad para reducir la duración de retención y esperar a que el almacén de Backup elimine los puntos de recuperación anteriores.

CSISnapshottingTimedOut

Código de error: CSISnapshottingTimedOut

Causa: se ha producido un error en la instantánea porque el controlador de CSI se agota el tiempo de espera para capturar el identificador de instantánea.

Acción recomendada: revise los registros y vuelva a intentar la operación para obtener instantáneas correctas mediante la ejecución de una copia de seguridad a petición o espere a la siguiente copia de seguridad programada.

UserErrorHookExecutionFailed

Código de error: UserErrorHookExecutionFailed

Causa: cuando los enlaces aplicados para ejecutarse junto con copias de seguridad y restauraciones han encontrado un error y no se aplican correctamente.

Acción recomendada: revise los registros, actualice los enlaces y vuelva a intentar la operación de copia de seguridad o restauración.

UserErrorNamespaceNotFound

Código de error: UserErrorNamespaceNotFound

Causa: faltan espacios de nombres proporcionados en Configuración de copia de seguridad mientras se realizan copias de seguridad. El espacio de nombres se proporcionó de forma incorrecta o se eliminó.

Acción recomendada: compruebe si se proporcionan correctamente los espacios de nombres de los que se va a realizar la copia de seguridad.

UserErrorPVCHasNoVolume

Código de error: UserErrorPVCHasNoVolume

Causa: la notificación de volumen persistente (PVC) en contexto no tiene un volumen persistente asociado. Por lo tanto, no se realizará una copia de seguridad del PVC.

Acción recomendada: conecte un volumen a la PVC, si es necesario realizar una copia de seguridad.

UserErrorPVCNotBoundToVolume

Código de error: UserErrorPVCNotBoundToVolume

Causa: la PVC en contexto está en estado Pendiente y no tiene un volumen persistente asociado a él. Por lo tanto, no se realizará una copia de seguridad del PVC.

Acción recomendada: conecte un volumen a la PVC, si es necesario realizar una copia de seguridad.

UserErrorPVNotFound

Código de error: UserErrorPVNotFound

Causa: falta el medio de almacenamiento subyacente para el volumen persistente.

Acción recomendada: compruebe y adjunte un nuevo volumen persistente con el medio de almacenamiento real adjunto.

UserErrorStorageClassMissingForPVC

Código de error: UserErrorStorageClassMissingForPVC

Causa: la copia de seguridad AKS comprueba la clase de almacenamiento que se está usando y omite que el volumen persistente tome instantáneas debido a la falta de disponibilidad de la clase.

Acción recomendada: actualice las especificaciones de PVC con la clase de almacenamiento usada.

UserErrorSourceandTargetClusterCRDVersionMismatch

Código de error: UserErrorSourceandTargetClusterCRDVersionMismatch

Causa: el clúster de AKS de origen y el clúster de AKS de destino durante la restauración tienen diferentes versiones de FlowSchema y PriorityLevelConfigurations CRs. Algunos recursos de Kubernetes no se restauran debido a la falta de coincidencia en las versiones del clúster.

Acción recomendada: use la misma versión de clúster para el clúster de destino que para el de origen o aplique manualmente los CR.

LinkedAuthorizationFailed

Código de error: LinkedAuthorizationFailed

Causa: Para realizar una operación de restauración, el usuario debe tener un permiso delectura sobre el clúster de AKS de copia de seguridad.

Acción recomendada: asigne el rol Lector en el clúster de AKS de origen y a continuación, continúe con la operación de restauración.

Pasos siguientes