Compartilhar via


Tutorial: Usar a configuração dinâmica no Serviço de Kubernetes do Azure

Se você usar o AKS (Serviço de Kubernetes do Azure), este tutorial mostrará como habilitar a configuração dinâmica para suas cargas de trabalho no AKS aproveitando a Configuração de Aplicativos do Azure e seu Provedor de Kubernetes. O tutorial pressupõe que você trabalhe no início rápido e tenha um Provedor de Kubernetes de Configuração de Aplicativos configurado, portanto, antes de continuar, conclua o início rápido Usar a Configuração de Aplicativos do Azure no Serviço de Kubernetes do Azure.

Dica

Confira as opções de cargas de trabalho hospedadas no Kubernetes para acessar a Configuração de Aplicativos do Azure.

Pré-requisitos

Início Rápido: Usar a Configuração de Aplicativos do Azure no Serviço de Kubernetes do Azure .

Dica

O Azure Cloud Shell é um shell interativo gratuito que pode ser usado para executar as instruções de linha de comando contidas neste artigo. Ele tem ferramentas comuns do Azure pré-instaladas, incluindo o SDK do .NET Core. Se você fez logon na assinatura do Azure, inicie o Azure Cloud Shell em shell.azure.com. Saiba mais sobre o Azure Cloud Shell lendo nossa documentação.

Adicionar uma chave sentinela

A chave sentinela é uma chave que você atualiza depois de concluir a alteração de todas as outras chaves. Seu aplicativo monitora a chave sentinela. Quando uma alteração é detectada, o aplicativo atualiza todos os valores de configuração. Essa abordagem ajuda a garantir a consistência da configuração no aplicativo e reduz o número geral de solicitações feitas ao repositório de Configuração de Aplicativos em comparação ao monitoramento de todas as chaves quanto a alterações.

Adicione os seguintes valores-chave ao repositório da Configuração de Aplicativos. Para mais informações sobre como adicionar valores-chave a um repositório usando o portal do Azure ou a CLI, acesse Criar um valor-chave.

Chave Valor
Configurações:Sentinel 1

Recarregar os dados da Configuração de Aplicativo

  1. Abra o arquivo appConfigurationProvider.yaml localizado no diretório Implantação. Em seguida, adicione a seção refresh sob a propriedade configuration. Ele habilita a atualização de configuração monitorando a chave sentinela.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
        configMapData: 
          type: json
          key: mysettings.json
      auth:
        workloadIdentity:
          managedIdentityClientId: <your-managed-identity-client-id>
      configuration:
        refresh:
          enabled: true
          monitoring:
            keyValues:
            - key: Settings:Sentinel
    

    Dica

    Por padrão, o provedor do Kubernetes sonda os valores-chave de monitoramento a cada 30 segundos para detecção de alterações. No entanto, você pode alterar esse comportamento definindo a propriedade interval do refresh. Se você quiser reduzir o número de solicitações para o repositório de Configuração de Aplicativos, poderá ajustá-lo para um valor mais alto.

  2. Abra o arquivo deployment.yaml no diretório Implantação e adicione o seguinte conteúdo à seção spec.containers. Seu aplicativo carrega a configuração de um arquivo montado em volume gerado pelo provedor Kubernetes de Configuração de Aplicativos. Ao definir essa variável de ambiente, seu aplicativo pode usar sondagem para monitorar alterações em arquivos montados.

    env:
    - name: DOTNET_USE_POLLING_FILE_WATCHER
      value: "true"
    
  3. Execute o comando a seguir para implantar a alteração. Substitua o namespace se você estiver usando seu aplicativo AKS existente.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  4. Abra uma janela do navegador e navegue até o endereço IP obtido na etapa anterior. A página da Web tem esta aparência:

    Captura de tela do aplicativo Web com valores antigos.

  5. Atualize os seguintes valores de chave em seu repositório de Configuração de Aplicativos, garantindo atualizar a chave sentinela por último.

    Chave Valor
    Settings:Message Olá da Configuração de Aplicativo do Azure – agora com atualizações dinâmicas!
    Configurações:Sentinel 2
  6. Depois de atualizar o navegador algumas vezes, você verá o conteúdo atualizado depois que o ConfigMap for atualizado em 30 segundos.

    Captura de tela do aplicativo Web com valores atualizados.

Recarregar o ConfigMap e o Segredo

O provedor Kubernetes de Configuração de Aplicativo gera ConfigMaps ou Segredos que podem ser usados como variáveis de ambiente ou arquivos montados em volume. Este tutorial demonstrou como carregar a configuração de um arquivo JSON usando o provedor de configuração .NET JSON, que recarrega automaticamente a configuração sempre que uma alteração é detectada no arquivo montado. Como resultado, seu aplicativo obtém a configuração atualizada automaticamente sempre que o provedor Kubernetes de Configuração de Aplicativo atualiza o ConfigMap.

Se o aplicativo depender de variáveis de ambiente para configuração, ele poderá exigir uma reinicialização para obter quaisquer valores atualizados. No Kubernetes, a reinicialização do aplicativo pode ser orquestrada usando atualizações sem interrupção nos pods ou contêineres correspondentes. Para automatizar as atualizações de configuração, você pode aproveitar ferramentas de terceiros, como stakater/Reloader, que podem disparar automaticamente atualizações sem interrupção em quaisquer alterações feitas em ConfigMaps ou Segredos.

Próximas etapas

Para saber mais sobre o Provedor de Kubernetes da Configuração de Aplicativos do Azure, confira Referência do Provedor de Kubernetes da Configuração de Aplicativos do Azure.