共用方式為


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

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

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

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

管理 mTLS 憑證

Dapr 延伸模組支援使用 Dapr Sentry 服務控制平面的 Dapr 實例之間的傳輸中通訊加密,這是中央證書頒發機構單位(CA)。 使用 Sentry 服務,您可以使用自我簽署或使用者提供的 x.509 憑證來加密通訊。 在開放原始碼 Dapr 檔中深入瞭解如何設定 mTLS 憑證。

您可以 帶入自己的憑證,或讓 Dapr 自動建立及保存自我簽署的跟證書和簽發者憑證

重要

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

管理 Dapr 產生的自我簽署憑證

如果您尚未提供任何自定義憑證,Dapr 會自動建立並保存自我簽署憑證,有效期為 1 年。 Dapr 延伸模組會 dapr-trust-bundle 安裝秘密,其中包含預設 dapr-system 命名空間下的憑證資訊。

檢查目前 Dapr 產生的自我簽署憑證到期日

您可以使用 Dapr CLI 來檢查 Kubernetes 叢集的 Dapr 跟證書何時過期

dapr mtls expiry

預期輸出:

Root certificate expires in 8759 hours. Expiry date: 2025-12-06 18:14:20 +0000 UTC

您也可以在 Kubernetes dapr-trust-bundle 秘密數據中找到目前憑證的到期日。

kubectl get secret dapr-trust-bundle -n dapr-system -o jsonpath='{.data.issuer\.crt}' | base64 -d | openssl x509 -noout -dates

預期輸出:

notBefore=Dec  6 17:59:20 2024 GMT
notAfter=Dec  6 18:14:20 2025 GMT

產生新的 Dapr 產生的自我簽署憑證

  • 透過 Dapr CLI (建議)
    請參閱使用 CLI 進行 Dapr 的跟證書和簽發者憑證升級指南。
  • 透過kubectl命令 請參閱使用 Kubectl 指南的 Dapr 更新根或簽發者憑證。

管理您自己的使用者提供的 x.509 憑證

您也可以自備自定義憑證。

佈建已啟用高可用性 (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

後續步驟