Condividi tramite


"Errore dal server: errore di composizione back-end: dial tcp" messaggio

Sintomi

Viene visualizzato un messaggio di errore "Error from server: error dialing backend: dial tcp" error when you take one of the following actions:

  • Usare uno dei kubectllogscomandi , execattach, top, o port-forward .
  • Usare gli strumenti client Kubernetes di terze parti per ottenere la stessa funzionalità dei comandi nell'elemento di elenco precedente.

Perché si verifica l'errore

Il server API Kubernetes deve inoltrare le richieste API a un componente upstream per diversi casi d'uso. Questo errore si verifica se il server API non riesce a stabilire una connessione TCP al componente upstream. Un esempio di tali componenti upstream include i servizi kubernetes che si trovano all'interno del cluster e kubelet.

Se il problema persiste, è probabile che si verifichi un blocco di rete. Per identificare la configurazione di rete responsabile, determinare prima di tutto l'ambito del problema.

Restringimento: tutti i kubectl sottocomando hanno esito negativo?

Provare a eseguire almeno i kubectl execcomandi , kubectl logs <podname>e kubectl top pods .

Se solo kubectl logs <podname> o kubectl exec ha esito negativo, verificare se il problema si verifica con pod in nodi diversi.

Se ha esito negativo, kubectl top pods verificare se il problema si verifica per i pod in tutti i nodi o solo per i pod in un nodo.

Causa 1: la porta kubelet (node:10250) è bloccata

I problemi di accesso specifici dei pod, ad esempio quelli che si verificano eseguendo kubectl logs e kubectl exec, si verificano se il server API non riesce a raggiungere il nodo sulla porta 10250 per accedere all'API Kubelet. Questi problemi possono essere causati da una connessione bloccata da un gruppo di sicurezza di rete (NSG) o da un firewall.

Per risolvere il problema, controllare se il gruppo di sicurezza di rete nella subnet del nodo include una regola in ingresso che potrebbe bloccare la porta TCP 10250.

Causa 2: Errore specifico del servizio

Kubernetes svc/metrics-server accede allo spazio dei nomi per l'esecuzione kube-system di comandi principali kubectl. Esistono altri scenari, ad esempio webhook di ammissione, in cui il server API può raggiungere anche altri servizi. È importante notare che, a seconda del modello di errore del servizio, il messaggio di errore può variare.

Per risolvere il problema, controllare il messaggio di errore per identificare il servizio interessato ed esaminare lo stato dei pod, dei servizi e degli endpoint correlati.

Causa 3: Konnectivity o tunnel fail

Quando l'integrazione rete virtuale del server API non è abilitata, il servizio Azure Kubernetes distribuisce una soluzione di tunnel che esegue il proxy delle richieste del server API ai percorsi di rete nel cluster. La maggior parte dei cluster del servizio Azure Kubernetes usa la soluzione Konnectivity. Konnectivity non richiede l'apertura di porte speciali nel server API. Per altre informazioni, vedere Regole di rete necessarie per il servizio Azure Kubernetes.

Per risolvere il problema, verificare se l'oggetto konnectivity-agent nello spazio dei kube-system nomi è in esecuzione e i relativi contenitori sono in uno stato pronto. Provare a eliminare i pod per verificare se la connessione viene ripristinata dopo che i nuovi pod sono pronti.

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Contattaci per ricevere assistenza

In caso di domande, è possibile porre domande al supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.