Udostępnij za pośrednictwem


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

  1. 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.

  2. 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"
    
  3. 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
    
  4. Otwórz okno przeglądarki i przejdź do adresu IP uzyskanego w poprzednim kroku. Strona internetowa wygląda następująco:

    Zrzut ekranu przedstawiający aplikację internetową ze starymi wartościami.

  5. 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
  6. Po odświeżeniu przeglądarki kilka razy zobaczysz zaktualizowaną zawartość po zaktualizowaniu obiektu ConfigMap w ciągu 30 sekund.

    Zrzut ekranu przedstawiający aplikację internetową ze zaktualizowanymi wartościami.

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).