Platformproblemen oplossen voor Kubernetes-clusters met Azure Arc
Dit document bevat handleidingen voor het oplossen van problemen met Kubernetes-connectiviteit, machtigingen en agents met Azure Arc. Het bevat ook handleidingen voor probleemoplossing voor Azure GitOps, die kunnen worden gebruikt in Azure Arc-kubernetes- of Azure Kubernetes Service-clusters (AKS).
Voor hulp bij het oplossen van problemen met betrekking tot extensies, zoals GitOps (Flux v2), Azure Monitor Container Insights, Open Service Mesh, raadpleegt u Extensieproblemen oplossen voor Kubernetes-clusters met Azure Arc.
Azure-CLI
Voordat u az connectedk8s
cli- of az k8s-configuration
CLI-opdrachten gebruikt, moet u ervoor zorgen dat Azure CLI is ingesteld om te werken met het juiste Azure-abonnement.
az account set --subscription 'subscriptionId'
az account show
Als er een fout wordt weergegeven, bijvoorbeeld cli.azext_connectedk8s.custom: Failed to download and install kubectl
, voert u deze uit az aks install-cli --install-location ~/.azure/kubectl-client/kubectl
voordat u het opnieuw probeert uit te voeren az connectedk8s connect
. Met deze opdracht wordt de kubectl-client geïnstalleerd. Deze is vereist om de opdracht te laten werken.
Azure Arc-agents
Alle agents voor Kubernetes met Azure Arc worden geïmplementeerd als pods in de azure-arc
naamruimte. Alle pods moeten worden uitgevoerd en hun statuscontroles worden doorgegeven.
Controleer eerst de azure Arc Helm Chart-release:
$ 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
Als de Helm-grafiekrelease niet wordt gevonden of ontbreekt, probeert u het cluster opnieuw te verbinden met Azure Arc .
Als de Helm-grafiekrelease aanwezig is, STATUS: deployed
controleert u de status van de agents met behulp van kubectl
:
$ 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
Alle pods moeten worden weergegeven STATUS
als Running
bij 3/3
of 2/2
onder de READY
kolom. Haal logboeken op en beschrijf de pods die een Error
of CrashLoopBackOff
. Als er pods vastzitten in Pending
de status, zijn er mogelijk onvoldoende resources op clusterknooppunten. Als u uw cluster omhoog schaalt, kunnen deze pods worden overgestapt op Running
status.
Resource-inrichting mislukt/time-outfout voor service
Als u deze fouten ziet, controleert u de Azure-status om te zien of er actieve gebeurtenissen zijn die van invloed zijn op de status van de Kubernetes-service met Azure Arc. Als dat het geval is, wacht u totdat de service-gebeurtenis is opgelost en voert u de onboarding opnieuw uit nadat u de bestaande verbonden clusterresource hebt verwijderd. Als er geen service-gebeurtenissen zijn en u problemen blijft ondervinden tijdens het onboarden, opent u een ondersteuningsaanvraag zodat we het probleem kunnen onderzoeken.
Fout over overschrijdingsclaims
Als u een overschrijdingsclaim ontvangt, moet u ervoor zorgen dat uw service-principal geen deel uitmaakt van meer dan 200 Microsoft Entra-groepen. Als dit het geval is, moet u een andere service-principal maken en gebruiken die geen lid is van meer dan 200 groepen, of de oorspronkelijke service-principal uit sommige groepen verwijderen en het opnieuw proberen.
Er kan ook een overschrijdingsclaim optreden als u een uitgaande proxyomgeving hebt geconfigureerd zonder het eindpunt https://<region>.obo.arc.azure.com:8084/
voor uitgaand verkeer toe te staan.
Als geen van deze aanvragen van toepassing is, opent u een ondersteuningsaanvraag zodat we het probleem kunnen onderzoeken.
Problemen bij het verbinden van Kubernetes-clusters met Azure Arc
Voor het verbinden van clusters met Azure Arc is toegang tot een Azure-abonnement en cluster-admin
toegang tot een doelcluster vereist. Als u het cluster niet kunt bereiken of als u onvoldoende machtigingen hebt, mislukt het verbinden van het cluster met Azure Arc. Zorg ervoor dat u aan alle vereisten hebt voldaan om een cluster te verbinden.
Tip
Zie Verbindingsproblemen vaststellen voor Kubernetes-clusters met Arc voor een visuele handleiding voor het oplossen van verbindingsproblemen.
Problemen met DNS-resolutie
Problemen met uitgaande netwerkconnectiviteit
Problemen met uitgaande netwerkconnectiviteit van het cluster kunnen om verschillende redenen optreden. Controleer eerst of aan alle netwerkvereisten is voldaan.
Als er verbindingsproblemen optreden en uw cluster zich achter een uitgaande proxyserver bevindt, controleert u of u proxyparameters hebt doorgegeven tijdens de onboarding van uw cluster en of de proxy correct is geconfigureerd. Zie Verbinding maken met een uitgaande proxyserver voor meer informatie.
Mogelijk ziet u een fout die vergelijkbaar is met de volgende:
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
Deze fout treedt op wanneer het https://k8connecthelm.azureedge.net
eindpunt wordt geblokkeerd. Zorg ervoor dat uw netwerk connectiviteit met dit eindpunt toestaat en voldoet aan alle andere netwerkvereisten.
Kan MSI-certificaat niet ophalen
Problemen met het ophalen van het MSI-certificaat worden meestal veroorzaakt door netwerkproblemen. Controleer of aan alle netwerkvereisten is voldaan en probeer het opnieuw.
Onvoldoende clustermachtigingen
Als het opgegeven kubeconfig-bestand niet over voldoende machtigingen beschikt om de Azure Arc-agents te installeren, retourneert de Azure CLI-opdracht een fout: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope
U kunt dit probleem oplossen door ervoor te zorgen dat de gebruiker die het cluster verbindt met Azure Arc de cluster-admin
rol heeft toegewezen.
Kan OpenShift-cluster niet verbinden met Azure Arc
Als az connectedk8s connect
er een time-out optreedt en mislukt bij het verbinden van een OpenShift-cluster met Azure Arc:
Zorg ervoor dat het OpenShift-cluster voldoet aan de versievereisten: 4.5.41+ of 4.6.35+ of 4.7.18+.
Voordat u deze opdracht uitvoert
az connectedk8s connnect
, voert u deze opdracht uit op het cluster:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Time-outs voor installatie
Voor het verbinden van een Kubernetes-cluster met Kubernetes met Azure Arc is installatie van Azure Arc-agents in het cluster vereist. Als het cluster wordt uitgevoerd via een trage internetverbinding, kan het ophalen van de containerinstallatiekopie voor agents langer duren dan de Time-outs van de Azure CLI.
Helm-time-outfout
Mogelijk ziet u de fout Unable to install helm release: Error: UPGRADE Failed: time out waiting for the condition
. Volg deze stappen om dit probleem op te lossen:
Voer de volgende opdracht uit:
kubectl get pods -n azure-arc
Controleer of de
clusterconnect-agent
config-agent
pods worden weergegevencrashloopbackoff
of als niet alle containers worden uitgevoerd: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
Als de
azure-identity-certificate
identiteit niet aanwezig is, is de door het systeem toegewezen beheerde identiteit niet geïnstalleerd.kubectl get secret -n azure-arc -o yaml | grep name:
name: azure-identity-certificate
U kunt dit probleem oplossen door de Arc-implementatie te verwijderen door de
az connectedk8s delete
opdracht uit te voeren en opnieuw te installeren. Als het probleem zich blijft voordoen, kan het een probleem zijn met uw proxy-instellingen. Probeer in dat geval uw cluster te verbinden met Azure Arc via een proxy om uw cluster te verbinden met Arc via een proxy. Controleer ook of aan alle netwerkvereisten is voldaan.Als de
clusterconnect-agent
config-agent
pods actief zijn, maar dekube-aad-proxy
pod ontbreekt, controleert u het beveiligingsbeleid voor uw pods. Deze pod maakt gebruik van hetazure-arc-kube-aad-proxy-sa
serviceaccount, dat geen beheerdersmachtigingen heeft, maar vereist wel de machtiging om het hostpad te koppelen.Als de
kube-aad-proxy
pod de status vastlooptContainerCreating
, controleert u of het kube-aad-proxycertificaat is gedownload naar het cluster.kubectl get secret -n azure-arc -o yaml | grep name:
name: kube-aad-proxy-certificate
Als het certificaat ontbreekt, verwijdert u de implementatie en probeert u opnieuw te onboarden met een andere naam voor het cluster. Als het probleem zich blijft voordoen, opent u een ondersteuningsaanvraag.
Fout in cryptoHash-module
Wanneer u Kubernetes-clusters probeert te onboarden naar het Azure Arc-platform, kan de lokale omgeving (bijvoorbeeld uw clientconsole) het volgende foutbericht retourneren:
Cannot load native module 'Crypto.Hash._MD5'
Soms kunnen afhankelijke modules niet worden gedownload bij het toevoegen van de extensies connectedk8s
en k8s-configuration
via Azure CLI of Azure PowerShell. U kunt dit probleem oplossen door de extensies handmatig te verwijderen en vervolgens toe te voegen in de lokale omgeving.
Als u de extensies wilt verwijderen, gebruikt u:
az extension remove --name connectedk8s
az extension remove --name k8s-configuration
Als u de extensies wilt toevoegen, gebruikt u:
az extension add --name connectedk8s
az extension add --name k8s-configuration
Problemen met clusterverbinding
Als uw cluster zich achter een uitgaande proxy of firewall bevindt, controleert u of websocket-verbindingen zijn ingeschakeld *.servicebus.windows.net
. Dit is specifiek vereist voor de functie Clusterverbinding . Zorg er bovendien voor dat u de nieuwste versie van de connectedk8s
Azure CLI-extensie gebruikt als u problemen ondervindt met het gebruik van clusterverbinding.
Als de clusterconnect-agent
pods kube-aad-proxy
ontbreken, is de functie voor clusterverbinding waarschijnlijk uitgeschakeld op het cluster. Als dit het probleem is, az connectedk8s proxy
mislukt het tot stand brengen van een sessie met het cluster en wordt er mogelijk een fout gelezen Cannot connect to the hybrid connection because no agent is connected in the target arc resource.
U kunt deze fout oplossen door de functie voor clusterverbinding in te schakelen op uw cluster:
az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP
Zie Clusterverbinding gebruiken om veilig verbinding te maken met Kubernetes-clusters met Azure Arc voor meer informatie.
Aangepaste locaties inschakelen met behulp van service-principal
Wanneer u uw cluster verbindt met Azure Arc of aangepaste locaties inschakelt op een bestaand cluster, ziet u mogelijk de volgende waarschuwing:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
Deze waarschuwing treedt op wanneer u een service-principal gebruikt om u aan te melden bij Azure en de service-principal niet over de benodigde machtigingen beschikt. Volg deze stappen om deze fout te voorkomen:
Meld u aan bij Azure CLI met uw gebruikersaccount. Haal de object-id op van de Microsoft Entra-toepassing die wordt gebruikt door de Azure Arc-service:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
Meld u aan bij Azure CLI met behulp van de service-principal. Gebruik de
<objectId>
waarde uit de vorige stap om aangepaste locaties op het cluster in te schakelen:- Als u aangepaste locaties wilt inschakelen bij het verbinden van het cluster met Arc, voert u de opdracht uit
az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
- Als u aangepaste locaties wilt inschakelen op een bestaand Kubernetes-cluster met Azure Arc, voert u
az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations
- Als u aangepaste locaties wilt inschakelen bij het verbinden van het cluster met Arc, voert u de opdracht uit
Volgende stappen
- Bekijk een visueel overzicht van hoe u verbindingsproblemen kunt diagnosticeren.
- Bekijk tips voor probleemoplossing met betrekking tot clusterextensies.