Partilhar via


Configure a extensão Dapr para seu serviço Kubernetes do Azure (AKS) e projeto Kubernetes habilitado para Arc

Depois de concluir os pré-requisitos para instalar a extensão Dapr, você pode configurar a extensão Dapr para funcionar melhor para você e seu projeto usando várias opções de configuração, como:

  • Certificados rotativos que expiram
  • Provisionamento de Dapr com alta disponibilidade (HA) habilitado
  • Limitando quais dos seus nós usam a extensão Dapr
  • Definindo atualizações automáticas de definição de recursos personalizados (CRD)
  • Configurando o namespace da versão Dapr

A extensão permite definir opções de configuração do Dapr usando o --configuration-settings parâmetro na CLI do Azure ou configurationSettings a propriedade em um modelo Bicep.

Gerenciar certificados mTLS

A extensão Dapr suporta criptografia em trânsito da comunicação entre instâncias Dapr usando o plano de controle de serviço Dapr Sentry, que é uma autoridade de certificação (CA) central. Com o serviço Sentinela, você pode criptografar a comunicação usando certificados x.509 autoassinados ou fornecidos pelo usuário. Saiba mais sobre como configurar certificados mTLS na documentação de código aberto do Dapr.

Você pode trazer seus próprios certificados ou permitir que o Dapr crie e persista automaticamente certificados raiz e emissores autoassinados.

Importante

Se você não configurar explicitamente os certificados, o Dapr assume como padrão a geração de certificados autoassinados, que geralmente são válidos por 1 ano. Atualmente, o uso de certificados autoassinados gerados pelo Dapr não é recomendado. A prática recomendada é gerar certificados personalizados e atualizá-los manualmente.

Gerenciar certificados autoassinados gerados pelo Dadr

Se você não forneceu nenhum certificado personalizado, o Dapr cria e persiste automaticamente certificados autoassinados, válidos por 1 ano. A extensão Dapr instala o dapr-trust-bundle segredo, que contém informações de certificado sob o namespace padrão dapr-system .

Verificar a expiração dos certificados autoassinados gerados pelo Dapr atuais

Você pode verificar quando o certificado raiz Dapr do cluster Kubernetes expira usando a CLI do Dapr.

dapr mtls expiry

Resultados esperados:

Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC

Você também pode encontrar a data de validade do seu certificado atual nos dados secretos do Kubernetes dapr-trust-bundle .

kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates

Resultados esperados:

notBefore=Dec  6 17:59:20 2024 GMT
notAfter=Dec  6 18:14:20 2025 GMT

Gerar um novo certificado autoassinado gerado pelo Dpr

  • Através da CLI Dapr (recomendado)
    Consulte a atualização do certificado de raiz e emissor do Dpr usando o guia da CLI .
  • Via kubectl comandos Consulte o guia Atualizando certificados raiz ou emissor do Dapr usando o Kubectl .

Gerencie seus próprios certificados x.509 fornecidos pelo usuário

Você também pode trazer seus próprios certificados personalizados.

Provisionar Dapr com alta disponibilidade (HA) habilitada

Provisione o Dapr com alta disponibilidade (HA) habilitado definindo o global.ha.enabled parâmetro como true.

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"

Nota

Se as definições de configuração forem confidenciais e precisarem ser protegidas (por exemplo, informações relacionadas ao certificado), passe o --configuration-protected-settings parâmetro e o valor será protegido contra leitura.

Se nenhuma definição de configuração for aprovada, o padrão de configuração do Dapr será:

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

Para obter uma lista de opções disponíveis, consulte Configuração do Dapr.

Limitar a extensão a determinados nós

Em algumas configurações, você pode querer executar o Dapr apenas em determinados nós. Você pode limitar a extensão passando um nodeSelector na configuração da extensão. Se o desejado nodeSelector contiver ., você deve escapar deles do shell e da extensão. Por exemplo, a configuração a seguir instala o Dapr somente em nós com topology.kubernetes.io/zone: "us-east-1c":

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/zone=us-east-1c"

