Résoudre les erreurs d’installation de l’extension Dapr

Cet article décrit certains messages d’erreur courants que vous pouvez recevoir lorsque vous installez ou mettez à jour l’extension Distributed Application Runtime (Dapr) pour Microsoft Azure Kubernetes Service (AKS) ou Arc pour Kubernetes.

Scénario 1 : L’installation échoue, mais n’affiche pas de message d’erreur

Si l’extension génère un message d’erreur lorsque vous la créez ou la mettez à jour, vous pouvez inspecter où la création a échoué en exécutant la commande az k8s-extension list :

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

Si une clé incorrecte est utilisée dans les paramètres de configuration, comme global.ha=false au lieu de global.ha.enabled=false, le status JSON suivant est retourné. Le message d’erreur est capturé dans la message propriété .

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

Voici un autre exemple de message d’erreur 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
  }
]

Solution 1 : Redémarrer le cluster, inscrire le fournisseur de services ou supprimer et réinstaller Dapr

Pour résoudre ce problème, essayez les méthodes suivantes :

Scénario 2 : La version de Dapr ciblée n’existe pas

Lorsque vous essayez d’installer l’extension Dapr pour cibler une version spécifique, vous recevez un message d’erreur indiquant que la version de Dapr n’existe pas :

(ExtensionOperationFailed) L’opération d’extension a échoué avec l’erreur suivante : Échec de la résolution de la version de l’extension à partir des valeurs données.

Code : ExtensionOperationFailed

Message : L’opération d’extension a échoué avec l’erreur suivante : Échec de la résolution de la version de l’extension à partir des valeurs données.

Solution 2 : Installer à nouveau pour une version de Dapr prise en charge

Réessayez pour installer l’extension. Veillez à utiliser une version prise en charge de Dapr.

Scénario 3 : La version de Dapr ciblée existe, mais pas dans la région spécifiée

Étant donné que certaines versions de Dapr ne sont pas disponibles dans toutes les régions, vous pouvez recevoir le message d’erreur suivant :

(ExtensionTypeRegistrationGetFailed) Le type d’extension microsoft.dapr n’est pas inscrit dans regionname<>.

Code : ExtensionTypeRegistrationGetFailed

Message : le type d’extension microsoft.dapr n’est pas inscrit dans regionname <>

Solution 3 : Installer dans une autre région

Installez dans une région dans laquelle votre version de Dapr est prise en charge.

Scénario 4 : Dapr est déjà installé

Vous essayez d’installer l’extension Dapr pour AKS ou Arc pour Kubernetes, mais vous recevez un message d’erreur indiquant que l’espace dapr-system de noms existe déjà. Ce message d’erreur ressemble au texte suivant :

(ExtensionOperationFailed) L’opération d’extension a échoué avec l’erreur suivante : Erreur : {échec de l’installation du graphique à partir du chemin d’accès [] pour la version [dapr-ext] : err [les manifestes rendus contiennent une ressource qui existe déjà. Impossible de poursuivre l’installation : ServiceAccount « dapr-operator » dans l’espace de noms « dapr-system » existe et ne peut pas être importé dans la version actuelle : métadonnées de propriété non valides ; Erreur de validation d’annotation : la clé « meta.helm.sh/release-name » doit être égale à « dapr-ext » : la valeur actuelle est « dapr »]} s’est produite lors de l’opération : {Installation de l’extension} sur la configuration

Solution 4 : Désinstaller dapr OSS en premier

Désinstallez le système d’exploitation Dapr avant d’installer l’extension Dapr. Pour plus d’informations, consultez Migrer de Dapr OSS vers l’extension Dapr pour AKS.

Scénario 5 : Le pod du serveur de placement est dans un état incorrect

Vous rencontrez l’erreur suivante :

0/4 nœuds sont disponibles : 1 nœud(s) n’étaient pas planifiés, 3 nœuds avaient un conflit d’affinité de nœud de volume. préemption : 0/4 nœuds sont disponibles : 4 La préemption n’est pas utile pour la planification.

Ce problème peut se produire lorsque le pod du serveur de placement tente d’utiliser le volume persistant créé dans une zone différente du pod du serveur de placement lui-même.

Solution 5 : Installer Dapr dans plusieurs zones de disponibilité ou limiter le service de placement à une zone de disponibilité particulière

Pour résoudre ce problème, appliquez l’une des méthodes suivantes :

  • Suivez l’approche recommandée dans Installer Dapr dans plusieurs zones de disponibilité en mode haute disponibilité.

  • Limitez le service de placement à une zone de disponibilité particulière en créant une classe de stockage personnalisée et en l’utilisant pour le service de placement, puis exécutez la commande suivante :

    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"
    

    Voici un exemple de création d’une classe de stockage personnalisée :

    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
    

Étapes suivantes

Si vous rencontrez toujours des problèmes d’installation, explorez le guide de résolution des problèmes AKS et le guide de résolution des problèmes de Dapr OSS.

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.