Tutorial: Usar a configuração dinâmica no Serviço Kubernetes do Azure
Se você usa o Serviço Kubernetes do Azure (AKS), este tutorial mostra como habilitar a configuração dinâmica para suas cargas de trabalho no AKS aproveitando a Configuração de Aplicativo do Azure e seu Provedor Kubernetes. O tutorial pressupõe que você trabalhe com o início rápido e tenha um Provedor Kubernetes de Configuração de Aplicativo configurado, portanto, antes de continuar, certifique-se de concluir o início rápido Usar Configuração de Aplicativo do Azure no Serviço Kubernetes do Azure.
Gorjeta
Consulte as opções de cargas de trabalho hospedadas no Kubernetes para acessar a Configuração do Aplicativo do Azure.
Pré-requisitos
Concluir o início rápido: use a Configuração do Aplicativo do Azure no Serviço Kubernetes do Azure.
Gorjeta
O Azure Cloud Shell é um shell interativo e gratuito que você pode usar para executar as instruções de linha de comando neste artigo. Ele tem ferramentas comuns do Azure pré-instaladas, incluindo o SDK do .NET Core. Se tiver sessão iniciada na sua subscrição do Azure, inicie o Azure Cloud Shell a partir do shell.azure.com. Você pode saber mais sobre o Azure Cloud Shell lendo nossa documentação.
Adicionar uma chave sentinela
Uma 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 é detetada, seu aplicativo atualiza todos os valores de configuração. Essa abordagem ajuda a garantir a consistência da configuração em seu aplicativo e reduz o número geral de solicitações feitas à sua loja de configuração de aplicativos, em comparação com o monitoramento de todas as chaves para alterações.
Adicione o seguinte valor-chave à sua loja de Configuração de Aplicações. Para obter mais informações sobre como adicionar valores-chave a uma loja usando o portal do Azure ou a CLI, vá para Criar um valor-chave.
Key | valor |
---|---|
Configurações:Sentinel | 1 |
Recarregar dados da Configuração do Aplicativo
Abra o arquivo appConfigurationProvider.yaml localizado no diretório Deployment . Em seguida, adicione a
refresh
seção sob aconfiguration
propriedade. Ele permite a atualização da 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
Gorjeta
Por padrão, o provedor do Kubernetes sonda os valores-chave de monitoramento a cada 30 segundos para deteção de alterações. No entanto, você pode alterar esse comportamento definindo a
interval
propriedade dorefresh
. Se quiser reduzir o número de solicitações para sua loja de configuração de aplicativos, você pode ajustá-lo para um valor mais alto.Abra o arquivo deployment.yaml no diretório Deployment e adicione o seguinte conteúdo à
spec.containers
seção. Seu aplicativo carrega a configuração de um arquivo montado no volume gerado pelo provedor Kubernetes de Configuração do Aplicativo. 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"
Execute o seguinte comando para implantar a alteração. Substitua o namespace se você estiver usando seu aplicativo AKS existente.
kubectl apply -f ./Deployment -n appconfig-demo
Abra uma janela do navegador e navegue até o endereço IP obtido na etapa anterior. A página Web tem o seguinte aspeto:
Atualize os seguintes valores-chave na sua loja de Configuração de Aplicações, garantindo a atualização da chave sentinela por último.
Key valor Configurações:Mensagem Olá da Configuração de Aplicativo do Azure - agora com atualizações ao vivo! Configurações:Sentinel 2 Depois de atualizar o navegador algumas vezes, você verá o conteúdo atualizado assim que o ConfigMap for atualizado em 30 segundos.
Recarregar ConfigMap e Secret
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 JSON .NET, que recarrega automaticamente a configuração sempre que uma alteração é detetada no arquivo montado. Como resultado, seu aplicativo obtém a configuração atualizada automaticamente sempre que o provedor Kubernetes de Configuração do Aplicativo atualiza o ConfigMap.
Se o seu aplicativo depender de variáveis de ambiente para configuração, ele pode exigir uma reinicialização para pegar quaisquer valores atualizados. No Kubernetes, a reinicialização do aplicativo pode ser orquestrada usando atualizações contínuas 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 acionar automaticamente atualizações contínuas após quaisquer alterações feitas no ConfigMaps ou no Secrets.
Próximos passos
Para saber mais sobre o Provedor Kubernetes de Configuração de Aplicativo do Azure, consulte Referência do Provedor Kubernetes de Configuração de Aplicativo do Azure.