Поделиться через


Руководство: Использование динамической конфигурации в службе Azure Kubernetes Service

Если вы используете службу Azure Kubernetes (AKS), в этом руководстве показано, как включить динамическую конфигурацию для рабочих нагрузок в AKS, используя конфигурацию приложений Azure и поставщика Kubernetes. В этом руководстве предполагается, что вы уже прошли краткое руководство и настроили поставщика Kubernetes для конфигурации приложений, поэтому прежде чем продолжить, убедитесь, что вы завершили краткое руководство по использованию конфигурации приложений Azure в Службе Azure Kubernetes.

Подсказка

См. параметры рабочих нагрузок, размещенных в Kubernetes, для доступа к Конфигурация приложений Azure.

Предпосылки

Завершите краткое руководство. Использование конфигурации приложений Azure в службе Azure Kubernetes.

Перезагрузить данные из конфигурации приложения

  1. Откройте файл appConfigurationProvider.yaml , расположенный в каталоге развертывания . Затем добавьте раздел refresh в свойство configuration. Он позволяет поставщику Kubernetes перезагрузить всю конфигурацию при обнаружении изменений в любом из выбранных значений ключей (начиная с параметров: и без метки). Дополнительные сведения об изменениях конфигурации мониторинга см. в рекомендациях по обновлению конфигурации.

    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
    

    Подсказка

    Свойство interval элемента refresh можно задать для указания минимального времени между обновлениями конфигурации. В этом примере вы используете значение по умолчанию в 30 секунд. Увеличьте значение, если нужно уменьшить количество запросов к вашему хранилищу конфигурации приложений.

  2. Откройте файл deployment.yaml в каталоге развертывания и добавьте в раздел следующее содержимое spec.containers . Ваше приложение загружает конфигурацию из файла, тома, используемого для подключения, который генерируется поставщиком Kubernetes конфигурации приложений. Задав эту переменную среды, приложение может использовать опрос для отслеживания изменений в подключенных файлах.

    env:
    - name: DOTNET_USE_POLLING_FILE_WATCHER
      value: "true"
    
  3. Выполните следующую команду, чтобы развернуть изменение. Замените пространство имен, если вы используете существующее приложение AKS.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  4. Откройте окно браузера и перейдите к IP-адресу, полученному на предыдущем шаге. Веб-страница выглядит следующим образом:

    Скриншот веб-приложения со старыми значениями.

  5. Обновите следующие ключевые значения в хранилище конфигурации приложений.

    Ключ Ценность
    Параметры:Сообщение Привет от Azure App Configuration — теперь с обновлениями в реальном времени!
  6. После нескольких обновлений браузера вы увидите актуальное содержимое по истечении 30 секунд после обновления ConfigMap.

    Снимок экрана веб-приложения с обновленными значениями.

Перезагрузить ConfigMap и Secret

Поставщик конфигурации приложений для Kubernetes создает ConfigMaps или Секреты, которые можно использовать в качестве переменных среды или в виде файлов, подключаемых к томам. В этом руководстве показано, как загрузить конфигурацию из JSON-файла с помощью поставщика конфигурации JSON .NET, который автоматически перезагрузит конфигурацию при обнаружении изменения в подключенном файле. В результате приложение автоматически получает обновленную конфигурацию всякий раз, когда поставщик Kubernetes конфигурации приложений обновляет ConfigMap.

Если приложение зависит от переменных среды для конфигурации, может потребоваться перезагрузка для получения всех обновленных значений. В Kubernetes перезапуск приложения можно оркестрировать с помощью последовательного обновления в соответствующих модулях pod или контейнерах. Чтобы автоматизировать обновления конфигурации, можно использовать сторонние средства, такие как stakater/Reloader, которые могут автоматически активировать последовательные обновления при любых изменениях, внесенных в ConfigMaps или Secret.

Дальнейшие шаги

Дополнительные сведения о поставщике kubernetes Конфигурация приложений Azure см. в Конфигурация приложений Azure справочнике по поставщику Kubernetes.