分享方式:


設定適用於 Azure Kubernetes Service (AKS) 和已啟用 Arc 的 Kubernetes 專案的 Dapr 延伸模組

完成安裝 Dapr 擴充功能的必要條件之後,您可以使用各種組態選項,將 Dapr 擴充功能設定為最適合您和您的專案,例如:

  • 輪替過期的憑證
  • 已啟用高可用性的 Dapr 布建
  • 限制您的節點使用 Dapr 擴充功能
  • 設定自動自訂資源定義 (CRD) 更新
  • 設定 Dapr 版本命名空間

此延伸模組可讓您使用 Azure CLI 中的 --configuration-settings 參數,或在 Bicep 範本中使用 configurationSettings 屬性來設定 Dapr 設定選項。

輪替過期的自定義憑證

您可以更新過期的certficates,然後重新啟動您的系統服務。

重要

如果您未明確設定憑證,Dapr 會默認產生自我簽署憑證,這通常有效期為 1 年。 目前不建議使用 Dapr 所產生的自我簽署憑證。 最佳做法是產生自定義憑證,並手動更新它們。

產生自定義憑證

建立您自己的自定義憑證;例如,Azure 金鑰保存庫 憑證

手動更新您的自定義 certficate

請遵循 Dapr 開放原始碼 檔中提供的指示,使用 Helmkubectl手動更新您的自定義憑證。

佈建已啟用高可用性 (HA) 的 Dapr

global.ha.enabled 參數設定為 true,以佈建已啟用高可用性 (HA) 的 Dapr。

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2"

注意

如果組態設定很敏感,而且需要受到保護 (例如,憑證相關資訊),則請傳遞 --configuration-protected-settings 參數,而且將會保護該值,以免遭讀取。

如果未傳遞任何組態設定,Dapr 設定預設為:

  ha:
    enabled: true
    replicaCount: 3
    disruption:
      minimumAvailable: ""
      maximumUnavailable: "25%"
  prometheus:
    enabled: true
    port: 9090
  mtls:
    enabled: true
    workloadCertTTL: 24h
    allowedClockSkew: 15m

如需可用選項的清單,請參閱 Dapr 設定

將延伸模組限制為特定節點

在某些設定中,您可能只想在特定節點上執行 Dapr。 您可以在延伸模組組態中傳遞 nodeSelector 來限制延伸模組。 如果所需的 nodeSelector 包含 .,您必須從殼層和延伸模組逸出它們。 例如,下列設定只會將 Dapr 安裝至具有 topology.kubernetes.io/zone: "us-east-1c" 的節點:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.nodeSelector.kubernetes\.io/zone=us-east-1c"

若要管理 OS 和架構,請使用 global.daprControlPlaneOsglobal.daprControlPlaneArch 設定的支援版本

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" \
--configuration-settings "global.daprControlPlaneOs=linux” \
--configuration-settings "global.daprControlPlaneArch=amd64”

在 HA 模式中,在多個可用性區域中安裝 Dapr

根據預設,放置服務會使用類型為 standard_LRS 的儲存類別。 建議您以 HA 模式跨多個可用性區域來安裝 Dapr 時,建立「區域備援儲存類別」。 例如,若要建立 zrs 類型儲存類別,請新增 storageaccounttype 參數:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: custom-zone-redundant-storage
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
parameters:
  storageaccounttype: Premium_ZRS

安裝 Dapr 時,請使用您在 YAML 檔案中使用的儲存類別:

az k8s-extension create --cluster-type managedClusters  
--cluster-name XXX  
--resource-group XXX  
--name XXX  
--extension-type Microsoft.Dapr  
--auto-upgrade-minor-version XXX  
--version XXX  
--configuration-settings "dapr_placement.volumeclaims.storageClassName=custom-zone-redundant-storage"

設定 Dapr 版本命名空間

您可以設定版本命名空間。

根據預設,Dapr 延伸模組會安裝在 dapr-system 命名空間中。 若要將其覆寫,請使用 --release-namespace。 若要重新定義命名空間,請包括叢集 --scope

az k8s-extension create \
--cluster-type managedClusters \
--cluster-name dapr-aks \
--resource-group dapr-rg \
--name my-dapr-ext \
--extension-type microsoft.dapr \
--release-train stable \
--auto-upgrade false \
--version 1.9.2 \
--scope cluster \
--release-namespace dapr-custom

了解如何在從 Dapr 開放原始碼移轉至 Dapr 延伸模組時設定 Dapr 版本命名空間

顯示目前的組態設定

使用 az k8s-extension show 命令來顯示目前的 Dapr 組態設定:

az k8s-extension show --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr

更新組態設定

重要

某些設定選項建立完畢後,就無法修改。 若要調整這些選項,需要刪除和重新建立適用於下列設定的延伸模組:

  • global.ha.*
  • dapr_placement.*

HA 預設為啟用。 如要停用,需要刪除和重新建立延伸模組。

若要更新 Dapr 組態設定,請重新建立具有所需狀態的延伸模組即可。 例如,假設您先前已使用下列設定來建立和安裝延伸模組:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \  
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=2" 

若要將 dapr_operator.replicaCount 從兩個更新為三個,請使用下列命令:

az k8s-extension create --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--extension-type Microsoft.Dapr \
--auto-upgrade-minor-version true \
--configuration-settings "global.ha.enabled=true" \
--configuration-settings "dapr_operator.replicaCount=3"

為適用於 Azure Arc 的 Dapr 延伸模組內部部署設定輸出

如果您想要搭配適用於 AKS 的 Dapr 延伸模組使用輸出 Proxy,您可以透過下列方式執行此動作:

  1. 使用dapr.io/env註釋 \(英文\) 設定 Proxy 環境變數:
    • HTTP_PROXY
    • HTTPS_PROXY
    • NO_PROXY
  2. 在側車中安裝 Proxy 憑證 \(英文\)。

更新 Dapr 安裝版本

如果您使用的是特定的 Dapr 版本,而且沒有 --auto-upgrade-minor-version 可用,您可以使用下列命令來升級或降級 Dapr:

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--version 1.12.0 # Version to upgrade or downgrade to

上述命令更新 Dapr 控制平面。若要更新 Dapr 側車,請重新啟動您的應用程式部署:

kubectl rollout restart deploy/<DEPLOYMENT-NAME>

使用以 Azure Linux 為基礎的映像

從 Dapr 1.8.0 版,您可以搭配 Dapr 延伸模組使用 Azure Linux 映像。 若要予以使用,請設定 global.tag 旗標:

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--set global.tag=1.10.0-mariner

停用 CRD 的自動更新

從 Dapr 1.9.2 版,延伸模組升級時會自動升級 CRD。 若要停用這項設定,你可以將 hooks.applyCrds 設定為 false

az k8s-extension update --cluster-type managedClusters \
--cluster-name myAKSCluster \
--resource-group myResourceGroup \
--name dapr \
--configuration-settings "hooks.applyCrds=false"

注意

只有在升級時才會套用 CRD,並在降級期間跳過。

符合網路需求

Dapr 延伸模組需要 https://:443 上的下列輸出 URL,才能在適用於 Kubernetes 的 AKS 和 Arc 上運作:

  1. https://mcr.microsoft.com/daprio 提取 Dapr 成品的 URL。
  2. AKS 或 Arc for Kubernetes 所需的輸出 URL

後續步驟