Risolvere gli errori di installazione dell'estensione Dapr

Questo articolo illustra alcuni messaggi di errore comuni che è possibile ricevere quando si installa o si aggiorna l'estensione Runtime applicazione distribuita (Dapr) per Microsoft servizio Azure Kubernetes (AKS) o Arc per Kubernetes.

Scenario 1: L'installazione non riesce ma non visualizza un messaggio di errore

Se l'estensione genera un messaggio di errore durante la creazione o l'aggiornamento, è possibile controllare dove la creazione non è riuscita eseguendo il comando az k8s-extension list :

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

Se nelle impostazioni di global.ha.enabled=falseconfigurazione viene usata una chiave errata, ad global.ha=false esempio anziché , viene restituito lo stato JSON seguente. Il messaggio di errore viene acquisito nella message proprietà .

"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
  }
],

Ecco un altro esempio di messaggio di errore 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
  }
]

Soluzione 1: riavviare il cluster, registrare il provider di servizi o eliminare e reinstallare Dapr

Per risolvere questo problema, provare i metodi seguenti:

Scenario 2: la versione dapr di destinazione non esiste

Quando si tenta di installare l'estensione Dapr per una versione specifica, viene visualizzato un messaggio di errore che indica che la versione dapr non esiste:

(ExtensionOperationFailed) L'operazione di estensione non è riuscita con l'errore seguente: Impossibile risolvere la versione dell'estensione dai valori specificati.

Codice: ExtensionOperationFailed

Messaggio: l'operazione di estensione non è riuscita con l'errore seguente: Impossibile risolvere la versione dell'estensione dai valori specificati.

Soluzione 2: eseguire di nuovo l'installazione per una versione dapr supportata

Riprovare a installare l'estensione. Assicurarsi di usare una versione supportata di Dapr.

Scenario 3: la versione dapr di destinazione esiste ma non nell'area specificata

Poiché alcune versioni di Dapr non sono disponibili in tutte le aree, è possibile che venga visualizzato il messaggio di errore seguente:

(ExtensionTypeRegistrationGetFailed) Il tipo di estensione microsoft.dapr non è registrato in regionname<>.

Codice: ExtensionTypeRegistrationGetFailed

Messaggio: Il tipo di estensione microsoft.dapr non è registrato in region <regionname>

Soluzione 3: Installare in un'area diversa

Installare in un'area in cui è supportata la versione dapr.

Scenario 4: Dapr è già installato

Si tenta di installare l'estensione Dapr per il servizio Azure Kubernetes o Arc per Kubernetes, ma viene visualizzato un messaggio di errore che indica che lo spazio dei dapr-system nomi esiste già. Questo messaggio di errore è simile al testo seguente:

(ExtensionOperationFailed) L'operazione di estensione non è riuscita con l'errore seguente: Errore: {failed to install chart from path [] for release [dapr-ext]: err [rendered manifests contain a resource that already exists. Impossibile continuare con l'installazione: ServiceAccount "dapr-operator" nello spazio dei nomi "dapr-system" esiste e non può essere importato nella versione corrente: metadati di proprietà non validi; Errore di convalida dell'annotazione: la chiave "meta.helm.sh/release-name" deve essere uguale a "dapr-ext": il valore corrente è "dapr"]} durante l'operazione : {Installazione dell'estensione} nella configurazione

Soluzione 4: Disinstallare prima il sistema operativo Dapr

Disinstallare il sistema operativo Dapr prima di installare l'estensione Dapr. Per altre informazioni, vedere Eseguire la migrazione da Dapr OSS all'estensione dapr per il servizio Azure Kubernetes.

Scenario 5: il pod del server di posizionamento non è valido

Si verifica l'errore seguente:

Sono disponibili 0/4 nodi: 1 nodo non è pianificabile, 3 nodi presentano un conflitto di affinità del nodo del volume. preemption: sono disponibili 0/4 nodi: 4 Preemption non è utile per la pianificazione.

Questo problema può verificarsi quando il pod del server di posizionamento tenta di usare il volume permanente creato in una zona diversa dal pod del server di posizionamento stesso.

Soluzione 5: installare Dapr in più zone di disponibilità o limitare il servizio di posizionamento a una determinata zona di disponibilità

Per risolvere il problema, utilizzare uno dei seguenti metodi:

  • Seguire l'approccio consigliato in Installare Dapr in più zone di disponibilità in modalità disponibilità elevata.

  • Limitare il servizio di posizionamento a una determinata zona di disponibilità creando una classe di archiviazione personalizzata e usandola per il servizio di posizionamento e quindi eseguendo il comando seguente:

    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"
    

    Ecco un esempio di creazione di una classe di archiviazione personalizzata:

    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
    

Passaggi successivi

Se si verificano ancora problemi di installazione, esplorare la guida alla risoluzione dei problemi del servizio Azure Kubernetes e la guida alla risoluzione dei problemi del sistema operativo dapr.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.