Risoluzione dei problemi del gateway in ingresso istio service mesh
Questo articolo illustra come risolvere i problemi del gateway in ingresso nel componente aggiuntivo Mesh del servizio Istio per servizio Azure Kubernetes (servizio Azure Kubernetes). Il gateway di ingresso Istio è un proxy inverso basato su Envoy che è possibile usare per instradare il traffico in ingresso ai carichi di lavoro nella mesh.
Per il componente aggiuntivo Mesh di servizi basato su Istio, sono disponibili le opzioni di gateway di ingresso seguenti:
Gateway di ingresso interno che usa un indirizzo IP privato.
Gateway di ingresso esterno che usa un indirizzo IP accessibile pubblicamente.
Note
Microsoft non supporta la personalizzazione dell'indirizzo IP per i gateway di ingresso interni o esterni. Tutte le modifiche di personalizzazione IP apportate al componente aggiuntivo Mesh del servizio Istio verranno ripristinate.
Il componente aggiuntivo distribuisce i pod e le distribuzioni del gateway in ingresso Istio per revisione. Se si esegue un aggiornamento canary e si dispone di due revisioni del piano di controllo installate nel cluster, potrebbe essere necessario risolvere i problemi relativi a più pod gateway in ingresso in entrambe le revisioni.
Elenco di controllo per la risoluzione dei problemi
Passaggio 1: Assicurarsi che nessun firewall o regole del gruppo di sicurezza di rete blocchino il gateway di ingresso
Verificare che non siano presenti regole del firewall o del gruppo di sicurezza di rete che bloccano il traffico verso il gateway di ingresso. È necessario aggiungere in modo esplicito una regola DNAT (Destination Network Address Translation) per consentire il traffico in ingresso attraverso Firewall di Azure al gateway di ingresso.
Passaggio 2: Configurare correttamente gateway, servizi virtuali e regole di destinazione
Quando si configurano gateway, servizi virtuali e regole di destinazione per il routing del traffico attraverso il gateway di ingresso, seguire questa procedura:
Assicurarsi che il selettore gateway in ingresso nella risorsa gateway sia impostato rispettivamente su uno dei valori di testo seguenti se si usa un gateway esterno o interno:
istio: aks-istio-ingressgateway-external
istio: aks-istio-ingressgateway-internal
Assicurarsi che le porte siano impostate correttamente nei gateway e nei servizi virtuali. Per il gateway, la porta deve essere impostata su
80
perhttp
o443
perhttps
. Per il servizio virtuale, la porta deve essere impostata sulla porta su cui è in ascolto il servizio corrispondente per l'applicazione.Verificare che il servizio sia esposto all'interno della
hosts
specifica sia per il gateway che per il servizio virtuale. Se si verificano problemi relativi all'intestazioneHost
nelle richieste, provare ad aggiungere all'elenco elementi consentiti tutti gli host che contengono un carattere jolly asterisco ("*"), ad esempio in questa configurazione del gateway di esempio. È tuttavia consigliabile non modificare l'elenco elementi consentiti come procedura di produzione. Inoltre, lahosts
specifica deve essere configurata in modo esplicito.
Passaggio 3: Correggere l'integrità del pod del gateway in ingresso
Se il pod del gateway in ingresso si arresta in modo anomalo o non viene visualizzato nello stato pronto, verificare che il pod del piano di controllo del daemon Istio (istiod
) sia pronto. Il gateway di ingresso dipende dalla disponibilità della istiod
versione.
Se il istiod
pod non viene visualizzato nello stato pronto, assicurarsi che le definizioni di risorse personalizzate Istio (CRD) e il base
grafico Helm sia installato correttamente. A tale scopo, utilizzare il seguente comando:
helm ls --all --all-namespaces
È possibile che venga visualizzato un errore più ampio in cui l'installazione del componente aggiuntivo non è configurata in modo specifico per il gateway di ingresso.
Se il istiod
pod è integro, ma i pod del gateway in ingresso non rispondono, esaminare le risorse gateway di ingresso seguenti nello spazio dei aks-istio-ingress
nomi per raccogliere altre informazioni:
- Versione Helm
- Distribuzione
- Service
Inoltre, è possibile trovare altre informazioni sulla risoluzione dei problemi relativi al gateway e al debug sidecar in Generale del componente aggiuntivo mesh di servizi Istio.
Passaggio 4: Configurare l'utilizzo delle risorse
L'utilizzo elevato delle risorse si verifica quando le impostazioni di replica min/max predefinite per Istiod e i gateway non sono sufficienti. In questo caso, modificare le configurazioni di scalabilità automatica orizzontale dei pod.
Passaggio 5: Risolvere i problemi del gateway di ingresso sicuro
Quando un gateway di ingresso esterno è configurato per esporre un servizio HTTPS sicuro tramite TLS semplice o reciproco, seguire questa procedura di risoluzione dei problemi:
Verificare che i valori delle variabili di
INGRESS_HOST_EXTERNAL
ambiente eSECURE_INGRESS_PORT_EXTERNAL
siano validi in base all'output del comando seguente:kubectl -n aks-istio-ingress get service aks-istio-ingressgateway-external
Verificare la presenza di messaggi di errore nei log del controller del gateway:
kubectl logs -n aks-istio-ingress <gateway-service-pod>
Verificare che i segreti vengano creati nello spazio dei
aks-istio-ingress
nomi :kubectl -n aks-istio-ingress get secrets
Per l'esempio in Gateway di ingresso sicuro per il componente aggiuntivo Mesh di servizi Istio per servizio Azure Kubernetes, il productpage-credential
segreto deve essere elencato.
Dopo aver abilitato il componente aggiuntivo del provider di segreti di Azure Key Vault, è necessario concedere l'accesso per l'identità gestita assegnata dall'utente del componente aggiuntivo all'insieme di credenziali delle chiavi di Azure. La configurazione non corretta dell'accesso ad Azure Key Vault impedirà la creazione del productpage-credential
segreto.
Dopo aver creato la SecretProviderClass
risorsa, per garantire la sincronizzazione dei segreti da Azure Key Vault al cluster, assicurarsi che il pod secrets-store-sync-productpage
di esempio che fa riferimento a questa risorsa venga distribuito correttamente.
Riferimenti
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
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.