Solucionar problemas de erros de instalação de extensão do Dapr

Este artigo discute algumas mensagens de erro comuns que você pode receber ao instalar ou atualizar a extensão Dapr (Distributed Application Runtime) para o Microsoft Serviço de Kubernetes do Azure (AKS) ou Arc para Kubernetes.

Cenário 1: A instalação falha, mas não mostra uma mensagem de erro

Se a extensão gerar uma mensagem de erro ao criá-la ou atualizá-la, você poderá inspecionar onde a criação falhou executando o comando az k8s-extension list :

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

Se uma chave errada for usada nas configurações, como global.ha=false em vez de global.ha.enabled=false, a seguinte status JSON será retornada. A mensagem de erro é capturada na message propriedade.

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

Aqui está outro exemplo de uma mensagem de erro 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
  }
]

Solução 1: reiniciar o cluster, registrar o provedor de serviços ou excluir e reinstalar o Dapr

Para corrigir esse problema, experimente os seguintes métodos:

Cenário 2: A versão do Dapr direcionada não existe

Ao tentar instalar a extensão Dapr para direcionar uma versão específica, você recebe uma mensagem de erro que afirma que a versão do Dapr não existe:

(ExtensionOperationFailed) A operação de extensão falhou com o seguinte erro: falha ao resolve a versão de extensão dos valores fornecidos.

Código: ExtensionOperationFailed

Mensagem: a operação de extensão falhou com o seguinte erro: falha ao resolve a versão de extensão dos valores fornecidos.

Solução 2: instalar novamente para uma versão do Dapr com suporte

Tente novamente instalar a extensão. Certifique-se de usar uma versão com suporte do Dapr.

Cenário 3: a versão do Dapr de destino existe, mas não na região especificada

Como algumas versões do Dapr não estão disponíveis em todas as regiões, você pode receber a seguinte mensagem de erro:

(ExtensionTypeRegistrationGetFailed) O tipo de extensão microsoft.dapr não está registrado no nome da> região<.

Código: ExtensionTypeRegistrationGetFailed

Mensagem: o tipo de extensão microsoft.dapr não está registrado no nome da região <>

Solução 3: instalar em uma região diferente

Instale em uma região na qual a versão do Dapr tem suporte.

Cenário 4: o Dapr já está instalado

Você tenta instalar a extensão Dapr para AKS ou Arc para Kubernetes, mas recebe uma mensagem de erro que indica que o dapr-system namespace já existe. Esta mensagem de erro se assemelha ao seguinte texto:

(ExtensionOperationFailed) A operação de extensão falhou com o seguinte erro: Erro: {falha ao instalar o gráfico do caminho [] para lançamento [dapr-ext]: err [manifestos renderizados contêm um recurso que já existe. Não é possível continuar com a instalação: o ServiceAccount "dapr-operator" no namespace "dapr-system" existe e não pode ser importado para a versão atual: metadados de propriedade inválidos; Erro de validação de anotação: a chave "meta.helm.sh/release-name" deve ser igual a "dapr-ext": o valor atual é "dapr"]} ocorrido durante a operação : {Instalando a extensão} na configuração

Solução 4: desinstalar primeiro o OSS do Dapr

Desinstale o OSS do Dapr antes de instalar a extensão Dapr. Para obter mais informações, confira Migrar do OSS do Dapr para a extensão Dapr para AKS.

Cenário 5: O pod do servidor de posicionamento está em um estado ruim

Você encontra o seguinte erro:

0/4 nós estão disponíveis: 1 nós não eram programados, 3 nós tinham conflito de afinidade de nó de volume. preemption: 0/4 nós estão disponíveis: 4 Preemption não é útil para agendamento.

Esse problema pode acontecer quando o pod do servidor de posicionamento tenta usar o volume persistente criado em uma zona diferente do próprio pod do servidor de posicionamento.

Solução 5: instalar o Dapr em várias zonas de disponibilidade ou limitar o serviço de posicionamento a uma zona de disponibilidade específica

Para resolver esse problema, use um dos seguintes métodos:

  • Siga a abordagem recomendada em Instalar o Dapr em várias zonas de disponibilidade enquanto estiver no modo HA.

  • Limite o serviço de posicionamento a uma determinada zona de disponibilidade criando uma classe de armazenamento personalizada e usando-o para o serviço de posicionamento e execute o seguinte 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"
    

    Aqui está um exemplo de criação de uma classe de armazenamento 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
    

Próximas etapas

Se você ainda estiver enfrentando problemas de instalação, explore o guia de solução de problemas do AKS e o guia de solução de problemas do Dapr OSS.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.