設定適用於 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 開放原始碼 檔中提供的指示,使用 Helm 和 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。