Share via


Risolvere i problemi relativi alle connessioni agli endpoint all'esterno della rete virtuale

Questo articolo illustra come risolvere i problemi relativi alle connessioni agli endpoint esterni alla rete virtuale ,ovvero tramite Internet pubblico, da un cluster microsoft servizio Azure Kubernetes (servizio Azure Kubernetes).

Prerequisiti

Elenco di controllo per la risoluzione dei problemi

Passaggio 1: Eseguire la risoluzione dei problemi di base

Assicurarsi di poter connettersi agli endpoint pubblici su Internet. Per istruzioni, vedere Risoluzione dei problemi di base delle connessioni del cluster del servizio Azure Kubernetes in uscita.

Passaggio 2: Determinare il tipo in uscita per il cluster del servizio Azure Kubernetes

Per identificare il tipo in uscita del cluster del servizio Azure Kubernetes, eseguire il comando az aks show :

az aks show --resource-group <resource_group> --name <cluster_name> --query "networkProfile.outboundType"

Se il tipo in uscita è loadBalancer, assicurarsi che la tabella di route associata ai nodi del servizio Azure Kubernetes abbia la route predefinita verso Internet. I dettagli sono illustrati nella tabella seguente.

Origine Prefissi degli indirizzi Tipo di hop successivo
Predefinita 0.0.0.0/0 Internet

Se il tipo in uscita è userDefinedRouting, assicurarsi che siano soddisfatte le condizioni seguenti:

  • Il dispositivo in uscita (firewall o proxy) è raggiungibile.

  • Il dispositivo in uscita consente il traffico in uscita richiesto dal cluster.

    Per ottenere l'elenco di FQDN consentiti per il cluster del servizio Azure Kubernetes, eseguire il comando az aks egress-endpoints list :

    az aks egress-endpoints list --resource-group <resource_group> --name <cluster_name>
    

Se il tipo in uscita è managedNATGateway, verificare se la subnet del servizio Azure Kubernetes è associata al gateway NAT eseguendo il comando az network nat gateway show :

az network nat gateway show --resource-group <resource_group> --name <nat_gateway_name> --query "subnets[].id"

Per altre informazioni su come usare un gateway NAT insieme al servizio Azure Kubernetes, vedere Gateway NAT gestito.

Passaggio 3: Esaminare l'output cURL quando ci si connette al cluster

I codici di risposta cURL consentono di identificare il tipo di problema. Dopo aver reso disponibile il codice di risposta, provare a comprendere meglio il comportamento del problema. Per altre informazioni sui codici di stato HTTP e sul comportamento sottostante del problema, vedere la tabella seguente.

Origine delle informazioni Collegamento
Internet Assigned Numbers Authority (IANA) Registro di sistema del codice di stato HTTP (Hypertext Transfer Protocol)
Mozilla Codici di stato della risposta HTTP
Wikipedia Elenco di codici di stato HTTP

I codici di stato HTTP seguenti potrebbero indicare i problemi elencati.

Codice di stato HTTP Problema Esempio
4xx
  1. Un problema interessa la richiesta client.
  2. Esiste un blocco di rete tra il client e il server.
  1. La pagina richiesta non esiste o il client non dispone dell'autorizzazione per accedere alla pagina.
  2. Il traffico viene bloccato da un gruppo di sicurezza di rete o da un firewall.
5xx Un problema interessa il server. L'applicazione è inattiva o un gateway non funziona.

Passaggio 4: Determinare cosa accade se il traffico in uscita in genere attraversa un'appliance virtuale, ma viene ignorata.

Per eseguire test rapidi per determinare se il dispositivo in uscita (appliance virtuale) causa il problema, è possibile consentire temporaneamente a tutto il traffico di passare attraverso Internet. Per configurare questa configurazione, è possibile modificare l'indirizzo IP predefinito e la route della porta di 0.0.0.0/0 tramite l'appliance virtuale per passare tramite Internet.

Il problema è intermittente?

È possibile che si verifichino problemi intermittenti in uscita per molti motivi. Per risolvere i problemi di connessione in uscita intermittente, provare a eseguire i controlli seguenti:

Il pod o il nodo è esaurito per le risorse?

Eseguire il codice seguente per verificare come vengono usate le risorse:

kubectl top pods
kubectl top nodes

Il disco del sistema operativo è molto usato?

Per verificare se il disco del sistema operativo viene usato pesantemente, seguire questa procedura:

  1. Nel portale di Azure cercare e selezionare Set di scalabilità di macchine virtuali.

  2. Nell'elenco dei set di scalabilità selezionare il set di scalabilità usato per il cluster del servizio Azure Kubernetes.

  3. Nel riquadro di spostamento del set di scalabilità passare alla sezione Monitoraggio e quindi selezionare Metriche.

  4. Visualizzare le metriche del disco per il set di scalabilità dalla sezione Metriche cercando i campi seguenti.

    Campo Valore
    Ambito Nome del servizio VMS
    Spazio dei nomi delle metriche Host macchina virtuale
    Metriche Metrica del sistema operativo e del disco dati

Per altre informazioni sulle metriche, vedere Metriche del disco del sistema operativo e del disco dati.

Per visualizzare le raccomandazioni del servizio Azure Kubernetes sull'utilizzo del disco, seguire questa procedura:

  1. Nel portale di Azure cercare e selezionare Servizi Kubernetes.

  2. Nell'elenco dei servizi Kubernetes selezionare il nome del cluster del servizio Azure Kubernetes.

  3. Nel riquadro di spostamento del cluster del servizio Azure Kubernetes passare alla sezione Monitoraggio e quindi selezionare Consigli di Advisor.

  4. Esaminare le raccomandazioni elencate sull'utilizzo del disco.

Se il disco del sistema operativo viene usato pesantemente, provare a usare i rimedi seguenti:

  • Aumentare le dimensioni del disco del sistema operativo.

  • Passare a Dischi temporanei del sistema operativo.

Se questi rimedi non consentono di risolvere il problema, analizzare il processo che esegue operazioni di lettura/scrittura pesanti sul disco. Controllare quindi se è possibile spostare le azioni in un disco dati anziché nel disco del sistema operativo.

La porta di conversione degli indirizzi di rete di origine è esaurita?

Se le applicazioni effettuano molte connessioni in uscita, possono esaurire il numero di porte disponibili nell'indirizzo IP del dispositivo in uscita. Seguire la diagnostica del servizio di bilanciamento del carico standard con metriche, avvisi e integrità delle risorse per monitorare l'utilizzo e l'allocazione della porta SNAT (Source Network Address Translation) del servizio di bilanciamento del carico esistente. Monitorare per verificare o determinare il rischio di esaurimento delle porte SNAT.

Si raggiunge o si supera il numero massimo di porte SNAT allocate? In tal caso, è possibile controllare l'applicazione per determinare se sta riutilizzando le connessioni esistenti. Per altre informazioni, vedere Progettare le applicazioni per l'uso efficiente delle connessioni.

Se si ritiene che l'applicazione sia configurata correttamente e sono necessarie più porte SNAT rispetto al numero predefinito di porte allocate, seguire questa procedura:

  1. Aumentare il numero di indirizzi IP pubblici nel dispositivo in uscita. Se il dispositivo in uscita è il servizio di bilanciamento del carico, è possibile aumentare il numero di indirizzi IP pubblici nel servizio di bilanciamento del carico.

  2. Aumentare le porte per nodo per i nodi di lavoro del servizio Azure Kubernetes.

Dichiarazione di non responsabilità di contatti di terze parti

Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.