Usuwanie błędów podczas włączania lub wyłączania usługi Azure Arc w klastrach obciążeń usługi AKS w usłudze AKS z obsługą usługi Arc

Dotyczy: usługa AKS w usłudze Azure Local, AKS w systemie Windows Server

W tym artykule opisano błędy, które mogą wystąpić (i ich obejścia) podczas łączenia lub odłączania klastrów obciążeń usługi AKS z usługą Azure Arc przy użyciu poleceń cmdlet Enable-AksHciArcConnection programu PowerShell i Disable-AksHciArcConnection usługi AKS Arc. W przypadku problemów, które nie zostały omówione w tym artykule, zobacz Rozwiązywanie problemów z platformą Kubernetes z obsługą usługi Arc.

Możesz również otworzyć problem z pomocą techniczną, jeśli żadne z wymienionych obejść nie ma zastosowania.

Błąd: "Nie znaleziono klastra obciążenia o nazwie "my-aks-cluster"

Ten błąd oznacza, że klaster obciążenia nie został utworzony lub niepoprawnie zaklęto nazwę klastra obciążenia.

Uruchom polecenie Get-AksHciCluster , aby upewnić się, że masz poprawną nazwę lub że klaster, z którym chcesz nawiązać połączenie z usługą Arc, istnieje.

Błąd: "System.Management.Automation.RemoteException Uruchamianie procesu dołączania do klastra "azure-arc-onboarding" set..."

Podczas tworzenia klastra obciążenia i łączenia go z platformą Kubernetes z włączoną usługą Arc może wystąpić następujący błąd:

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]

Aby rozwiązać ten problem, zapoznaj się z poniższymi opcjami:

  • Opcja 1. Usuń klaster obciążenia i spróbuj ponownie przy użyciu centrum administracyjnego systemu Windows.
  • Opcja 2. W programie PowerShell sprawdź, czy klaster został pomyślnie utworzony, uruchamiając polecenie Get-AksHciCluster , a następnie użyj polecenia Enable-AksHciArcConnection , aby połączyć klaster z usługą Arc.

Polecenie "Enable-AksHciArcConnection" kończy się niepowodzeniem, jeśli polecenie "Connect-AzAccount" jest używane do logowania się na platformie Azure

W przypadku logowania Connect-AzAccount się do platformy Azure możesz ustawić inną subskrypcję jako domyślny kontekst niż ten, który został podany jako dane wejściowe.Set-AksHciRegistration Po uruchomieniu Enable-AksHciArcConnectionpolecenia polecenie oczekuje subskrypcji używanej w programie Set-AksHciRegistration. Enable-AksHciArcConnection Jednak pobiera domyślny zestaw subskrypcji przy użyciu Connect-AzAccountelementu , a w związku z tym może spowodować błąd.

Aby zapobiec temu błędowi, wykonaj jedną z poniższych opcji:

  • Opcja 1. Uruchom polecenie Set-AksHciRegistration , aby zalogować się do platformy Azure przy użyciu tych samych parametrów (subskrypcji i grupy zasobów) użytych podczas pierwszego uruchomienia polecenia w celu nawiązania połączenia hosta usługi AKS z platformą Azure na potrzeby rozliczeń. Następnie możesz użyć Enable-AksHciArcConnection -Name <ClusterName> wartości domyślnych, a klaster będzie połączony z usługą Arc w ramach subskrypcji rozliczeniowej i grupy zasobów hosta usługi AKS.

  • Opcja 2. Uruchom polecenie Enable-AksHciArcRegistration ze wszystkimi parametrami, subscription, , tenantresource grouplocation, i secret, aby połączyć klaster z usługą Azure Arc w ramach innej subskrypcji i grupy zasobów niż host usługi AKS. Należy również uruchomić polecenie Enable-AksHciArcRegistration , jeśli nie masz wystarczających uprawnień, aby połączyć klaster z usługą Azure Arc przy użyciu konta platformy Azure (na przykład jeśli nie jesteś właścicielem subskrypcji).

Błąd: "Przekroczono limit czasu oczekiwania na warunek"

Ten błąd zwykle wskazuje jeden z następujących problemów:

  • Klastry zostały utworzone na maszynie wirtualnej platformy Azure w środowisku zwirtualizowanym lub wdrożono usługę AKS na platformie Azure Lokalnie na wielu poziomach wirtualizacji.
  • Powolny Internet spowodował przekroczenie limitu czasu.

Jeśli dotyczy Ciebie jeden z powyższych scenariuszy, uruchom polecenie Disable-AksHciArcConnection i spróbuj ponownie nawiązać połączenie. Jeśli powyższy scenariusz nie ma zastosowania do Ciebie, otwórz problem pomocy technicznej dla usługi AKS w usłudze Azure Local.

Błąd: "Nie znaleziono wpisów tajnych "sh.helm.release.v1.azure-arc.v1"

Ten błąd wskazuje, że nie można uzyskać dostępu do serwera interfejsu API Kubernetes.

Spróbuj ponownie uruchomić Disable-AksHciArcConnection polecenie, a następnie przejdź do witryny Azure Portal , aby potwierdzić, że connectedCluster zasób został rzeczywiście usunięty. Możesz również uruchomić polecenie kubectl get ns -A , aby potwierdzić, że przestrzeń nazw, azure-arc, nie istnieje w klastrze.

Błąd: "Połączenie z platformą Azure nie powiodło się. Uruchom polecenie "Set-AksHciRegistration" i spróbuj ponownie"

Ten błąd oznacza, że poświadczenia logowania do platformy Azure wygasły.

