Solución de problemas de errores de instalación de la extensión Dapr

En este artículo se describen algunos mensajes de error comunes que puede recibir al instalar o actualizar la extensión Distributed Application Runtime (Dapr) para Microsoft Azure Kubernetes Service (AKS) o Arc para Kubernetes.

Escenario 1: Se produce un error en la instalación, pero no muestra un mensaje de error

Si la extensión genera un mensaje de error al crearlo o actualizarlo, puede inspeccionar dónde se produjo un error en la creación ejecutando el comando az k8s-extension list :

az k8s-extension list --resource-group <my-resource-group-name> \
    --cluster-name <my-cluster-name> \
    --cluster-type managedClusters

Si se usa una clave incorrecta en los valores de configuración, como global.ha=false en lugar de global.ha.enabled=false, se devuelve el siguiente estado JSON. El mensaje de error se captura en la message propiedad .

"statuses": [
  {
    "code": "InstallationFailed",
    "displayStatus": null,
    "level": null,
    "message": "Error: {failed to install chart from path [] for release [dapr-1]: err [template: dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml:1:17: executing \"dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml\" at <.Values.global.ha.enabled>: can't evaluate field enabled in type interface {}]} occurred while doing the operation : {Installing the extension} on the config",
    "time": null
  }
],

Este es otro ejemplo de un mensaje de error JSON:

"statuses": [
  {
    "code": "InstallationFailed",
    "displayStatus": null,
    "level": null,
    "message": "The extension operation failed with the following error: unable to add the configuration with configId {extension:microsoft-dapr} due to error: {error while adding the CRD configuration: error {failed to get the immutable configMap from the elevated namespace with err: configmaps 'extension-immutable-values' not found }}. (Code: ExtensionOperationFailed)",
    "time": null
  }
]

Solución 1: Reinicie el clúster, registre el proveedor de servicios o elimine y vuelva a instalar Dapr.

Para solucionar este problema, pruebe los métodos siguientes:

Escenario 2: La versión de Dapr dirigida no existe

Al intentar instalar la extensión Dapr para que tenga como destino una versión específica, recibirá un mensaje de error que indica que la versión de Dapr no existe:

(ExtensionOperationFailed) Error en la operación de extensión con el siguiente error: No se pudo resolver la versión de la extensión a partir de los valores especificados.

Código: ExtensionOperationFailed

Mensaje: Se produjo un error en la operación de extensión con el siguiente error: No se pudo resolver la versión de la extensión a partir de los valores especificados.

Solución 2: Instalar de nuevo para una versión compatible de Dapr

Vuelva a intentarlo para instalar la extensión. Asegúrese de usar una versión compatible de Dapr.

Escenario 3: La versión de Dapr de destino existe, pero no en la región especificada

Dado que algunas versiones de Dapr no están disponibles en todas las regiones, es posible que reciba el siguiente mensaje de error:

(ExtensionTypeRegistrationGetFailed) El tipo de extensión microsoft.dapr no está registrado en regionname<>.

Código: ExtensionTypeRegistrationGetFailed

Mensaje: El tipo de extensión microsoft.dapr no está registrado en region <regionname>

Solución 3: Instalar en una región diferente

Instale en una región en la que se admita la versión de Dapr.

Escenario 4: Dapr ya está instalado

Intenta instalar la extensión Dapr para AKS o Arc para Kubernetes, pero recibe un mensaje de error que indica que el dapr-system espacio de nombres ya existe. Este mensaje de error es similar al texto siguiente:

(ExtensionOperationFailed) La operación de extensión produjo el siguiente error: Error: {no se pudo instalar el gráfico desde la ruta de acceso [] para la versión [dapr-ext]: err [los manifiestos representados contienen un recurso que ya existe. No se puede continuar con la instalación: ServiceAccount "dapr-operator" en el espacio de nombres "dapr-system" existe y no se puede importar en la versión actual: metadatos de propiedad no válidos; error de validación de anotación: la clave "meta.helm.sh/release-name" debe ser igual a "dapr-ext": el valor actual es "dapr"]} al realizar la operación : {Instalación de la extensión} en la configuración

Solución 4: Desinstalar Dapr OSS primero

Desinstale el sistema operativo de Dapr antes de instalar la extensión Dapr. Para obtener más información, consulte Migración de Dapr OSS a la extensión Dapr para AKS.

Escenario 5: El pod de servidor de selección de ubicación está en un estado incorrecto

Se produce el siguiente error:

0/4 nodos están disponibles: 1 nodo(s) no se puede seleccionar, 3 nodos tenían conflicto de afinidad de nodo de volumen. adelantamiento: 0/4 nodos están disponibles: 4 Adelantamiento no es útil para la programación.

Este problema puede producirse cuando el pod del servidor de selección de ubicación intenta usar el volumen persistente que se crea en una zona diferente del propio pod del servidor de selección de ubicación.

Solución 5: Instalar Dapr en varias zonas de disponibilidad o limitar el servicio de selección de ubicación a una zona de disponibilidad determinada

Para solucionar este problema, use uno de los métodos siguientes:

  • Siga el enfoque recomendado en Instalar Dapr en varias zonas de disponibilidad mientras está en modo de alta disponibilidad.

  • Limite el servicio de selección de ubicación a una zona de disponibilidad determinada mediante la creación de una clase de almacenamiento personalizada y su uso para el servicio de selección de ubicación y, a continuación, ejecute el siguiente comando:

    az k8s-extension create --cluster-type managedClusters
    --cluster-name <clustername>
    --resource-group <resourcegroup>
    --name <name>
    --extension-type Microsoft.Dapr
    --auto-upgrade-minor-version <minorversion>
    --version <version>
    --configuration-settings "dapr_placement.volumeclaims.storageClassName=zone-restricted"
    

    Este es un ejemplo de creación de una clase de almacenamiento personalizada:

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
     name: zone-restricted
    provisioner: disk.csi.azure.com
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    volumeBindingMode: WaitForFirstConsumer
    allowedTopologies:
    - matchLabelExpressions:
     - key: topology.kubernetes.io/zone
       values:
       - centralus-1
    parameters:
     storageaccounttype: StandardSSD_LRS
    

Pasos siguientes

Si sigue experimentando problemas de instalación, explore la guía de solución de problemas de AKS y la guía de solución de problemas de Dapr OSS.

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.