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-AksHciArcConnection
polecenia polecenie oczekuje subskrypcji używanej w programie Set-AksHciRegistration
. Enable-AksHciArcConnection
Jednak pobiera domyślny zestaw subskrypcji przy użyciu Connect-AzAccount
elementu , 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
, ,tenant
resource group
location
, isecret
, 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ć polecenieEnable-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-AksHciRegistration
upewnij 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-AksHciRegistration
systemie 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:
- Połącz klaster obciążenia z usługą Azure Arc za pomocą polecenia
Enable-AksHciArcConnection -name $clusterName
. - Odłącz klaster od usługi Azure Arc:
Disable-AksHciArcConnection -name $clusterName
. - 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-AksHciArcConnection
polecenia 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