設定適用於 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 產生的自我簽署憑證
管理您自己的使用者提供的 x.509 憑證
您也可以自備自定義憑證。
- 產生自定義憑證
建立您自己的自定義憑證;例如,Azure 金鑰保存庫 憑證。 - 手動更新您的自定義 certficate
請遵循 Dapr 開放原始碼 檔中提供的指示,使用kubectl
手動更新您的自定義憑證。
佈建已啟用高可用性 (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.daprControlPlaneOs
和 global.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,您可以透過下列方式執行此動作:
- 使用
dapr.io/env
註釋 \(英文\) 設定 Proxy 環境變數:HTTP_PROXY
HTTPS_PROXY
NO_PROXY
- 在側車中安裝 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 上運作:
https://mcr.microsoft.com/daprio
提取 Dapr 成品的 URL。- AKS 或 Arc for Kubernetes 所需的輸出 URL。