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
Öffnen Sie die Datei appConfigurationProvider.yaml im Verzeichnis Deployment. Fügen Sie dann den Abschnitt
refresh
unter derconfiguration
-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
vonrefresh
festlegen. Wenn Sie die Anzahl der Anforderungen an Ihren App Configuration-Speicher verringern müssen, können Sie einen höheren Wert festlegen.Ö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"
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
Öffnen Sie ein Browserfenster, und navigieren Sie zur IP-Adresse, die im vorherigen Schritt erhalten wurde. Die Webseite sieht folgendermaßen aus:
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 Nachdem Sie den Browser einige Male aktualisiert haben, sehen Sie den aktualisierten Inhalt, sobald ConfigMap innerhalb von 30 Sekunden aktualisiert wurde.
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.