解决在 Arc 启用的 AKS 中的 AKS 工作负载群集上启用或禁用 Azure Arc 时出现的错误

适用于:Azure Stack HCI 上的 AKS、Windows Server 上的 AKS

本文介绍使用 PowerShell cmdlet 在 AKS Arc 中使用 PowerShell cmdlet Enable-AksHciArcConnection 和 Disable-AksHciArcConnectionAKS 工作负荷群集连接到 Azure Arc 或断开其连接时可能 (遇到的错误及其解决方法) 。有关本文未涉及的问题,请参阅 排查已启用 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:使用你在首次运行命令将 AKS 主机连接到 Azure 进行计费时使用的相同参数(订阅和资源组)运行 Set-AksHciRegistration 登录到 Azure。 然后,可将 Enable-AksHciArcConnection -Name <ClusterName> 与默认值一起使用,此时群集将连接到对订阅和资源组进行计费的 AKS 主机下的 Arc。

  • 选项 2:使用所有参数(subscriptionresource grouplocationtenantsecret)运行 Enable-AksHciArcRegistration,将群集连接到其他订阅和资源组(而非 AKS 主机)下的 Azure Arc。 如果你没有足够的权限来使用 Azure 帐户将群集连接到 Azure(例如,你不是订阅所有者),那么还应运行 Enable-AksHciArcRegistration

错误:“等待条件超时”

此错误通常表示出现下述问题之一:

  • 群集是在虚拟化环境中的 Azure VM 中创建的,或者你在多个虚拟化级别上部署 Azure Stack HCI 上的 AKS。
  • Internet 速度缓慢导致超时。

如果上述方案之一适用于你,请运行 Disable-AksHciArcConnection,然后重试连接。 如果上述方案不适用于你,请提出 Azure Stack HCI 上的 AKS 支持问题

错误:“找不到机密”sh.helm.release.v1.azure-arc.v1”

此错误表示无法访问你的 Kubernetes API 服务器。

请尝试再次运行 Disable-AksHciArcConnection 命令,然后转到 Azure 门户来确认实际已删除 connectedCluster 资源。 还可运行 kubectl get ns -A 来确认群集上没有命名空间 azure-arc

错误:“更新代理以启用功能时出错”

如果在连接到 Azure Arc 的 AKS 群集上启用 自定义位置和 群集 连接 功能,可能会看到以下错误:

Error while updating agents for enabling features. Please run "kubectl get pods -n azure-arc" to check the pods in case of timeout error. Error: Error: UPGRADE FAILED: timed out waiting for the condition

这是 9 月版中的已知问题,以在 10 月版中得到修复。 使用 10 月版本创建并使用 Enable-AksHciArcConnection 连接到 Arc 的新 AKS 群集不会遇到此问题。 将 AKS Arc 部署更新到 10 月版本,然后将现有群集重新连接到 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 Stack HCI 上的 AKS 群集是否已连接到 Azure。 如果你看不到工作负载群集,请运行 Disable-AksHciArcConnection,然后重试。

错误:“autorest/azure:服务返回错误。 Status=404 Code=“ResourceNotFound”...'

以下错误表示 Azure 找不到与你的群集关联的 connectedCluster ARM 资源:

autorest/azure: Service returned an error. Status=404 Code="ResourceNotFound" Message="The Resource 'Microsoft.Kubernetes/connectedClusters/my-workload-cluster' under resource group 'AKS-HCI2' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"]

在以下情况下,你可能会遇到此错误:

  • 你在运行 Disable-AksHciArcConnection cmdlet 时提供了错误的资源组或订阅。
  • 你在 Azure 门户上手动删除了资源。
  • ARM 找不到你的 Azure 资源。

要解决此错误,如错误消息中所述,请参阅解决“找不到资源”错误

错误:“群集加载项 arc 卸载错误:找不到命名空间”azure-arc”

此错误通常表示你已从工作负载群集卸载 Arc 代理,或者你已使用 kubectl 命令手动删除 azure-arc 命名空间。

请转到 Azure 门户,确认你的资源均未泄露。 例如,请验证你在订阅和资源组中看不到 connectedCluster 资源。

错误:“未正确配置 Azure 订阅”

如果尚未使用已启用 Arc 的 Kubernetes 资源提供程序配置 Azure 订阅,则可能会遇到此问题。 我们当前检查确认 Microsoft.KubernetesMicrosoft.KubernetesConfiguration 已配置。

有关启用这些资源提供程序的详细信息,请参阅 注册已启用 Arc 的 Kubernetes 的提供程序