Configurar a extensão do Dapr para seu projeto do AKS (Serviço de Kubernetes do Azure) e do Kubernetes habilitado para Arc

Depois de completar os pré-requisitos para instalação da 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:

  • Rotação de certificados expirando
  • Provisionamento do Dapr com alta disponibilidade (HA) habilitada
  • Limite dos nós que usam a extensão do Dapr
  • Configurando atualizações automáticas de definição de recursos customizados (CRD)
  • Configuração do namespace da versão do Dapr

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

Girar certificados personalizados expirados

Você pode atualizar certificados expirados e reiniciar os serviços do sistema.

Importante

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

Gerar certificados personalizados

Crie seu próprio certificado personalizado, por exemplo, um certificado do Azure Key Vault.

Atualizar seu certificado personalizado manualmente

Siga as instruções fornecidas na documentação de software livre do Dapr para atualizar seus certificados personalizados manualmente usando Helm e kubectl.

Provisionar o Dapr com alta disponibilidade (HA) habilitada

Provisionar o Dapr com alta disponibilidade (HA) habilitada definindo o parâmetro global.ha.enabled 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"

Observação

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

Se nenhuma configuração for passada, a configuração do Dapr usa como padrão:

  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 das opções disponíveis, consulte configuração do Dapr.

Limite a extensão a determinados nós

Em algumas configurações, você só pode executar Dapr em determinados nós. Você pode limitar a extensão passando uma nodeSelector na configuração de extensão. Se o nodeSelector desejado contiver ., você deverá usar barra invertida (\) no shell e na extensão. Por exemplo, a configuração a seguir instalará o Dapr somente nos 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 arquitetura, use as versões com suporte das configurações global.daprControlPlaneOs e global.daprControlPlaneArch:

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 de alta disponibilidade

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

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 do Dapr

Você pode configurar o namespace da versão.

A extensão do Dapr é instalada no namespace dapr-system por padrão. Para substituí-la, 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 da versão Dapr ao migrar do código aberto Dapr para a extensão Dapr.

Mostrar definições de configuração atuais

Use o comando az k8s-extension show 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 alta disponibilidade está habilitada por padrão. A desabilitação exige a exclusão e a recriação da extensão.

Para atualizar as definições de configuração do Dapr, basta recriar 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 de dapr_operator.replicaCount 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, poderá fazê-lo ao:

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

Atualizando sua 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 do Dapr. Para atualizar os sidecars do Dapr, reinicie suas implantações de aplicativo:

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

Usando imagens baseadas em Linux do Azure

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

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

Desabilitar atualizações automáticas de CRD

A partir do Dapr versão 1.9.2, os CRDs são atualizados automaticamente quando a extensão é atualizada. Para desabilitar 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"

Observação

Os CRDs são aplicados somente em caso de atualizações e são ignorados durante a realização de downgrades.

Atender aos requisitos de rede

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

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

Próximas etapas