針對 Dapr 延伸模組安裝錯誤進行疑難解答
本文討論當您安裝或更新適用於 Microsoft Azure Kubernetes Service (AKS) 或 Arc for Kubernetes 的分散式應用程式運行時間 (Dapr) 擴充功能時,可能會收到的一些常見錯誤訊息。
案例 1:安裝失敗,但未顯示錯誤訊息
如果擴充功能在建立或更新時產生錯誤訊息,您可以執行 az k8s-extension list 命令來檢查建立失敗之處:
az k8s-extension list --resource-group <my-resource-group-name> \
--cluster-name <my-cluster-name> \
--cluster-type managedClusters
如果組態設定中使用錯誤的索引鍵,例如 global.ha=false
,而不是 global.ha.enabled=false
,則會傳回下列 JSON 狀態。 在屬性中 message
擷取錯誤訊息。
"statuses": [
{
"code": "InstallationFailed",
"displayStatus": null,
"level": null,
"message": "Error: {failed to install chart from path [] for release [dapr-1]: err [template: dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml:1:17: executing \"dapr/charts/dapr_sidecar_injector/templates/dapr_sidecar_injector_poddisruptionbudget.yaml\" at <.Values.global.ha.enabled>: can't evaluate field enabled in type interface {}]} occurred while doing the operation : {Installing the extension} on the config",
"time": null
}
],
以下是 JSON 錯誤訊息的另一個範例:
"statuses": [
{
"code": "InstallationFailed",
"displayStatus": null,
"level": null,
"message": "The extension operation failed with the following error: unable to add the configuration with configId {extension:microsoft-dapr} due to error: {error while adding the CRD configuration: error {failed to get the immutable configMap from the elevated namespace with err: configmaps 'extension-immutable-values' not found }}. (Code: ExtensionOperationFailed)",
"time": null
}
]
解決方案 1:重新啟動叢集、註冊服務提供者,或刪除並重新安裝 Dapr
若要修正此問題,請嘗試下列方法:
案例 2:目標 Dapr 版本不存在
當您嘗試安裝 Dapr 擴充功能以 以特定版本為目標時,您會收到錯誤訊息,指出 Dapr 版本不存在:
(ExtensionOperationFailed) 擴充功能作業失敗,發生下列錯誤:無法從指定的值解析擴充功能版本。
程序代碼:ExtensionOperationFailed
訊息:擴充功能作業失敗,發生下列錯誤:無法從指定的值解析擴充功能版本。
解決方案 2:針對支援的 Dapr 版本再次安裝
請再試一次以安裝擴充功能。 請確定您使用 支援的 Dapr 版本。
案例 3:目標 Dapr 版本存在,但不在指定的區域中
由於某些版本的 Dapr 無法在所有區域中使用,因此您可能會收到下列錯誤訊息:
(ExtensionTypeRegistrationGetFailed) 區域名稱中<>未註冊延伸模組類型 microsoft.dapr。
程序代碼:ExtensionTypeRegistrationGetFailed
訊息:延伸模組類型 microsoft.dapr 未在區域區域 <名稱中註冊>
解決方案3:在不同的區域中安裝
在 支援 Dapr 版本的區域中安裝 。
案例 4:已安裝 Dapr
您嘗試安裝適用於 AKS 或 Arc for Kubernetes 的 Dapr 擴充功能,但會收到錯誤訊息,指出 dapr-system
命名空間已存在。 此錯誤訊息類似下列文字:
(ExtensionOperationFailed) 擴充功能作業失敗,發生下列錯誤: 錯誤: {無法從版本 [dapr-ext] 的路徑 [] 安裝圖表:err [轉譯的指令清單包含已經存在的資源。 無法繼續安裝:命名空間 「dapr-system」 中的 ServiceAccount “dapr-operator” 存在,無法匯入目前版本:無效的擁有權元數據;批注驗證錯誤: 索引鍵 “meta.helm.sh/release-name”必須等於 “dapr-ext”: 目前的值為 “dapr”]} 執行作業時發生: {在設定上安裝擴充功能}
解決方案 4:先卸載 Dapr OSS
安裝 Dapr 擴充功能之前,請先卸載 Dapr OSS。 如需詳細資訊,請參閱 從 Dapr OSS 移轉至 AKS 的 Dapr 擴充功能。
案例 5:放置伺服器 Pod 處於不良狀態
您遇到下列錯誤:
有 0/4 個節點可供使用:1 個節點 (的) 無法排程,3 個節點 () 有磁碟區節點親和性衝突。 preemption: 0/4 節點可供使用:4 先佔對排程沒有説明。
當放置伺服器 Pod 嘗試使用與放置伺服器 Pod 本身不同區域中建立的永續性磁碟區時,可能會發生此問題。
解決方案 5:在多個可用性區域中安裝 Dapr,或將放置服務限制為特定可用性區域
若要解決此問題,請使用下列其中一個方法:
在 HA模式中,遵循在多個可用性區域中安裝Dapr中的建議方法。
藉由建立自定義儲存類別並將它用於放置服務,然後執行下列命令,將放置服務限制為特定可用性區域:
az k8s-extension create --cluster-type managedClusters --cluster-name <clustername> --resource-group <resourcegroup> --name <name> --extension-type Microsoft.Dapr --auto-upgrade-minor-version <minorversion> --version <version> --configuration-settings "dapr_placement.volumeclaims.storageClassName=zone-restricted"
以下是建立自訂儲存類別的範例:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: zone-restricted provisioner: disk.csi.azure.com reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer allowedTopologies: - matchLabelExpressions: - key: topology.kubernetes.io/zone values: - centralus-1 parameters: storageaccounttype: StandardSSD_LRS
後續步驟
如果您仍然遇到安裝問題,請探索 AKS 疑難解答指南 和 Dapr OSS 疑難解答指南。
協力廠商資訊免責聲明
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以將產品意見反應提交給 Azure 意應見反社群。