Freigeben über


Tutorial: Verwenden der dynamischen Konfiguration in Azure Kubernetes Service

Bei Verwendung von Azure Kubernetes Service (AKS) erfahren Sie in diesem Tutorial, wie Sie die dynamische Konfiguration für Ihre Workloads in AKS aktivieren, indem Sie Azure App Configuration und den Kubernetes-Anbieter nutzen. Im Tutorial wird davon ausgegangen, dass Sie die Schnellstartanleitung bereits durchgearbeitet und einen App Configuration-Kubernetes-Anbieter eingerichtet haben. Stellen Sie daher vor dem Fortfahren sicher, dass Sie den Schnellstart Verwenden von Azure App Configuration in Azure Kubernetes Service abgeschlossen haben.

Tipp

Unter den Optionen für Workloads, die in Kubernetes gehostet werden, können Sie auf Azure App Configuration zugreifen.

Voraussetzungen

Arbeiten Sie die Schnellstartanleitung unter Schnellstart: Verwenden von Azure App Configuration in Azure Kubernetes Service durch.

Tipp

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Befehlszeilenanweisungen in diesem Artikel ausführen können. Für sie sind allgemeine Azure-Tools einschließlich des .NET Core SDK vorinstalliert. Wenn Sie bei Ihrem Azure-Abonnement angemeldet sind, starten Sie Azure Cloud Shell über shell.azure.com. Weitere Informationen zu Azure Cloud Shell finden Sie in der Dokumentation.

Hinzufügen eines Sentinel-Schlüssels

Ein Sentinel-Schlüssel ist ein Schlüssel, den Sie aktualisieren, nachdem Sie die Änderung aller anderen Schlüssel abgeschlossen haben. Ihre App überwacht den Sentinel-Schlüssel. Wird eine Änderung erkannt, werden alle Konfigurationswerte von Ihrer App aktualisiert. Dieser Ansatz trägt dazu bei, die Konsistenz der Konfiguration in Ihrer App sicherzustellen, und verringert die Gesamtanzahl von Anforderungen, die an den App Configuration-Speicher gesendet werden (verglichen mit der Überwachung aller Schlüssel auf Änderungen).

Fügen Sie dem App Configuration-Speicher die folgenden Schlüsselwerte hinzu. Weitere Informationen zum Hinzufügen von Schlüssel-Wert-Paaren zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Schlüssel-Wert-Paars.

Schlüssel Wert
Settings:Sentinel 1

Erneutes Laden von Daten aus App Configuration

  1. Öffnen Sie die Datei appConfigurationProvider.yaml im Verzeichnis Deployment. Fügen Sie dann den Abschnitt refresh unter der configuration-Eigenschaft hinzu. Dadurch wird die Konfigurationsaktualisierung ermöglicht, indem der Sentinel-Schlüssel überwacht wird.

    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
    

    Tipp

    Standardmäßig fragt der Kubernetes-Anbieter alle 30 Sekunden die Überwachungsschlüsselwerte für die Änderungserkennung ab. Sie können dieses Verhalten jedoch ändern, indem Sie die Eigenschaft interval von refresh festlegen. Wenn Sie die Anzahl der Anforderungen an Ihren App Configuration-Speicher verringern müssen, können Sie einen höheren Wert festlegen.

  2. Öffnen Sie die Datei deployment.yaml im Verzeichnis Bereitstellung, und fügen Sie den folgenden Inhalt zum Abschnitt spec.containers hinzu. Ihre Anwendung lädt die Konfiguration aus einer in ein Volume eingebundenen Datei, die der App Configuration-Kubernetes-Anbieter generiert. Durch Festlegen dieser Umgebungsvariable kann Ihre Anwendung Abrufvorgänge verwenden, um Änderungen an eingebundenen Dateien zu überwachen.

    env:
    - name: DOTNET_USE_POLLING_FILE_WATCHER
      value: "true"
    
  3. Führen Sie den folgenden Befehl aus, um die Änderung bereitzustellen. Ersetzen Sie den Namespace, wenn Sie Ihre vorhandene AKS-Anwendung verwenden.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  4. Öffnen Sie ein Browserfenster, und navigieren Sie zur IP-Adresse, die im vorherigen Schritt erhalten wurde. Die Webseite sieht folgendermaßen aus:

    Screenshot: Web-App mit alten Werten

  5. Aktualisieren Sie die folgenden Schlüsselwerte im App Configuration-Speicher, um sicherzustellen, dass der Sentinel-Schlüssel zuletzt aktualisiert wird.

    Schlüssel Wert
    Settings:Message Hallo von Azure App Configuration – jetzt mit Liveupdates!
    Settings:Sentinel 2
  6. Nachdem Sie den Browser einige Male aktualisiert haben, sehen Sie den aktualisierten Inhalt, sobald ConfigMap innerhalb von 30 Sekunden aktualisiert wurde.

    Screenshot: Web-App mit aktualisierten Werten

ConfigMap und Geheimnis erneut laden

Der App Configuration-Kubernetes-Anbieter generiert ConfigMaps oder Geheimnisse, die als Umgebungsvariablen oder in Volumes eingebundene Dateien verwendet werden können. In diesem Tutorial wurde gezeigt, wie die Konfiguration aus einer JSON-Datei mithilfe des .NET JSON-Konfigurationsanbieters geladen wird. Dadurch wird die Konfiguration automatisch erneut geladen, wenn eine Änderung in der eingebundenen Datei erkannt wird. Daher erhält Ihre Anwendung automatisch die aktualisierte Konfiguration, wenn der App Configuration-Kubernetes-Anbieter ConfigMap aktualisiert.

Wenn Ihre Anwendung von Umgebungsvariablen für die Konfiguration abhängig ist, ist möglicherweise ein Neustart erforderlich, um aktualisierte Werte zu erfassen. In Kubernetes kann der Anwendungsneustart mithilfe paralleler Updates für die entsprechenden Pods oder Container orchestriert werden. Zum Automatisieren von Konfigurationsupdates können Sie Drittanbietertools wie stakater/Reloader nutzen, die bei Änderungen, die an ConfigMaps oder Geheimnissen vorgenommen wurden, automatisch parallele Updates auslösen können.

Nächste Schritte

Weitere Informationen zum Azure App Configuration Kubernetes-Anbieter finden Sie unter Azure App Configuration Kubernetes-Anbieterreferenz.