Użyj polecenia Set-AksHciRegistration , aby zalogować się na platformie Azure przed ponownym uruchomieniem Enable-AksHciArcConnection polecenia. Podczas ponownego uruchamiania Set-AksHciRegistrationupewnij się, że używasz tej samej subskrypcji i szczegółów grupy zasobów, które zostały użyte podczas pierwszego zarejestrowania hosta usługi AKS na platformie Azure na potrzeby rozliczeń. Jeśli ponownie uruchomisz polecenie z inną subskrypcją lub grupą zasobów, nie zostaną one zarejestrowane. Po ustawieniu subskrypcji i grupy zasobów w Set-AksHciRegistrationsystemie nie można ich zmienić bez odinstalowania usługi AKS Arc.

Błąd: "My-Cluster" nie jest prawidłową nazwą klastra. Nazwy muszą być małe i pasować do wzorca wyrażenia regularnego: '^[a-z0-9][a-z0-9-]*[a-z0-9]$"

Ten błąd wskazuje, że klaster obciążenia nie jest zgodne z konwencją nazewnictwa Platformy Kubernetes.

Jak sugeruje błąd, upewnij się, że nazwa klastra jest mała i pasuje do wzorca wyrażenia regularnego: '^[a-z0-9][a-z0-9-]*[a-z0-9]$".

Błąd: "addons.msft.microsoft "demo-arc-onboarding" już istnieje"

Ten błąd zwykle oznacza, że klaster usługi AKS jest już połączony z platformą Kubernetes z obsługą usługi Arc. Aby potwierdzić, że jest połączony, przejdź do witryny Azure Portal i sprawdź subskrypcję i grupę zasobów podaną podczas uruchamiania Set-AksHciRegistration (jeśli użyto wartości domyślnych) lub Enable-AksHciArcConnection (jeśli nie użyto wartości domyślnych). Możesz również sprawdzić, czy usługa AKS w klastrze lokalnym platformy Azure jest połączona z platformą Azure, uruchamiając polecenie interfejsu wiersza polecenia platformy az connectedk8s show Azure. Jeśli klaster obciążenia nie jest widoczny, uruchom polecenie Disable-AksHciArcConnection i spróbuj ponownie.

Błąd: "autorest/azure: Usługa zwróciła błąd. Status=404 Code="ResourceNotFound"..."

Ten błąd oznacza, że platforma Azure nie może odnaleźć zasobu usługi Azure Resource Manager skojarzonego connectedCluster z klastrem:

"Autorest/azure: Usługa zwróciła błąd. Status=404 Code="ResourceNotFound" Message="Nie odnaleziono zasobu "Microsoft.Kubernetes/connectedClusters/my-workload-cluster" w grupie zasobów "AKS-HCI2". Aby uzyskać więcej informacji, przejdź do https://aka.ms/ARMResourceNotFoundFix"]"

Ten błąd może wystąpić, jeśli:

  • Podczas uruchamiania polecenia cmdlet podano nieprawidłową grupę Disable-AksHciArcConnection zasobów lub subskrypcję.
  • Zasób został ręcznie usunięty w witrynie Azure Portal.
  • Usługa Azure Resource Manager nie może odnaleźć zasobu platformy Azure.

Aby rozwiązać ten błąd, jak wskazano w komunikacie o błędzie, zobacz Rozwiązywanie problemów z błędami nie odnalezionych zasobów.

Błąd: "Dezinstalacja arc dodatków klastra: nie znaleziono przestrzeni nazw "azure-arc"

Ten błąd zwykle oznacza, że agenci usługi Arc już odinstalowali z klastra obciążenia lub ręcznie usunął azure-arc przestrzeń nazw przy użyciu kubectl polecenia .

Przejdź do witryny Azure Portal , aby potwierdzić, że nie masz żadnych ujawnionych zasobów. Na przykład sprawdź, czy nie widzisz connectedCluster zasobu w subskrypcji i grupie zasobów.

Błąd: "Subskrypcja platformy Azure nie jest prawidłowo skonfigurowana"

Ten problem może wystąpić, jeśli nie skonfigurowano subskrypcji platformy Azure z dostawcami zasobów Kubernetes z obsługą usługi Arc. Obecnie sprawdzamy, czy Microsoft.Kubernetes i Microsoft.KubernetesConfiguration są skonfigurowane.

Aby uzyskać więcej informacji na temat włączania tych dostawców zasobów, zobacz Rejestrowanie dostawców dla platformy Kubernetes z obsługą usługi Arc.

Błąd: "Nie można odczytać obiektu ConfigMap "azure-clusterconfig" w przestrzeni nazw "azure-arc"

Ten problem może wystąpić podczas próby ponownego włączenia połączenia usługi Arc w klastrze usługi AKS po wyłączeniu istniejącego połączenia. Błąd jest spowodowany zmianą przestrzeni nazw, w której są przechowywane wpisy tajne usługi Azure Arc.

Kroki prowadzące do błędu to:

  1. Połącz klaster obciążenia z usługą Azure Arc za pomocą polecenia Enable-AksHciArcConnection -name $clusterName.
  2. Odłącz klaster od usługi Azure Arc: Disable-AksHciArcConnection -name $clusterName.
  3. Połącz klaster obciążenia z usługą Azure Arc za pomocą tego polecenia ponownie: Enable-AksHciArcConnection -name $clusterName.

Błąd:

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 zawsze kończy się niepowodzeniem, a po uruchomieniu Disable-AksHciArcConnectionpolecenia w przestrzeni nazw azure-arc-release znajduje się pozostały wpis tajny. Aby sprawdzić, czy wpis tajny istnieje, możesz uruchomić następujące polecenie i upewnić się, że żaden wpis tajny nie znajduje się na liście:

kubectl get secret -nazure-arc-release sh.helm.release.v1.azure-arc.v1

Aby obejść ten problem, usuń przestrzeń nazw azure-arc-release po uruchomieniu polecenia Disable-AksHciArcConnection:

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