Partilhar via


Solucionar erros de instalação da extensão 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 AKS (Serviço de Kubernetes do Microsoft Azure) ou o 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 definições de configuração, como global.ha=false em vez de global.ha.enabled=false, o status JSON a seguir será retornado. A mensagem de erro é capturada message na 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: reinicie o cluster, registre o provedor de serviços ou exclua e reinstale o Dapr

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

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

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

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

Código: ExtensionOperationFailed

Mensagem: A operação de extensão falhou com o seguinte erro: Falha ao resolver a versão da 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 na região <regionname>.

Código: ExtensionTypeRegistrationGetFailed

Mensagem: O tipo de extensão microsoft.dapr não está registrado na região <regionname>

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

Instale em uma região na qual haja suporte para sua versão do Dapr.

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

Você tenta instalar a extensão do Dapr para AKS ou Arc para Kubernetes, mas recebe uma mensagem de erro que indica que o dapr-system namespace já existe. Essa mensagem de erro é semelhante 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 a versão [dapr-ext]: err [os manifestos renderizados contêm um recurso que já existe. Não é possível continuar com a instalaçã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"]} ocorreu ao fazer a operação: {Instalando a extensão} na configuração

Solução 4: Desinstale o Dapr OSS primeiro

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

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

Você encontra o seguinte erro:

0/4 nós estão disponíveis: 1 nó(s) não foi agendado(s), 3 nó(s) teve(m) conflito de afinidade de nó de volume. preempção: 0/4 nós estão disponíveis: 4 A preempção não é útil para agendamento.

Esse problema pode ocorrer 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 de alta disponibilidade.

  • Limite o serviço de posicionamento a uma zona de disponibilidade específica criando uma classe de armazenamento personalizada e usando-a para o serviço de posicionamento e, em seguida, 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.