如果您使用 Azure Kubernetes Service (AKS),本教學課程會示範如何利用 Azure 應用程式組態及其 Kubernetes 提供者,為 AKS 中的工作負載啟用動態設定。 本教程假設您已完成快速入門指南,並已建立 Azure 應用程式組態 Kubernetes 提供者的設定,因此在繼續之前,請確定您已完成 在 Azure Kubernetes Service 中使用 Azure 應用程式組態 的快速入門指南。
小提示
請參閱 Kubernetes 中裝載的工作負載選項,以存取 Azure 應用程式組態。
先決條件
完成快速入門: 在 Azure Kubernetes Service 中使用 Azure 應用程式組態。
從應用程式設定重新載入資料
開啟位於部署目錄中的 appConfigurationProvider.yaml 檔案。 然後,在
refresh屬性下新增configuration部分。 它可讓 Kubernetes 提供者在偵測到任何選取的索引鍵/值發生變更時重新載入整個組態(這些索引鍵/值以Settings: 開頭且沒有標籤的)。 如需監視組態變更的詳細資訊,請參閱 設定重新整理的最佳做法。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 目錄中的 deployment.yaml 檔案,並將下列內容新增至
spec.containers區段。 您的應用程式會從 Kubernetes 應用程式組態提供者生成的磁碟區掛載檔案中載入設定。 藉由設定此環境變數,您的應用程式可以使用 輪詢來監視掛接檔案中的變更。env: - name: DOTNET_USE_POLLING_FILE_WATCHER value: "true"執行下列命令來部署變更。 如果您使用現有的 AKS 應用程式,請替換命名空間。
kubectl apply -f ./Deployment -n appconfig-demo開啟瀏覽器視窗,然後流覽至 上一個步驟中取得的IP位址。 網頁如下所示:
在您的應用程式組態存放區中更新下列索引鍵/值。
鑰匙 價值觀 設定:訊息 來自 Azure 應用程式設定的問候 - 現在可即時更新! 刷新瀏覽器幾次之後,當 ConfigMap 在 30 秒內更新時,您就會看到最新的內容。
重載 ConfigMap 和 Secret
應用程式組態的 Kubernetes 提供者會產生 ConfigMaps 或密碼,可用作環境變數或掛載為磁碟上的檔案。 本教學課程示範如何使用 .NET JSON 組態提供者從 JSON 檔案載入組態,每當掛接的檔案中偵測到變更時,就會自動重載設定。 因此,每當應用程式組態 Kubernetes 提供者更新 ConfigMap 時,您的應用程式就會自動取得更新的組態。
如果您的應用程式依賴於環境變數進行設定,可能需要重新啟動以取得任何更新的值。 在 Kubernetes 中,應用程式重新啟動可以使用對應 Pod 或容器上的輪流更新來協調。 若要自動化設定更新,您可以利用 stakater/Reloader 等第三方工具,在對 ConfigMaps 或秘密所做的任何變更時,自動觸發滾動更新。
後續步驟
若要深入了解 Azure 應用程式組態 Kubernetes 提供者,請參閱 Azure 應用程式組態 Kubernetes 提供者參考。