Compartilhar 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.

Saiba mais sobre o nível de suporte fornecido para a extensão do Dapr.

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, crie uma solicitação de suporte para a Microsoft investigar e resolver.

Se você estiver enfrentando riscos de segurança de runtime do Dapr e regressões ao usar a extensão, abra um problema com o projeto de software livre do Dapr.

Você também pode iniciar uma discussão no Discord do projeto Dapr:

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.