Řešení potíží s platformou pro clustery Kubernetes s podporou Azure Arc
Tento dokument obsahuje průvodce odstraňováním potíží s připojením, oprávněními a agenty Kubernetes s podporou Azure Arc. Poskytuje také průvodce odstraňováním potíží pro Azure GitOps, který je možné použít v clusterech Kubernetes s podporou Azure Arc nebo Azure Kubernetes Service (AKS).
Nápovědu k řešení potíží souvisejících s rozšířeními, jako jsou GitOps (Flux v2), Azure Monitor Container Insights, Open Service Mesh, najdete v tématu Řešení potíží s rozšířeními pro clustery Kubernetes s podporou Služby Azure Arc.
Azure CLI
Před použitím az connectedk8s
příkazů nebo az k8s-configuration
příkazů rozhraní příkazového řádku se ujistěte, že je azure CLI nastavené tak, aby fungovalo se správným předplatným Azure.
az account set --subscription 'subscriptionId'
az account show
Pokud se zobrazí například chyba cli.azext_connectedk8s.custom: Failed to download and install kubectl
, spusťte az aks install-cli --install-location ~/.azure/kubectl-client/kubectl
před opětovným pokusem o spuštění az connectedk8s connect
. Tento příkaz nainstaluje klienta kubectl, který je nutný k tomu, aby příkaz fungoval.
Agenti Azure Arc
Všichni agenti pro Kubernetes s podporou Azure Arc se nasazují jako pody v azure-arc
oboru názvů. Všechny pody by měly být spuštěné a předávat jejich kontroly stavu.
Nejprve ověřte verzi Chartu Helm služby Azure Arc:
$ 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
Pokud se verze Chart Helmu nenašla nebo chybí, zkuste cluster znovu připojit ke službě Azure Arc .
Pokud je k dispozici STATUS: deployed
verze Helm Chartu, zkontrolujte stav agentů pomocí 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
Všechny pody by se měly zobrazit STATUS
jako Running
u 3/3
sloupce nebo 2/2
pod sloupcem READY
. Načtěte protokoly a popište pody, které vrací znak nebo Error
CrashLoopBackOff
. Pokud jsou nějaké pody zablokované ve Pending
stavu, může na uzlech clusteru existovat nedostatek prostředků. Vertikální navýšení kapacity clusteru může tyto pody získat pro přechod do Running
stavu.
Zřizování prostředků selhalo nebo došlo k chybě vypršení časového limitu služby
Pokud se zobrazí tyto chyby, zkontrolujte stav Azure a zjistěte, jestli neexistují nějaké aktivní události, které mají vliv na stav služby Kubernetes s podporou Azure Arc. Pokud ano, počkejte na vyřešení události služby a po odstranění existujícího připojeného prostředku clusteru zkuste onboarding provést znovu. Pokud nedojde k žádným událostem služby a při onboardingu budete dál řešit problémy, otevřete žádost o podporu, abychom mohli problém prošetřit.
Chyba deklarací nadlimitního využití
Pokud obdržíte žádost o nadlimitní využití, ujistěte se, že váš instanční objekt není součástí více než 200 skupin Microsoft Entra. V takovém případě musíte vytvořit a použít jiný instanční objekt, který není členem více než 200 skupin, nebo odebrat původní instanční objekt z některých jeho skupin a zkusit to znovu.
K deklaraci nadlimitního využití může dojít také v případě, že jste nakonfigurovali odchozí proxy prostředí bez povolení koncového bodu https://<region>.obo.arc.azure.com:8084/
pro odchozí provoz.
Pokud žádná z těchto možností neplatí, otevřete žádost o podporu, abychom se mohli podívat na problém.
Problémy s připojením clusterů Kubernetes ke službě Azure Arc
Připojení clusterů k Azure Arc vyžaduje přístup k předplatnému Azure a cluster-admin
přístup k cílovému clusteru. Pokud se nemůžete připojit ke clusteru nebo pokud máte nedostatečná oprávnění, připojení clusteru ke službě Azure Arc selže. Ujistěte se, že jste splnili všechny požadavky pro připojení clusteru.
Tip
Vizuální průvodce odstraňováním potíží s připojením najdete v tématu Diagnostika problémů s připojením pro clustery Kubernetes s podporou Arc.
Problémy s překladem DNS
Nápovědu k problémům souvisejícím s překladem DNS v clusteru najdete v tématu Ladění překladu DNS.
Problémy s odchozím připojením k síti
K problémům s odchozím síťovým připojením z clusteru může dojít z různých důvodů. Nejprve se ujistěte, že byly splněny všechny požadavky na síť.
Pokud narazíte na problémy s připojením a váš cluster je za odchozím proxy serverem, ujistěte se, že jste během onboardingu clusteru předali parametry proxy serveru a že je proxy server správně nakonfigurovaný. Další informace najdete v tématu Připojení pomocí odchozího proxy serveru.
Může se zobrazit chyba podobná následující:
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
K této chybě dochází, když https://k8connecthelm.azureedge.net
je koncový bod zablokovaný. Ujistěte se, že vaše síť umožňuje připojení k tomuto koncovému bodu a splňuje všechny ostatní požadavky na síť.
Nejde načíst certifikát MSI
Problémy s načtením certifikátu MSI jsou obvykle způsobené problémy se sítí. Zkontrolujte, jestli jsou splněné všechny požadavky na síť, a zkuste to znovu.
Nedostatečná oprávnění ke clusteru
Pokud zadaný soubor kubeconfig nemá dostatečná oprávnění k instalaci agentů Azure Arc, příkaz Azure CLI vrátí chybu: Error: list: failed to list: secrets is forbidden: User "myuser" cannot list resource "secrets" in API group "" at the cluster scope
Pokud chcete tento problém vyřešit, ujistěte se, že má uživatel připojující cluster ke službě Azure Arc přiřazenou cluster-admin
roli.
Cluster OpenShift nejde připojit ke službě Azure Arc
Pokud az connectedk8s connect
dochází k vypršení časového limitu a při připojování clusteru OpenShift ke službě Azure Arc dochází k selhání:
Ujistěte se, že cluster OpenShift splňuje požadavky na verzi: 4.5.41 nebo 4.6.35 nebo 4.7.18+.
Před spuštěním
az connectedk8s connnect
spusťte tento příkaz v clusteru:oc adm policy add-scc-to-user privileged system:serviceaccount:azure-arc:azure-arc-kube-aad-proxy-sa
Časové limity instalace
Připojení clusteru Kubernetes ke Kubernetes s podporou Azure Arc vyžaduje instalaci agentů Azure Arc v clusteru. Pokud cluster běží přes pomalé připojení k internetu, může vyžádání image kontejneru pro agenty trvat déle než vypršení časového limitu Azure CLI.
Chyba vypršení časového limitu Helmu
Může se zobrazit chyba Unable to install helm release: Error: UPGRADE Failed: time out waiting for the condition
. K vyřešení problému proveďte následující kroky:
Spusťte následující příkaz:
kubectl get pods -n azure-arc
Zkontrolujte, jestli
clusterconnect-agent
se zobrazujícrashloopbackoff
podyconfig-agent
nebo jestli nejsou spuštěné všechny kontejnery: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
azure-identity-certificate
Pokud není k dispozici, spravovaná identita přiřazená systémem se nenainstalovala.kubectl get secret -n azure-arc -o yaml | grep name:
name: azure-identity-certificate
Pokud chcete tento problém vyřešit, zkuste nasazení Arc odstranit spuštěním
az connectedk8s delete
příkazu a přeinstalací. Pokud problém přetrvává, může se jednat o problém s nastavením proxy serveru. V takovém případě zkuste připojit cluster ke službě Azure Arc přes proxy server , abyste cluster připojili ke službě Arc přes proxy server. Ověřte také splnění všech požadavků na síť.clusterconnect-agent
Pokud jsou pody spuštěnéconfig-agent
, alekube-aad-proxy
pod chybí, zkontrolujte zásady zabezpečení podů. Tento pod používáazure-arc-kube-aad-proxy-sa
účet služby, který nemá oprávnění správce, ale vyžaduje oprávnění k připojení cesty hostitele.kube-aad-proxy
Pokud je pod zablokovaný veContainerCreating
stavu, zkontrolujte, jestli se do clusteru stáhl certifikát kube-aad-proxy.kubectl get secret -n azure-arc -o yaml | grep name:
name: kube-aad-proxy-certificate
Pokud certifikát chybí, odstraňte nasazení a zkuste nasazení připojit znovu s použitím jiného názvu clusteru. Pokud problém přetrvává, otevřete žádost o podporu.
Chyba modulu CryptoHash
Při pokusu o připojení clusterů Kubernetes k platformě Azure Arc může místní prostředí (například konzola klienta) vrátit následující chybovou zprávu:
Cannot load native module 'Crypto.Hash._MD5'
Někdy se závislé moduly nepodaří úspěšně stáhnout při přidávání rozšíření connectedk8s
a k8s-configuration
prostřednictvím Azure CLI nebo Azure PowerShellu. Chcete-li tento problém vyřešit, ručně odeberte a potom přidejte rozšíření v místním prostředí.
Pokud chcete rozšíření odebrat, použijte:
az extension remove --name connectedk8s
az extension remove --name k8s-configuration
Pokud chcete přidat rozšíření, použijte:
az extension add --name connectedk8s
az extension add --name k8s-configuration
Problémy s připojením ke clusteru
Pokud je váš cluster za odchozím proxy serverem nebo bránou firewall, ověřte, že jsou povolená *.servicebus.windows.net
připojení protokolu WebSocket, která se vyžaduje speciálně pro funkci Připojení ke clusteru. Kromě toho se ujistěte, že používáte nejnovější verzi connectedk8s
rozšíření Azure CLI, pokud máte problémy s připojením ke clusteru.
Pokud chybí clusterconnect-agent
pody kube-aad-proxy
, funkce připojení ke clusteru je pravděpodobně v clusteru zakázaná. Pokud ano, az connectedk8s proxy
nepodaří se navázat relaci s clusterem a může se zobrazit chyba při čtení. Cannot connect to the hybrid connection because no agent is connected in the target arc resource.
Pokud chcete tuto chybu vyřešit, povolte ve svém clusteru funkci připojení ke clusteru:
az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP
Další informace najdete v tématu Použití připojení clusteru k zabezpečenému připojení ke clusterům Kubernetes s podporou Azure Arc.
Povolení vlastních umístění pomocí instančního objektu
Při připojování clusteru ke službě Azure Arc nebo povolení vlastních umístění v existujícím clusteru se může zobrazit následující upozornění:
Unable to fetch oid of 'custom-locations' app. Proceeding without enabling the feature. Insufficient privileges to complete the operation.
K tomuto upozornění dochází, když k přihlášení do Azure použijete instanční objekt a instanční objekt nemá potřebná oprávnění. Chcete-li se této chybě vyhnout, postupujte takto:
Přihlaste se k Azure CLI pomocí uživatelského účtu. Načtení ID objektu aplikace Microsoft Entra používané službou Azure Arc:
az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query objectId -o tsv
Přihlaste se k Azure CLI pomocí instančního objektu.
<objectId>
Pomocí hodnoty z předchozího kroku povolte vlastní umístění v clusteru:- Pokud chcete povolit vlastní umístění při připojování clusteru ke službě Arc, spusťte příkaz
az connectedk8s connect -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId>
- Pokud chcete povolit vlastní umístění v existujícím clusteru Kubernetes s podporou Služby Azure Arc, spusťte příkaz .
az connectedk8s enable-features -n <cluster-name> -g <resource-group-name> --custom-locations-oid <objectId> --features cluster-connect custom-locations
- Pokud chcete povolit vlastní umístění při připojování clusteru ke službě Arc, spusťte příkaz
Další kroky
- Získejte vizuální návod, jak diagnostikovat problémy s připojením.
- Podívejte se na tipy pro řešení potíží souvisejících s rozšířeními clusteru.