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

Depois de criar 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:

  • Limitando quais dos seus nós usam a extensão Dapr
  • Definindo atualizações automáticas de 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.

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. 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 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, 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 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 para AKS e Arc para Kubernetes requer as seguintes URLs de saída para https://:443 funcionar:

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

Passos Seguintes

Depois de provisionar com êxito o Dapr em seu cluster AKS, tente implantar um aplicativo de exemplo.