Para gerenciar o sistema operacional e a global.daprControlPlaneOs arquitetura, use as versões suportadas do e global.daprControlPlaneArch configuração:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.daprControlPlaneOs=linux” \
--configuration-settings "global.daprControlPlaneArch=amd64”

Instale o Dapr em várias zonas de disponibilidade enquanto estiver no modo HA

Por padrão, o serviço de posicionamento usa uma classe de armazenamento do tipo standard_LRS. É recomendável criar uma classe de armazenamento redundante de zona durante a instalação do Dapr no modo HA em várias zonas de disponibilidade. Por exemplo, para criar uma zrs classe de armazenamento de tipo, adicione o storageaccounttype parâmetro:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: custom-zone-redundant-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
  storageaccounttype: Premium_ZRS

Ao instalar o Dapr, use a classe de armazenamento usada no arquivo YAML:

az k8s-extension create --cluster-type managedClusters  
--cluster-name XXX  
--resource-group XXX  
--name XXX  
--extension-type Microsoft.Dapr  
--auto-upgrade-minor-version XXX  
--version XXX  
--configuration-settings "dapr_placement.volumeclaims.storageClassName=custom-zone-redundant-storage"

Configurar o namespace da versão Dapr

Você pode configurar o namespace de versão.

A extensão Dapr é instalada no dapr-system namespace por padrão. Para substituí-lo, use --release-namespace. Para redefinir o namespace, inclua o cluster --scope.

az k8s-extension create \
--cluster-type managedClusters \
--cluster-name dapr-aks \
--resource-group dapr-rg \
--name my-dapr-ext \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom

Saiba como configurar o namespace de versão do Dapr ao migrar do código aberto do Dapr para a extensão do Dapr.

Mostrar definições de configuração atuais

Use o az k8s-extension show comando para mostrar as definições de configuração atuais do Dapr:

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr

Atualizar definições de configuração

Importante

Algumas opções de configuração não podem ser modificadas após a criação. Os ajustes nessas opções exigem a exclusão e a recriação da extensão, aplicável às seguintes configurações:

  • global.ha.*
  • dapr_placement.*

A HA está habilitada por padrão. Desativá-lo requer exclusão e recriação da extensão.

Para atualizar as definições de configuração do Dapr, recrie a extensão com o estado desejado. Por exemplo, digamos que você criou e instalou anteriormente a extensão usando a seguinte configuração:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \  
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" 

Para atualizar o dapr_operator.replicaCount de dois para três, use o seguinte comando:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

Definir o proxy de saída para a extensão Dapr para o Azure Arc local

Se você quiser usar um proxy de saída com a extensão Dapr para AKS, você pode fazê-lo ao:

  1. Definindo as variáveis de ambiente de proxy usando as dapr.io/env anotações:
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. Instalando o certificado de proxy no sidecar.

Atualizando a versão de instalação do Dapr

Se você estiver em uma versão específica do Dapr e não tiver --auto-upgrade-minor-version disponível, poderá usar o seguinte comando para atualizar ou fazer downgrade do Dapr:

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--version 1.12.0 # Version to upgrade or downgrade to

O comando anterior atualiza apenas o plano de controle Dapr. Para atualizar os sidecars do Dapr, reinicie as implantações do aplicativo:

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Usando imagens baseadas em Linux do Azure

A partir da versão 1.8.0 do Dapr, você pode usar imagens do Azure Linux com a extensão Dapr. Para usá-los, defina o global.tag sinalizador:

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner

Desativar atualizações automáticas de CRD

A partir da versão 1.9.2 do Dapr, os CRDs são atualizados automaticamente quando a extensão é atualizada. Para desativar essa configuração, você pode definir hooks.applyCrds como false.

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"

Nota

Os CRDs só são aplicados em caso de upgrades e são ignorados durante downgrades.

Atender aos requisitos de rede

A extensão Dapr requer as seguintes URLs de saída para https://:443 funcionar no AKS e no Arc for Kubernetes:

  1. https://mcr.microsoft.com/daprio URL para extrair artefatos Dapr.
  2. As URLs de saída necessárias para AKS ou Arc para Kubernetes.

Passos Seguintes