Устранение ошибок при включении или отключении Azure Arc в кластерах рабочих нагрузок AKS в AKS, включенных Arc

Область применения: AKS в локальной среде Azure, AKS на Windows Server

В этой статье описаны ошибки, которые могут возникнуть (и их обходные пути) при подключении или отключении кластеров рабочих нагрузок AKS к Azure Arc с помощью командлетов Enable-AksHciArcConnection PowerShell и Disable-AksHciArcConnection в AKS Arc. Сведения о проблемах, которые не рассматриваются в этой статье, см. в разделе "Устранение неполадок с поддержкой Arc Kubernetes".

Вы также можете открыть проблему поддержки, если к вам не применяются ни один из перечисленных обходных решений.

Ошибка: "Не найден кластер рабочей нагрузки с именем my-aks-cluster"

Эта ошибка означает, что вы не создали кластер рабочей нагрузки или неправильно указали имя кластера рабочей нагрузки.

Запустите Get-AksHciCluster , чтобы убедиться, что у вас есть правильное имя или кластер, который требуется подключить к Arc.

Ошибка: "System.Management.Automation.RemoteException Starting onboarding Process Cluster "azure-arc-onboarding" set..."

Следующая ошибка может возникать при использовании Windows Admin Center для создания кластера рабочей нагрузки и подключения его к Kubernetes с поддержкой Arc:

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.
  • Вариант 2. В PowerShell проверьте, успешно ли создан кластер, выполнив команду Get-AksHciCluster , а затем используйте Enable-AksHciArcConnection для подключения кластера к Arc.

Параметр Enable-AksHciArcConnection завершается ошибкой, если для входа в Azure используется connect-AzAccount.

Connect-AzAccount При входе в Azure можно задать другую подписку в качестве контекста по умолчанию, чем в качестве входных данныхSet-AksHciRegistration. После этого Enable-AksHciArcConnectionкоманда ожидает, что подписка используется в Set-AksHciRegistration. Однако возвращает набор подписок по умолчанию с помощью Connect-AzAccountи, следовательно, Enable-AksHciArcConnection может привести к ошибке.

Чтобы предотвратить эту ошибку, выполните один из следующих вариантов:

  • Вариант 1. Выполните Set-AksHciRegistration вход в Azure с теми же параметрами (подпиской и группой ресурсов), которые вы использовали при первом запуске команды для подключения узла AKS к Azure для выставления счетов. Затем можно использовать Enable-AksHciArcConnection -Name <ClusterName> со значениями по умолчанию, а кластер будет подключен к Arc в подписке на выставление счетов узла AKS и группе ресурсов.

  • Вариант 2. Выполните все Enable-AksHciArcRegistration параметры, subscription, , resource groupиlocationtenantsecret, чтобы подключить кластер к Azure Arc в другой подписке и группе ресурсов, отличной от узла AKS. Также следует запустить Enable-AksHciArcRegistration , если у вас недостаточно разрешений для подключения кластера к Azure Arc с помощью учетной записи Azure (например, если вы не являетесь владельцем подписки).

Ошибка: "Время ожидания условия"

Эта ошибка обычно указывает на одну из следующих проблем:

  • Кластеры были созданы на виртуальной машине Azure в виртуализированной среде или развернуты AKS в Azure Local на нескольких уровнях виртуализации.
  • Медленный интернет вызвал время ожидания.

Если к вам применяется один из описанных выше сценариев, выполните команду Disable-AksHciArcConnection и повторите попытку подключения. Если приведенный выше сценарий не применяется к вам, откройте проблему поддержки AKS в локальной среде Azure.

Ошибка: "Секреты "sh.helm.release.v1.azure-arc.v1" не найден"

Эта ошибка означает, что не удалось достичь сервера API Kubernetes.

Попробуйте выполнить Disable-AksHciArcConnection команду еще раз, а затем перейдите к портал Azure, чтобы убедиться, что ресурс connectedCluster был удален. Вы также можете запустить kubectl get ns -A , чтобы убедиться, azure-arcчто пространство имен не существует в кластере.

