Compartilhar via


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 criar a extensão do Dapr, você poderá configurar a extensão do Dapr da melhor forma para você e seu projeto usando várias opções de configuração, como:

  • Limite dos nós que usam a extensão do Dapr
  • Definição das atualizações automáticas de 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.

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. É recomendável criar uma classe de armazenamento com redundância 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. Inclua o cluster --scope para redefinir o namespace.

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 se você já tiver o Dapr instalado.

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, suponha que já criamos e instalamos 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 para AKS e Arc para Kubernetes requer as URLs de saída a seguir em https://:443 para funcionar:

  1. https://mcr.microsoft.com/daprio URL para efetuar pull de artefatos Dapr.
  2. https://linuxgeneva-microsoft.azurecr.io/ URL para efetuar pull de algumas dependências do Dapr.
  3. As URLs de saída necessárias para AKS ou Arc para Kubernetes.

Próximas etapas

Depois de ter provisionado com êxito o Dapr no cluster do AKS, tente implantar um aplicativo de exemplo.