Felsöka plattformsproblem för Azure Arc-aktiverade Kubernetes-kluster
Det här dokumentet innehåller felsökningsguider för problem med Azure Arc-aktiverade Kubernetes-anslutningar, behörigheter och agenter. Den innehåller även felsökningsguider för Azure GitOps, som kan användas i antingen Azure Arc-aktiverade Kubernetes- eller Azure Kubernetes Service-kluster (AKS).
Hjälp med att felsöka problem som rör tillägg, till exempel GitOps (Flux v2), Azure Monitor Container Insights, Open Service Mesh, finns i Felsöka tilläggsproblem för Azure Arc-aktiverade Kubernetes-kluster.
Azure CLI
Innan du använder az connectedk8s
eller az k8s-configuration
CLI-kommandon kontrollerar du att Azure CLI är inställt på att fungera mot rätt Azure-prenumeration.
az account set --subscription 'subscriptionId'
az account show
Om du ser ett fel, till exempel cli.azext_connectedk8s.custom: Failed to download and install kubectl
, kör az aks install-cli --install-location ~/.azure/kubectl-client/kubectl
du innan du försöker köra az connectedk8s connect
igen. Det här kommandot installerar kubectl-klienten, vilket krävs för att kommandot ska fungera.
Azure Arc-agenter
Alla agenter för Azure Arc-aktiverade Kubernetes distribueras som poddar i azure-arc
namnområdet. Alla poddar ska köras och skicka sina hälsokontroller.
Kontrollera först versionen av Azure Arc Helm Chart:
$ helm --namespace default status azure-arc
NAME: azure-arc
LAST DEPLOYED: Fri Apr 3 11:13:10 2020
NAMESPACE: default
STATUS: deployed
REVISION: 5
TEST SUITE: None
Om Helm Chart-versionen inte hittas eller saknas kan du försöka ansluta klustret till Azure Arc igen.
Om Helm Chart-versionen finns med STATUS: deployed
kontrollerar du statusen för agenterna med hjälp kubectl
av :
$ kubectl -n azure-arc get deployments,pods
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cluster-metadata-operator 1/1 1 1 3d19h
deployment.apps/clusterconnect-agent 1/1 1 1 3d19h
deployment.apps/clusteridentityoperator 1/1 1 1 3d19h
deployment.apps/config-agent 1/1 1 1 3d19h
deployment.apps/controller-manager 1/1 1 1 3d19h
deployment.apps/extension-events-collector 1/1 1 1 3d19h
deployment.apps/extension-manager 1/1 1 1 3d19h
deployment.apps/flux-logs-agent 1/1 1 1 3d19h
deployment.apps/kube-aad-proxy 1/1 1 1 3d19h
deployment.apps/metrics-agent 1/1 1 1 3d19h
deployment.apps/resource-sync-agent 1/1 1 1 3d19h
NAME READY STATUS RESTARTS AGE
pod/cluster-metadata-operator-74747b975-9phtz 2/2 Running 0 3d19h
pod/clusterconnect-agent-cf4c7849c-88fmf 3/3 Running 0 3d19h
pod/clusteridentityoperator-79bdfd945f-pt2rv 2/2 Running 0 3d19h
pod/config-agent-67bcb94b7c-d67t8 1/2 Running 0 3d19h
pod/controller-manager-559dd48b64-v6rmk 2/2 Running 0 3d19h
pod/extension-events-collector-85f4fbff69-55zmt 2/2 Running 0 3d19h
pod/extension-manager-7c7668446b-69gps 3/3 Running 0 3d19h
pod/flux-logs-agent-fc7c6c959-vgqvm 1/1 Running 0 3d19h
pod/kube-aad-proxy-84d668c44b-j457m 2/2 Running 0 3d19h
pod/metrics-agent-58fb8554df-5ll67 2/2 Running 0 3d19h
pod/resource-sync-agent-dbf5db848-c9lg8 2/2 Running 0 3d19h
Alla poddar ska visas STATUS
som Running
med antingen 3/3
eller 2/2
under READY
kolumnen. Hämta loggar och beskriv poddarna som returnerar en Error
eller CrashLoopBackOff
. Om några poddar har fastnat i Pending
tillståndet kanske det inte finns tillräckligt med resurser på klusternoder. Genom att skala upp klustret kan de här poddarna övergå till Running
tillstånd.
Resursetablering misslyckades/Tidsgränsfel för tjänsten
Om du ser dessa fel kontrollerar du Azure-statusen för att se om det finns några aktiva händelser som påverkar statusen för Den Azure Arc-aktiverade Kubernetes-tjänsten. I så fall väntar du tills tjänsthändelsen har lösts och försöker sedan registrera igen när du har raderat den befintliga anslutna klusterresursen. Om det inte finns några tjänsthändelser och du fortsätter att stöta på problem när du registrerar dig öppnar du en supportbegäran så att vi kan undersöka problemet.
Fel vid överförbrukningsanspråk
Om du får ett överförbrukningsanspråk kontrollerar du att tjänstens huvudnamn inte ingår i fler än 200 Microsoft Entra-grupper. Om så är fallet måste du skapa och använda ett annat huvudnamn för tjänsten som inte är medlem i fler än 200 grupper, eller ta bort det ursprungliga tjänstens huvudnamn från vissa av dess grupper och försöka igen.
Ett överförbrukningsanspråk kan också inträffa om du har konfigurerat en utgående proxymiljö utan att tillåta slutpunkten https://<region>.obo.arc.azure.com:8084/
för utgående trafik.
Om inget av dessa gäller öppnar du en supportbegäran så att vi kan undersöka problemet.
Problem vid anslutning av Kubernetes-kluster till Azure Arc
För att ansluta kluster till Azure Arc krävs åtkomst till en Azure-prenumeration och cluster-admin
åtkomst till ett målkluster. Om du inte kan nå klustret, eller om du inte har tillräckliga behörigheter, misslyckas anslutningen av klustret till Azure Arc. Kontrollera att du har uppfyllt alla förutsättningar för att ansluta ett kluster.
Dricks
En visuell guide för felsökning av anslutningsproblem finns i Diagnostisera anslutningsproblem för Arc-aktiverade Kubernetes-kluster.
DNS-matchningsfel
Mer information om problem som rör DNS-matchning i klustret finns i Felsöka DNS-matchning.
Problem med utgående nätverksanslutning
Problem med utgående nätverksanslutningar från klustret kan uppstå av olika orsaker. Kontrollera först att alla nätverkskrav har uppfyllts.
Om du stöter på anslutningsproblem och klustret ligger bakom en utgående proxyserver kontrollerar du att du har skickat proxyparametrar under registreringen av klustret och att proxyn är korrekt konfigurerad. Mer information finns i Ansluta med en utgående proxyserver.
Du kan se ett fel som liknar följande:
An exception has occurred while trying to execute the cluster diagnostic checks in the cluster. Exception: Unable to pull cluster-diagnostic-checks helm chart from the registry 'mcr.microsoft.com/azurearck8s/helmchart/stable/clusterdiagnosticchecks:0.1.2': Error: failed to do request: Head "https://mcr.microsoft.com/v2/azurearck8s/helmchart/stable/clusterdiagnosticchecks/manifests/0.1.2": dial tcp xx.xx.xx.219:443: i/o timeout
Det här felet uppstår när https://k8connecthelm.azureedge.net
slutpunkten blockeras. Se till att nätverket tillåter anslutning till den här slutpunkten och uppfyller alla andra nätverkskrav.
Det går inte att hämta MSI-certifikatet
Problem med att hämta MSI-certifikatet beror vanligtvis på nätverksproblem. Kontrollera att alla nätverkskrav har uppfyllts och försök sedan igen.
Otillräckliga klusterbehörigheter
Om den angivna kubeconfig-filen inte har tillräcklig behörighet för att installera Azure Arc-agenterna returnerar Azure CLI-kommandot ett fel: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope
Lös problemet genom att se till att användaren som ansluter klustret till Azure Arc har tilldelats cluster-admin
rollen.
Det går inte att ansluta ett OpenShift-kluster till Azure Arc
Om az connectedk8s connect
tidsgränsen är ute och misslyckas när ett OpenShift-kluster ansluts till Azure Arc:
Kontrollera att OpenShift-klustret uppfyller kraven för versionen: 4.5.41+ eller 4.6.35+ eller 4.7.18+.
Innan du kör
az connectedk8s connnect
kör du det här kommandot i klustret:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Tidsgränser för installation
För att ansluta ett Kubernetes-kluster till Azure Arc-aktiverade Kubernetes krävs installation av Azure Arc-agenter i klustret. Om klustret körs via en långsam Internetanslutning kan containeravbildningshämtningen för agenter ta längre tid än Azure CLI-tidsgränserna.
Helm-timeoutfel
Du kan se felet Unable to install helm release: Error: UPGRADE Failed: time out waiting for the condition
. Lös problemet genom att pröva följande steg:
Kör följande kommando:
kubectl get pods -n azure-arc
Kontrollera om
clusterconnect-agent
poddarna ellerconfig-agent
visarcrashloopbackoff
, eller om inte alla containrar körs:NAME READY STATUS RESTARTS AGE cluster-metadata-operator-664bc5f4d-chgkl 2/2 Running 0 4m14s clusterconnect-agent-7cb8b565c7-wklsh 2/3 CrashLoopBackOff 0 1m15s clusteridentityoperator-76d645d8bf-5qx5c 2/2 Running 0 4m15s config-agent-65d5df564f-lffqm 1/2 CrashLoopBackOff 0 1m14s
Om den
azure-identity-certificate
inte finns har den systemtilldelade hanterade identiteten inte installerats.kubectl get secret -n azure-arc -o yaml | grep name:
name: azure-identity-certificate
Lös problemet genom att prova att ta bort Arc-distributionen genom att köra
az connectedk8s delete
kommandot och installera om det. Om problemet kvarstår kan det vara ett problem med proxyinställningarna. I så fall kan du prova att ansluta klustret till Azure Arc via en proxy för att ansluta klustret till Arc via en proxy. Kontrollera också att alla nätverkskrav har uppfyllts .clusterconnect-agent
Om poddarna ochconfig-agent
körs, menkube-aad-proxy
podden saknas, kontrollerar du poddsäkerhetsprinciperna. Den här podden använderazure-arc-kube-aad-proxy-sa
tjänstkontot, som inte har administratörsbehörighet men som kräver behörighet att montera värdsökvägen.kube-aad-proxy
Om podden har fastnat iContainerCreating
tillståndet kontrollerar du om kube-aad-proxy-certifikatet har laddats ned till klustret.kubectl get secret -n azure-arc -o yaml | grep name:
name: kube-aad-proxy-certificate
Om certifikatet saknas tar du bort distributionen och försöker registrera igen med ett annat namn för klustret. Om problemet kvarstår öppnar du en supportbegäran.
CryptoHash-modulfel
När du försöker registrera Kubernetes-kluster till Azure Arc-plattformen kan den lokala miljön (till exempel klientkonsolen) returnera följande felmeddelande:
Cannot load native module 'Crypto.Hash._MD5'
Ibland kan beroende moduler inte laddas ned när tilläggen connectedk8s
läggs till och k8s-configuration
via Azure CLI eller Azure PowerShell. Åtgärda problemet genom att manuellt ta bort och sedan lägga till tilläggen i den lokala miljön.
Om du vill ta bort tilläggen använder du:
az extension remove --name connectedk8s
az extension remove --name k8s-configuration
Om du vill lägga till tilläggen använder du:
az extension add --name connectedk8s
az extension add --name k8s-configuration
Problem med klusteranslutning
Om klustret finns bakom en utgående proxy eller brandvägg kontrollerar du att websocket-anslutningar är aktiverade för *.servicebus.windows.net
, vilket krävs specifikt för funktionen Klusteranslutning . Se dessutom till att du använder den senaste versionen av connectedk8s
Azure CLI-tillägget om du har problem med att använda klusteranslutning.
clusterconnect-agent
Om poddarna och kube-aad-proxy
saknas är funktionen för klusteranslutning troligen inaktiverad i klustret. I så fall az connectedk8s proxy
misslyckas det med att upprätta en session med klustret, och du kan se ett fel vid läsning Cannot connect to the hybrid connection because no agent is connected in the target arc resource.
Lös det här felet genom att aktivera funktionen för klusteranslutning i klustret:
az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP
Mer information finns i Använda klusteranslutning för att ansluta på ett säkert sätt till Azure Arc-aktiverade Kubernetes-kluster.
Aktivera anpassade platser med tjänstens huvudnamn
När du ansluter klustret till Azure Arc eller aktiverar anpassade platser i ett befintligt kluster kan följande varning visas:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
Den här varningen inträffar när du använder ett huvudnamn för tjänsten för att logga in på Azure och tjänstens huvudnamn inte har de behörigheter som krävs. Följ dessa steg för att undvika det här felet:
Logga in på Azure CLI med ditt användarkonto. Hämta objekt-ID:t för Microsoft Entra-programmet som används av Azure Arc-tjänsten:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
Logga in på Azure CLI med tjänstens huvudnamn.
<objectId>
Använd värdet från föregående steg för att aktivera anpassade platser i klustret:- Om du vill aktivera anpassade platser när du ansluter klustret till Arc kör du
az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
- Om du vill aktivera anpassade platser i ett befintligt Azure Arc-aktiverat Kubernetes-kluster kör du
az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations
- Om du vill aktivera anpassade platser när du ansluter klustret till Arc kör du
Nästa steg
- Få en visuell genomgång av hur du diagnostiserar anslutningsproblem.
- Visa felsökningstips som rör klustertillägg.