為 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 未在 regionname <>中註冊。
程序代碼:ExtensionTypeRegistrationGetFailed
訊息:擴充功能類型 microsoft.dapr 未在 regionname <中註冊>
解決方案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”]} 在執行作業時發生: {在 config 上安裝擴充功能}
解決方案 4:先卸載 Dapr OSS
安裝 Dapr 擴充功能之前,請先卸載 Dapr OSS。 如需詳細資訊,請參閱 從 Dapr OSS 遷移至 AKS 的 Dapr 擴充功能。
案例 5:放置伺服器 Pod 處於不良狀態
您遇到下列錯誤:
有 0/4 個節點可供使用:1 個節點無法安排,3 個節點有磁碟區節點親和性衝突。 先佔:有0/4個節點可供使用:4 先佔對排程沒有説明。
當放置伺服器 Pod 嘗試使用與放置伺服器 Pod 本身不同的區域中建立的永續性磁碟區時,可能會發生此問題。
解決方案 5:在多個可用性區域中安裝 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 意見反應社群提交產品意見反應。