Ошибка: "Сбой подключения к Azure. Выполните команду Set-AksHciRegistration и повторите попытку".

Эта ошибка означает, что срок действия учетных данных входа в Azure истек.

Используйте Set-AksHciRegistration для входа в Azure перед выполнением Enable-AksHciArcConnection команды еще раз. При повторном запуске Set-AksHciRegistrationубедитесь, что вы используете те же сведения о подписке и группе ресурсов, которые вы использовали при первой регистрации узла AKS в Azure для выставления счетов. При повторном выполнении команды с другой подпиской или группой ресурсов они не будут зарегистрированы. После установки 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 уже подключен к Kubernetes с поддержкой Arc. Чтобы подтвердить подключение, перейдите к портал Azure и проверьте подписку и группу ресурсов, указанную при выполнении Set-AksHciRegistration (если вы использовали значения по умолчанию) или Enable-AksHciArcConnection (если не использовали значения по умолчанию). Вы также можете подтвердить, подключен ли akS в локальном кластере Azure к Azure, выполнив az connectedk8s show команду Azure CLI. Если кластер рабочей нагрузки не отображается, запустите Disable-AksHciArcConnection и повторите попытку.

Ошибка: "autorest/azure: служба вернула ошибку. Status=404 Code="ResourceNotFound"..."

Эта ошибка означает, что Azure не может найти ресурс Azure Resource Manager, связанный с кластером connectedCluster :

"Autorest/azure: служба вернула ошибку. Status=404 Code="ResourceNotFound" Message="Ресурс "Microsoft.Kubernetes/connectedClusters/my-workload-cluster" в группе ресурсов "AKS-HCI2" не найден. Дополнительные сведения см. в https://aka.ms/ARMResourceNotFoundFix"статье ;]"

Эта ошибка может возникнуть, если:

  • При выполнении командлета вы предоставили неправильную группу ресурсов или подписку Disable-AksHciArcConnection .
  • Вы вручную удалили ресурс в портал Azure.
  • Azure Resource Manager не может найти ресурс Azure.

Чтобы устранить эту ошибку, как указано в сообщении об ошибке, см . сведения об устранении ошибок, не найденных ресурсом.

Ошибка: "Ошибка удаления кластерных надстроек arc: пространства имен "azure-arc" не найдены"

Эта ошибка обычно означает, что агенты Arc уже удалены из кластера рабочей нагрузки или вы вручную удалили azure-arc пространство имен с помощью kubectl команды.

Перейдите к портал Azure, чтобы убедиться, что у вас нет утечки ресурсов. Например, убедитесь, что ресурс не отображается connectedCluster в подписке и группе ресурсов.

Ошибка: "Подписка Azure неправильно настроена"

Эта проблема может возникнуть, если вы не настроили подписку Azure с помощью поставщиков ресурсов Kubernetes с поддержкой Arc. В настоящее время мы проверяем, что Microsoft.Kubernetes и Microsoft.KubernetesConfiguration настроены.

Дополнительные сведения о включении этих поставщиков ресурсов см. в разделе "Регистрация поставщиков для Kubernetes с поддержкой Arc".

Ошибка: "Не удается прочитать ConfigMap "azure-clusterconfig" в пространстве имен Azure-arc.

Эта проблема возникает при попытке повторного включения подключения Arc в кластере AKS после отключения существующего подключения. Ошибка возникает из-за изменения пространства имен, в котором хранятся секреты Azure Arc.

Ниже приведены шаги, которые приводят к ошибке:

  1. Подключите кластер рабочей нагрузки к Azure Arc с Enable-AksHciArcConnection -name $clusterNameпомощью .
  2. Отключите кластер от Azure Arc: Disable-AksHciArcConnection -name $clusterName
  3. Снова подключите кластер рабочей нагрузки к 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

Чтобы обойти эту проблему, удалите пространство имен azure-arc-release после выполнения Disable-AksHciArcConnection:

$clusterName = "<name of cluster>"
Get-AksHciCredential -name $clusterName
kubectl delete namespace azure-arc-release
Disable-AksHciArcConnection -name $clusterName
Enable-AksHciArcConnection -name $clusterName