針對 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 意應見反社群