Condividi tramite


Esercitazione: Usare la configurazione dinamica in servizio Azure Kubernetes

Se si usa servizio Azure Kubernetes (servizio Azure Kubernetes), questa esercitazione illustra come abilitare la configurazione dinamica per i carichi di lavoro nel servizio Azure Kubernetes sfruttando app Azure Configuration e il relativo provider Kubernetes. L'esercitazione presuppone che l'utente usi la guida introduttiva e abbia configurato un provider Kubernetes Configurazione app, quindi prima di procedere, assicurati di completare la guida introduttiva Usare app Azure Configurazione in servizio Azure Kubernetes.

Suggerimento

Vedere le opzioni per i carichi di lavoro ospitati in Kubernetes per accedere alla configurazione di app Azure.

Prerequisiti

Completare la guida introduttiva: Usare app Azure Configurazione in servizio Azure Kubernetes.

Suggerimento

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire le istruzioni della riga di comando riportate in questo articolo. Include strumenti comuni di Azure preinstallati, tra cui .NET Core SDK. Se è stato eseguito l'accesso alla sottoscrizione di Azure, avviare Azure Cloud Shell da shell.azure.com. Per altre informazioni su Azure Cloud Shell, leggere la documentazione.

Aggiungere una chiave Sentinel

Una chiave sentinel è una chiave che si aggiorna dopo aver completato la modifica di tutte le altre chiavi. L'app monitora la chiave sentinel. Quando viene rilevata una modifica, l'app aggiorna tutti i valori di configurazione. Questo approccio consente di garantire la coerenza della configurazione nell'app e riduce il numero complessivo di richieste effettuate all'archivio Configurazione app, rispetto al monitoraggio di tutte le chiavi per le modifiche.

Aggiungere il valore chiave seguente all'archivio Configurazione app. Per altre informazioni su come aggiungere valori chiave a un archivio usando il portale di Azure o l'interfaccia della riga di comando, vedere Creare un valore chiave.

Chiave valore
Impostazioni:Sentinel 1

Ricaricare i dati di Configurazione app

  1. Aprire il file appConfigurationProvider.yaml che si trova nella directory Distribuzione . Aggiungere quindi la refresh sezione sotto la configuration proprietà . Abilita l'aggiornamento della configurazione monitorando la chiave sentinel.

    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
    

    Suggerimento

    Per impostazione predefinita, il provider Kubernetes esegue il polling dei valori chiave di monitoraggio ogni 30 secondi per il rilevamento delle modifiche. Tuttavia, è possibile modificare questo comportamento impostando la interval proprietà di refresh. Se si vuole ridurre il numero di richieste all'archivio Configurazione app, è possibile modificarlo in un valore superiore.

  2. Aprire il file deployment.yaml nella directory Deployment e aggiungere il contenuto seguente alla spec.containers sezione . L'applicazione carica la configurazione da un file montato su volume generato dal provider Kubernetes Configurazione app. Impostando questa variabile di ambiente, l'applicazione può usare il polling per monitorare le modifiche nei file montati.

    env:
    - name: DOTNET_USE_POLLING_FILE_WATCHER
      value: "true"
    
  3. Eseguire il comando seguente per distribuire la modifica. Sostituire lo spazio dei nomi se si usa l'applicazione del servizio Azure Kubernetes esistente.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  4. Aprire una finestra del browser e passare all'indirizzo IP ottenuto nel passaggio precedente. La pagina Web è simile alla seguente:

    Screenshot dell'app Web con valori precedenti.

  5. Aggiornare i valori chiave seguenti nell'archivio Configurazione app, assicurandosi di aggiornare la chiave sentinel per ultima.

    Chiave valore
    Impostazioni:Message Hello from app Azure Configuration : ora con gli aggiornamenti in tempo reale.
    Impostazioni:Sentinel 2
  6. Dopo aver aggiornato il browser alcune volte, il contenuto aggiornato verrà visualizzato dopo l'aggiornamento di ConfigMap in 30 secondi.

    Screenshot dell'app Web con valori aggiornati.

Ricaricare ConfigMap e segreto

Configurazione app provider Kubernetes genera config Mappe o segreti che possono essere usati come variabili di ambiente o file montati su volumi. Questa esercitazione ha illustrato come caricare la configurazione da un file JSON usando il provider di configurazione JSON .NET, che ricarica automaticamente la configurazione ogni volta che viene rilevata una modifica nel file montato. Di conseguenza, l'applicazione ottiene automaticamente la configurazione aggiornata ogni volta che il provider Kubernetes Configurazione app aggiorna ConfigMap.

Se l'applicazione dipende dalle variabili di ambiente per la configurazione, potrebbe essere necessario riavviare i valori aggiornati. In Kubernetes il riavvio dell'applicazione può essere orchestrato usando gli aggiornamenti in sequenza nei pod o nei contenitori corrispondenti. Per automatizzare gli aggiornamenti della configurazione, è possibile sfruttare strumenti di terze parti come stakater/Reloader, che possono attivare automaticamente gli aggiornamenti in sequenza in caso di modifiche apportate a Config Mappe o Segreti.

Passaggi successivi

Per altre informazioni sul provider Kubernetes di configurazione app Azure, vedere app Azure Informazioni di riferimento sul provider Kubernetes di configurazione.