Condividi tramite


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:

  1. Dopo che un'analisi mostra lo stato Non riuscito, passare alla macchina virtuale o al computer in cui è installato lo strumento IRCTL .
  2. Usare il ./irctl log uploadcomando .
  3. Quando i log vengono caricati, mantenere un record dell'ID di caricamento del log stampato.
  4. 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 downloadcomando .

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

  1. Assicurarsi che il file di contesto Kubernetes si trovi nel percorso corretto.
  2. 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.

Screenshot della riga di comando dopo il timeout della creazione.

È 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:

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.

Screenshot della riga di comando che mostra lo stato ImagePullBackOff.

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

  1. Controllare lo stato locale dell'integrazione self-hosted. Si nota che non è stato trovato alcun runtime di integrazione self-hosted in esecuzione.

    $./irctl describe
    
  2. 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.

  3. Selezionare Annulla registrazione installazione accanto allo stato e confermare l'operazione.

  4. Al termine dell'annullamento della registrazione, è possibile visualizzare lo stato non registrato.

  5. Selezionare il runtime di integrazione e ottenere la chiave di registrazione.

  6. Reinstallare il runtime di integrazione.

Operazioni successive