共用方式為


為 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,或將放置服務限制在特定可用性區域

若要解決這個問題,請使用下列其中一個方法:

  • 在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 意見反應社群提交產品意見反應。