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:
Registre o provedor de serviços KubernetesConfiguration.
Force a exclusão e reinstale a extensão Dapr.
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.
Observação
Saiba mais sobre como a Microsoft lida com problemas levantados para a extensão 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.