Samouczek: używanie konfiguracji dynamicznej w usłudze Azure Kubernetes Service
Jeśli używasz usługi Azure Kubernetes Service (AKS), w tym samouczku pokazano, jak włączyć konfigurację dynamiczną obciążeń w usłudze AKS, korzystając z usługi aplikacja systemu Azure Configuration i dostawcy Kubernetes. W samouczku założono, że pracujesz w ramach przewodnika Szybki start i skonfigurowaliśmy dostawcę kubernetes konfiguracji aplikacji, więc przed kontynuowaniem upewnij się, że ukończono przewodnik Szybki start Używanie konfiguracji aplikacja systemu Azure w usłudze Azure Kubernetes Service.
Napiwek
Zobacz opcje obciążeń hostowanych na platformie Kubernetes, aby uzyskać dostęp do konfiguracji aplikacja systemu Azure.
Wymagania wstępne
Zakończ przewodnik Szybki start: użyj konfiguracji aplikacja systemu Azure w usłudze Azure Kubernetes Service.
Napiwek
Usługa Azure Cloud Shell to bezpłatna, interaktywna powłoka, której można użyć do uruchamiania instrukcji wiersza polecenia w tym artykule. Wstępnie zainstalowane narzędzia platformy Azure, w tym zestaw SDK platformy .NET Core. Jeśli zalogowano się do subskrypcji platformy Azure, uruchom usługę Azure Cloud Shell z shell.azure.com. Aby dowiedzieć się więcej na temat usługi Azure Cloud Shell , przeczytaj naszą dokumentację.
Dodawanie klucza sentinel
Klucz sentinel to klucz aktualizowany po zakończeniu zmiany wszystkich innych kluczy. Aplikacja monitoruje klucz sentinel. Po wykryciu zmiany aplikacja odświeża wszystkie wartości konfiguracji. Takie podejście pomaga zapewnić spójność konfiguracji w aplikacji i zmniejszyć ogólną liczbę żądań wysyłanych do magazynu usługi App Configuration w porównaniu do monitorowania wszystkich kluczy pod kątem zmian.
Dodaj następującą wartość klucza do magazynu usługi App Configuration. Aby uzyskać więcej informacji na temat dodawania wartości klucz-wartości do magazynu przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia, przejdź do artykułu Create a key-value (Tworzenie wartości klucza).
Key | Wartość |
---|---|
Ustawienia:Sentinel | 1 |
Ponowne ładowanie danych z usługi App Configuration
Otwórz plik appConfigurationProvider.yaml znajdujący się w katalogu Wdrożenia. Następnie dodaj sekcję
refresh
pod właściwościąconfiguration
. Umożliwia odświeżanie konfiguracji przez monitorowanie klucza 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
Napiwek
Domyślnie dostawca Kubernetes sonduje wartości klucza monitorowania co 30 sekund na potrzeby wykrywania zmian. Można jednak zmienić to zachowanie, ustawiając
interval
właściwośćrefresh
. Jeśli chcesz zmniejszyć liczbę żądań do magazynu usługi App Configuration, możesz dostosować je do wyższej wartości.Otwórz plik deployment.yaml w katalogu wdrożenia i dodaj następującą zawartość do
spec.containers
sekcji. Aplikacja ładuje konfigurację z pliku zainstalowanego w woluminie wygenerowanego przez dostawcę Kubernetes usługi App Configuration. Ustawiając tę zmienną środowiskową, aplikacja może używać sondowania do monitorowania zmian w zainstalowanych plikach.env: - name: DOTNET_USE_POLLING_FILE_WATCHER value: "true"
Uruchom następujące polecenie, aby wdrożyć zmianę. Zastąp przestrzeń nazw, jeśli używasz istniejącej aplikacji usługi AKS.
kubectl apply -f ./Deployment -n appconfig-demo
Otwórz okno przeglądarki i przejdź do adresu IP uzyskanego w poprzednim kroku. Strona internetowa wygląda następująco:
Zaktualizuj następujące wartości klucza w magazynie usługi App Configuration, aby zaktualizować klucz sentinel jako ostatni.
Key Wartość Ustawienia:Komunikat Witaj z usługi aplikacja systemu Azure Configuration — teraz z aktualizacjami na żywo! Ustawienia:Sentinel 2 Po odświeżeniu przeglądarki kilka razy zobaczysz zaktualizowaną zawartość po zaktualizowaniu obiektu ConfigMap w ciągu 30 sekund.
Ponowne ładowanie obiektu ConfigMap i wpisu tajnego
Dostawca Kubernetes usługi App Configuration generuje konfigurację Mapy lub wpisy tajne, które mogą być używane jako zmienne środowiskowe lub pliki zainstalowane w woluminie. W tym samouczku pokazano, jak załadować konfigurację z pliku JSON przy użyciu dostawcy konfiguracji JSON platformy .NET, który automatycznie ponownie ładuje konfigurację za każdym razem, gdy w pliku zainstalowanym zostanie wykryta zmiana. W związku z tym aplikacja automatycznie pobiera zaktualizowaną konfigurację za każdym razem, gdy dostawca Kubernetes usługi App Configuration aktualizuje ConfigMap.
Jeśli aplikacja jest zależna od zmiennych środowiskowych dla konfiguracji, może wymagać ponownego uruchomienia w celu pobrania zaktualizowanych wartości. W rozwiązaniu Kubernetes ponowne uruchomienie aplikacji można organizować przy użyciu aktualizacji stopniowych na odpowiednich zasobnikach lub kontenerach. Aby zautomatyzować aktualizacje konfiguracji, możesz korzystać z narzędzi innych firm, takich jak stakater/Reloader, które mogą automatycznie wyzwalać aktualizacje stopniowe po wszelkich zmianach wprowadzonych w konfiguracji Mapy lub wpisach tajnych.
Następne kroki
Aby dowiedzieć się więcej na temat dostawcy platformy Kubernetes konfiguracji aplikacja systemu Azure, zobacz aplikacja systemu Azure Configuration Kubernetes Provider reference (Dokumentacja dostawcy usługi Kubernetes konfiguracji platformy Kubernetes).