適用於:Azure 本機上的 AKS、Windows Server 上的 AKS
本文說明您在使用 PowerShell Cmdlet 和 AKS Arc 中的 PowerShell Cmdlet Enable-AksHciArcConnection
Disable-AksHciArcConnection
將 AKS 工作負載叢集連線或中斷連線時可能會遇到的錯誤(及其因應措施)。如需本文未涵蓋的問題,請參閱 針對已啟用Arc的 Kubernetes 進行疑難解答。
如果沒有列出的因應措施適用於您,您也可以 開啟支持問題 。
錯誤:「找不到名稱為 『my-aks-cluster』 的工作負載叢集」
此錯誤表示您尚未建立工作負載叢集,或拼錯了工作負載叢集的名稱。
執行 Get-AksHciCluster 以確保您擁有正確的名稱,或您想要連線到 Arc 的叢集存在。
錯誤:「System.Management.Automation.RemoteException 開始上線進程叢集 「azure-arc-onboarding」設定...
當您使用 Windows Admin Center 建立工作負載叢集,並將其連線至已啟用 Arc 的 Kubernetes 時,可能會發生下列錯誤:
System.Management.Automation.RemoteException Starting onboarding process Cluster "azure-arc-onboarding" set. User "azure-arc-onboarding" set. Context "azure-arc-onboarding" created. Switched to context "azure-arc-onboarding". Azure login az login: error: argument --password/-p: expected one argument usage: az login [-h] [--verbose] [--debug] [--only-show-errors] [--output {json,jsonc,yaml,yamlc,table,tsv,none}] [--query JMESPATH] [--username USERNAME] [--password PASSWORD] [--service-principal] [--tenant TENANT] [--allow-no-subscriptions] [-i] [--use-device-code] [--use-cert-sn-issuer] : Job Failed Condition]
若要解決此問題,請檢閱下列選項:
- 選項 1:刪除工作負載叢集,然後使用 Windows Admin Center 再試一次。
- 選項 2:在 PowerShell 中,執行 Get-AksHciCluster 命令來檢查叢集是否已成功建立,然後使用 Enable-AksHciArcConnection 將叢集聯機至 Arc。
如果 'Connect-AzAccount' 用來登入 Azure,'Enable-AksHciArcConnection' 會失敗
當您使用 Connect-AzAccount
登入 Azure 時,可能會將不同的訂用帳戶設定為預設內容,而不是您提供做為 輸入的訂 Set-AksHciRegistration
用帳戶。 當您接著執行 Enable-AksHciArcConnection
時,命令會預期 中使用的 Set-AksHciRegistration
訂用帳戶。 不過, Enable-AksHciArcConnection
使用 取得預設訂用 Connect-AzAccount
帳戶集,因此可能會導致錯誤。
若要避免此錯誤,請遵循下列其中一個選項:
選項 1:執行
Set-AksHciRegistration
以使用您第一次執行 命令將 AKS 主機連線至 Azure 以進行計費時所使用的相同參數(訂用帳戶和資源群組)登入 Azure。 接著,您可以搭配預設值使用Enable-AksHciArcConnection -Name <ClusterName>
,而您的叢集將會連線到 AKS 主機計費訂用帳戶和資源群組下的 Arc。選項 2:以
Enable-AksHciArcRegistration
與 AKS 主機不同的訂用帳戶和資源群組下,使用所有參數 、subscription
、resource group
、location
、tenant
和secret
來執行,將您的叢集連線到 Azure Arc。 如果您沒有足夠的許可權可以使用您的 Azure 帳戶將叢集連線到 Azure Arc,則也應該執行Enable-AksHciArcRegistration
(例如,如果您不是訂用帳戶擁有者)。
錯誤:「等待條件逾時」
此錯誤通常指向下列其中一個問題:
- 叢集是在虛擬化環境中的 Azure VM 中建立的,或您在多個虛擬化層級上部署了 Azure Local 上的 AKS。
- 因特網緩慢導致逾時。
如果上述其中一個案例適用於您,請執行 Disable-AksHciArcConnection,然後再試一次連線。 如果上述案例不適用於您, 請針對 Azure 本機上的 AKS 開啟支持問題 。
錯誤:「找不到秘密 “sh.helm.release.v1.azure-arc.v1”
此錯誤表示無法連線到您的 Kubernetes API 伺服器。
請嘗試再次執行Disable-AksHciArcConnection
命令,然後移至 Azure 入口網站 以確認您的connectedCluster
資源已實際刪除。 您也可以執行 kubectl get ns -A
以確認您的叢集上不存在命名空間 azure-arc
。
錯誤:「連線至 Azure 失敗。 請執行 'Set-AksHciRegistration',然後再試一次」
此錯誤表示您對 Azure 的登入認證已過期。
使用 再次執行Enable-AksHciArcConnection
命令之前,先Set-AksHciRegistration
登入 Azure。 重新執行 Set-AksHciRegistration
時,請務必使用您第一次向 Azure 註冊 AKS 主機以進行計費時所使用的相同訂用帳戶和資源群組詳細數據。 如果您使用不同的訂用帳戶或資源群組重新執行命令,則不會註冊它們。 在 中 Set-AksHciRegistration
設定訂用帳戶和資源群組之後,就無法在卸載 AKS Arc 的情況下加以變更。
錯誤:「『My-Cluster』 不是有效的叢集名稱。 名稱必須是小寫,且符合正則表達式模式:'^[a-z0-9][a-z0-9-]*[a-z0-9]$'”
此錯誤表示工作負載叢集未遵循 Kubernetes 命名慣例。
如錯誤所示,請確定叢集名稱為小寫,並符合正則表達式模式:'^[a-z0-9][a-z0-9-]*[a-z0-9]$'。
錯誤:「addons.msft.microsoft “demo-arc-onboarding” 已經存在」
此錯誤通常表示您已將 AKS 叢集連線到已啟用 Arc 的 Kubernetes。
若要確認已連線,請移至 Azure 入口網站,然後在您執行Set-AksHciRegistration
時提供的訂用帳戶和資源群組下檢查(如果您使用預設值),或 Enable-AksHciArcConnection
(如果您未使用預設值)。 您也可以執行 az connectedk8s show
Azure CLI 命令,確認 Azure 本機叢集上的 AKS 是否已連線到 Azure。 如果您沒有看到工作負載叢集,請執行 Disable-AksHciArcConnection
並再試一次。
錯誤:「autorest/azure:服務傳回錯誤。 Status=404 Code=“ResourceNotFound”...”
此錯誤表示 Azure 找不到 connectedCluster
與您的叢集相關聯的 Azure Resource Manager 資源:
「autorest/azure:服務傳回錯誤。 Status=404 Code=“ResourceNotFound” Message=“找不到資源群組 'AKS-HCI2' 下的資源 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster'。 如需詳細資訊,請移至 https://aka.ms/ARMResourceNotFoundFix"]”
如果您在下列狀況下遇到此錯誤:
- 在執行 Cmdlet 時
Disable-AksHciArcConnection
,您提供了不正確的資源群組或訂用帳戶。 - 您手動刪除 Azure 入口網站 上的資源。
- Azure Resource Manager 找不到您的 Azure 資源。
若要解決此錯誤,如錯誤訊息中所述,請參閱 解決找不到資源的錯誤。
錯誤:「找不到叢集附加元件 arc 卸載錯誤:找不到命名空間 “azure-arc”
此錯誤通常表示您已經從工作負載叢集卸載 Arc 代理程式,或使用 命令手動刪除 azure-arc
命名空間 kubectl
。
移至 Azure 入口網站,確認您沒有任何流失的資源。 例如,請確認您看不到 connectedCluster
訂用帳戶和資源群組中的資源。
錯誤:「未正確設定 Azure 訂用帳戶」
如果您尚未使用已啟用 Arc 的 Kubernetes 資源提供者來設定 Azure 訂用帳戶,可能會遇到此問題。 我們目前會檢查 和 Microsoft.KubernetesConfiguration
是否已Microsoft.Kubernetes
設定。
如需啟用這些資源提供者的詳細資訊,請參閱 註冊已啟用Arc的 Kubernetes 提供者。
錯誤:「無法在 'azure-arc' 命名空間中讀取 ConfigMap 'azure-clusterconfig'
在停用現有連線之後,嘗試在 AKS 叢集上重新啟用 Arc 連線時,可能會遇到此問題。 錯誤是因為變更儲存 Azure Arc 秘密的命名空間。
導致錯誤的步驟如下:
- 使用
Enable-AksHciArcConnection -name $clusterName
將工作負載叢集連線至 Azure Arc。 - 中斷叢集與 Azure Arc 的連線:
Disable-AksHciArcConnection -name $clusterName
。 - 再次使用此命令將工作負載叢集連線至 Azure Arc:
Enable-AksHciArcConnection -name $clusterName
。
錯誤是:
returned a non zero exit code 1 [Error: Job azure-arc-onboarding terminated with Failed to run CLI command: Error from server (NotFound): namespaces "azure-arc"
not found
System.Management.Automation.RemoteException
ERROR: Unable to read ConfigMap 'azure-clusterconfig' in 'azure-arc' namespace:
Error Response: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"configmaps \"azure-clusterconfig\" not
found","reason":"NotFound","details":{"name":"azure-clusterconfig","kind":"configmaps"},"code":404}
System.Management.Automation.RemoteException
System.Management.Automation.RemoteException
: Job Failed Condition
Enable-AksHciArcConnection
一律會失敗,而且在您執行 Disable-AksHciArcConnection
之後,azure-arc-release 命名空間中有剩餘的秘密。 若要檢查秘密是否存在,您可以執行下列命令,並確定未列出任何秘密:
kubectl get secret -nazure-arc-release sh.helm.release.v1.azure-arc.v1
若要解決此問題,請在執行 Disable-AksHciArcConnection
之後刪除 azure-arc-release 命名空間:
$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName