Risolvere i problemi di un runtime di integrazione self-hosted supportato da Kubernetes
Questo articolo illustra i dettagli per la risoluzione dei problemi relativi al nuovo runtime di integrazione self-hosted basato su Kubernetes per Linux.
È possibile cercare eventuali errori visualizzati nella guida agli errori riportata di seguito. Per ottenere supporto e indicazioni per la risoluzione dei problemi di SHIR, potrebbe essere necessario generare un ID di caricamento dei log e contattare il supporto tecnico Microsoft.
Raccogliere i log di runtime di integrazione self-hosted di Kubernetes
Per generare l'ID di caricamento del log per supporto tecnico Microsoft:
- Dopo che un'analisi mostra lo stato Non riuscito, passare alla macchina virtuale o al computer in cui è installato lo strumento IRCTL .
- Usare il
./irctl log upload
comando . - Quando i log vengono caricati, mantenere un record dell'ID di caricamento del log stampato.
- Se il runtime di integrazione self-hosted non riesce a registrarsi, usare la guida seguente per scaricare i log in locale e inviarli al supporto Tecnico Microsoft
Per raccogliere il log di runtime di integrazione self-hosted e analizzare il log di esecuzione per risolvere i problemi di SHIR, usare il ./irctl log download
comando .
Ad esempio:
./irctl log download --destination "C:\Users\user\logs\"
I log verranno scaricati nel percorso di destinazione.
Nota
Il log verrà riservato per 14 giorni. Per renderlo permanente, caricarlo in Microsoft o scaricarlo nel computer locale.
Errore di connettività IRCTL a Kubernetes
È possibile ottenere una configurazione del contesto Kubernetes dall'amministratore di Kubernetes e la registrazione potrebbe non riuscire con uno dei messaggi di errore seguenti:
Error: invalid flag context [] .kube/config: no such file or directory
[Warning] Failed to create kube client with context [] with error
Causa
Quando si installa un runtime di integrazione self-hosted, sono necessarie una configurazione kubernetes corretta e una connettività stabile.
Risoluzione
- Assicurarsi che il file di contesto Kubernetes si trovi nel percorso corretto.
- Assicurarsi che il computer IRCTL possa raggiungere il server API del cluster Kubernetes.
Errore di autorizzazione IRCTL
Durante la connessione è possibile visualizzare i messaggi di errore seguenti:
[Error] Failed to list namespaces to get Running SHIR
[Error] Failed to get configmap/ create job/ etc.
Causa
Quando si installa un runtime di integrazione self-hosted, sono necessarie autorizzazioni sufficienti per più risorse Kubernetes.
Risoluzione
Rigenerare il token service-account-token kubernetes con un ruolo Amministrazione.
Errore di connettività IRCTL all'endpoint del servizio Microsoft Purview
Quando si tenta di registrare il runtime di integrazione self-hosted supportato da Kubernetes, il comando IRCTL create potrebbe restituire gli errori seguenti:
[Error] Failed to register SHIR with error: Post “https://[REGION].compute.governance.azure.com/purviewAccounts/[]/integrationruntimes/[]/registerselfhostedintegrationruntime: []”
Causa
IRCTL non è in grado di connettersi al back-end del servizio. Questo problema è in genere causato dalle impostazioni di rete o dal firewall.
Risoluzione
Esaminare la topologia di rete del computer host IRCTL. Fare riferimento a queste sezioni della pagina di risoluzione dei problemi del runtime di integrazione generale: Firewall, DNSServer, trust di certificati SSL e proxy HTTP.
La chiave di registrazione non è autorizzata
Quando si tenta di registrare il runtime di integrazione self-hosted supportato da Kubernetes, il comando IRCTL create potrebbe restituire gli errori seguenti:
[Error] failed to register SHIR with error: Request is not authorized.
Causa
Erano scaduti o sono stati revocati manualmente.
Risoluzione
Rigenerare la chiave dalla pagina del runtime di integrazione nel portale di Microsoft Purview e registrarsi di nuovo.
Errore di timeout della creazione del runtime di integrazione self-hosted di Kubernetes
Quando si tenta di registrare il runtime di integrazione self-hosted supportato da Kubernetes, il comando IRCTL create potrebbe essere eseguito a lungo fino al timeout.
È possibile iniziare controllando lo stato dei pod negli spazi dei nomi indicati dal irctl describe
comando .
Ad esempio:
./irctl describe
K8s SHIR Name:shir-demo
Purview AccountName: shirdemopurview
Installation ID: 00000000-0000-0000-0000-000000000000
Kubernetes Namespace: shirdemopurview-shir-demo, compute-fleet-system(control-plane)
K8s SHIR Version: Unknown (Installation not completed)
Status: Initializing
Healthiness: Unhealthy
kubectl get pods --namespace shirdemopurview-shir-demo
NAME READY STATUS RESTARTS AGE
batch-defaultspec-4pbwx 0/1 Pending 0 10m
batch-defaultspec-7t9bl 0/1 Pending 0 10m
dynamic-config-provider-778c686fdc-9mkjb 0/1 Pending 0 10m
interactive-schemaprocess-bcrmf 0/1 Pending 0 10m
interactive-schemaprocess-fn66x 0/1 Pending 0 10m
logagent-ds-84jqn 0/1 Pending 0 10m
logagent-ds-k7vw8 0/1 Pending 0 10m
user-credential-proxy-579c899b64-d4q5v 0/1 Pending 0 10m
Ci sono un paio di possibili cause, elencate di seguito:
- Connettività con l'endpoint del servizio Microsoft Purview
- Errore di configurazione del nodo Kubernetes
Causa: connettività con l'endpoint del servizio Microsoft Purview
Kubernetes non è in grado di connettersi a MCR (mcr.microsoft.com). Questo errore è in genere causato dalle impostazioni di rete o da un firewall.
Se lo stato viene visualizzato come "ImagePullBackOff", significa che Kubernetes non può connettersi a MCR (mcr.microsoft.com) per scaricare le immagini pod. Questo errore è in genere causato dalle impostazioni di rete o da un firewall.
Risoluzione : connettività con l'endpoint del servizio Microsoft Purview
Esaminare la topologia di rete per il cluster Kubernetes. Ad esempio, per Azure Kubernetes è necessario controllare:
Nota
La procedura di risoluzione dei problemi necessaria sarà diversa per ogni provider Kubernetes. Il percorso di distribuzione e i singoli dettagli della rete variano tra le reti. È necessario esaminare la connettività tramite la rete dell'organizzazione.
Esaminare la topologia di rete del computer host IRCTL. Fare riferimento a queste sezioni della pagina di risoluzione dei problemi del runtime di integrazione generale: Firewall, DNSServer, trust di certificati SSL e proxy HTTP.
Causa - Errore di configurazione del nodo Kubernetes
Se lo stato di alcuni pod è bloccato in "In sospeso", usare il comando describe pod per visualizzare i dettagli del pod.
Ad esempio:
kubectl describe pod batch-defaultspec-4pbwx --namespace shirdemopurview-shir-demo
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 13m default-scheduler 0/5 nodes are available: 1 Too many pods. preemption: 0/5 nodes are available: 5 No preemption victims found for incoming pod..
Gli eventi del comando describe possono indicare il motivo per cui il pod è in sospeso. L'errore FailedScheduling con un messaggio dettagliato indica che il numero totale di pod viene superato il numero massimo di pod in un nodo. Non è possibile pianificare un nuovo pod nel nodo selezionato.
Nota
Se non sono presenti eventi visualizzati nella descrizione, provare a eliminare manualmente il pod tramite kubectl delete pod
il comando e tenere traccia di quello appena creato.
Risoluzione - Errore di configurazione del nodo Kubernetes
Riservare 20 numero di pod per il runtime di integrazione kubernetes per supportare scenari di utilizzo e aggiornamento normali.
Errore di connettività di Kubernetes con l'endpoint del servizio Microsoft Purview
Quando si tenta di registrare il runtime di integrazione self-hosted supportato da Kubernetes, il comando IRCTRL create potrebbe essere eseguito a lungo fino al timeout. In alternativa, dopo un'installazione riuscita, lo stato del runtime di integrazione self-hosted viene visualizzato come non integro o offline nel portale di Microsoft Purview.
Controllare i log usando questo comando: kubectl logs [podName] -n compute-fleet-system
È possibile visualizzare uno di questi errori:
“TraceMessage”:”HttpRequestFailed”, “Host”: “fleet.[REGION].compute.governance.azure.com”
Exception":"System.Net.Http.HttpRequestException: Connection refused fleet.[REGION].compute.governance.azure.com:443
System.AggregateException: Failed to acquire identity token from https://fleet. [REGION].compute.governance.azure.com:443
Causa
Kubernetes non è in grado di connettersi al back-end del servizio. Questo errore è in genere causato dalle impostazioni di rete o da un firewall.
Risoluzione
Esaminare la topologia di rete per il cluster Kubernetes. Ad esempio, per Azure Kubernetes è necessario controllare:
Nota
La procedura di risoluzione dei problemi necessaria sarà diversa per ogni provider Kubernetes. Il percorso di distribuzione e i singoli dettagli della rete variano tra le reti. È necessario esaminare la connettività tramite la rete dell'organizzazione.
Esaminare la topologia di rete del computer host IRCTL. Fare riferimento a queste sezioni della pagina di risoluzione dei problemi del runtime di integrazione generale: Firewall, DNSServer, trust di certificati SSL e proxy HTTP.
Annullare la registrazione di un runtime la cui risorsa locale non è disponibile
Se il runtime di integrazione self-hosted locale viene eliminato dal cluster Kubernetes per errore, non è possibile eliminarlo usando il irctl delete
comando e non è possibile installarlo in un altro cluster Kubernetes.
Causa
Un runtime di integrazione self-hosted può essere installato solo in un cluster Kubernetes. Dopo la registrazione, non è possibile installarlo in un altro cluster prima di annullarne la registrazione.
Risoluzione
Controllare lo stato locale dell'integrazione self-hosted. Si nota che non è stato trovato alcun runtime di integrazione self-hosted in esecuzione.
$./irctl describe
Controllare il runtime di integrazione self-hosted nel portale di Microsoft Purview. Verrà visualizzato lo stato Offline . Tuttavia, esiste una latenza di 1 ora per la scadenza del token.
Selezionare Annulla registrazione installazione accanto allo stato e confermare l'operazione.
Al termine dell'annullamento della registrazione, è possibile visualizzare lo stato non registrato.
Selezionare il runtime di integrazione e ottenere la chiave di registrazione.