如果使用 Azure Kubernetes 服务 (AKS),本教程介绍如何利用 Azure 应用配置及其 Kubernetes 提供程序为 AKS 中的工作负荷启用动态配置。 本教程假定你已完成快速入门并设置了应用程序配置 Kubernetes 提供程序,因此在继续操作之前,请确保已完成使用 Azure Kubernetes 服务中的 Azure 应用程序配置快速入门。
小窍门
请参阅选项,了解在 Kubernetes 中托管的用于访问 Azure 应用配置的工作负荷。
先决条件
完成快速入门: 在 Azure Kubernetes 服务中使用 Azure 应用配置。
从应用配置重载数据
打开位于部署目录中的 appConfigurationProvider.yaml 文件。 然后,在
configuration
属性下添加refresh
节。 它使 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 秒。 如果需要减少对应用配置存储的请求数量,请调整为更高的值。在部署目录中打开 deployment.yaml 文件,并将以下内容添加到该
spec.containers
部分。 应用程序会从应用程序配置 Kubernetes 提供程序生成的卷装载文件中加载配置。 通过设置此环境变量,应用程序 可以使用轮询来监视装载文件中的更改。env: - name: DOTNET_USE_POLLING_FILE_WATCHER value: "true"
运行以下命令来部署更改。 如果使用现有的 AKS 应用程序,请替换命名空间。
kubectl apply -f ./Deployment -n appconfig-demo
打开浏览器窗口,并导航到 上一步中获取的 IP 地址。 Web 页面如下所示:
更新应用配置存储中的以下键值,确保最终更新 sentinel 密钥。
密钥 价值 设置:消息 Azure 应用配置中的问候语 - 现可实时更新! 刷新浏览器几次后,ConfigMap 会在 30 秒内更新,然后你会看到更新的内容。
重新加载 ConfigMap 和密钥
应用程序配置 Kubernetes 提供程序生成可充当环境变量或卷装载文件的 ConfigMap 或机密。 本教程演示了如何使用 .NET JSON 配置提供程序从 JSON 文件加载配置,该提供程序在装载的文件中检测到更改时自动重新加载配置。 因此,每当应用配置 Kubernetes 提供程序更新 ConfigMap 时,应用程序都会自动获取更新的配置。
如果应用程序依赖于用于配置的环境变量,则可能需要重启才能选取任何更新的值。 在 Kubernetes 中,可以在相应的 Pod 或容器上使用滚动更新来安排应用程序重启。 若要自动执行配置更新,可以利用 stakater/Reloader 等第三方工具,在对 ConfigMaps 或机密进行任何更改时,这些工具可以自动触发滚动更新。
后续步骤
要详细了解 Azure 应用程序配置 Kubernetes 提供程序,请参阅 Azure 应用程序配置 Kubernetes 提供程序参考。