Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi di configurazione di App Mesh
Importante
Avviso di fine del supporto: il 30 settembre 2026, AWS interromperà il supporto per. AWS App Mesh Dopo il 30 settembre 2026, non potrai più accedere alla AWS App Mesh console o alle risorse. AWS App Mesh Per ulteriori informazioni, consulta questo post del blog Migrazione da AWS App Mesh ad Amazon ECS Service Connect.
Questo argomento descrive i problemi più comuni che potresti riscontrare con la configurazione di App Mesh.
Impossibile estrarre l'immagine del contenitore Envoy
Caratteristiche
Riceverai il seguente messaggio di errore in un'attività Amazon ECS. L'Amazon ECR account
ID e Region il messaggio seguente potrebbero essere diversi, a seconda del repository Amazon ECR da cui hai estratto l'immagine del contenitore.
CannotPullContainerError: Error response from daemon: pull access denied for 840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy, repository does not exist or may require 'docker login'
Risoluzione
Questo errore indica che il ruolo di esecuzione dell'attività utilizzato non è autorizzato a comunicare con Amazon ECR e non può estrarre l'immagine del contenitore Envoy dal repository. Il ruolo di esecuzione dell'attività assegnato al tuo task Amazon ECS richiede una policy IAM con le seguenti dichiarazioni:
{ "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:us-west-2:111122223333:repository/aws-appmesh-envoy", "Effect": "Allow" }, { "Action": "ecr:GetAuthorizationToken", "Resource": "*", "Effect": "Allow" }
Se il problema persiste, valuta la possibilità di aprirne uno GitHub
Impossibile connettersi al servizio di gestione App Mesh Envoy
Caratteristiche
Il tuo proxy Envoy non è in grado di connettersi al servizio di gestione App Mesh Envoy. Stai vedendo:
-
Errori di connessione rifiutata
-
Timeout di connessione.
-
Errori nella risoluzione dell'endpoint del servizio di gestione App Mesh Envoy
-
Errori gRPC
Risoluzione
Assicurati che il tuo proxy Envoy abbia accesso a Internet o a un endpoint VPC privato e che i tuoi gruppi di sicurezza consentano il traffico in uscita sulla porta 443. Gli endpoint pubblici del servizio di gestione Envoy di App Mesh seguono il formato del nome di dominio completo (FQDN).
# App Mesh Production Endpoint appmesh-envoy-management.Region-code.amazonaws.com # App Mesh Preview Endpoint appmesh-preview-envoy-management.Region-code.amazonaws.com
È possibile eseguire il debug della connessione a EMS utilizzando il comando seguente. In questo modo viene inviata una richiesta gRPC valida ma vuota all'Envoy Management Service.
curl -v -k -H 'Content-Type: application/grpc' -X POST https://appmesh-envoy-management.Region-code.amazonaws.com:443/envoy.service.discovery.v3.AggregatedDiscoveryService/StreamAggregatedResources
Se ricevi questi messaggi, la tua connessione a Envoy Management Service è funzionante. Per il debug degli errori relativi a gRPC, vedi gli errori in Envoy disconnesso dal servizio di gestione App Mesh Envoy con testo di errore.
grpc-status: 16 grpc-message: Missing Authentication Token
Se il problema persiste, valuta la possibilità di aprirne uno GitHub
Envoy si è disconnesso dal servizio di gestione App Mesh Envoy con un testo di errore
Caratteristiche
Il proxy Envoy non è in grado di connettersi al servizio di gestione App Mesh Envoy e di riceverne la configurazione. I log del tuo proxy Envoy contengono una voce di registro come la seguente.
gRPC config stream closed: gRPC status code, message
Risoluzione
Nella maggior parte dei casi, la parte del registro contenente i messaggi dovrebbe indicare il problema. La tabella seguente elenca i codici di stato gRPC più comuni che potresti vedere, le relative cause e le relative risoluzioni.
| Codice di stato gRPC | Causa | Risoluzione |
|---|---|---|
0 |
Disconnessione agevole dal servizio di gestione Envoy. | Non ci sono problemi. App Mesh occasionalmente disconnette i proxy Envoy con questo codice di stato. Envoy si riconnetterà e continuerà a ricevere aggiornamenti. |
3 |
L'endpoint mesh (nodo virtuale o gateway virtuale) o una delle risorse associate non è stato trovato. | Ricontrolla la configurazione di Envoy per assicurarti che abbia il nome appropriato della risorsa App Mesh che rappresenta. Se la tua risorsa App Mesh è integrata con altre AWS risorse, come AWS Cloud Map namespace o certificati ACM, assicurati che tali risorse esistano. |
7 |
Il proxy Envoy non è autorizzato a eseguire un'azione, ad esempio connettersi al servizio di gestione Envoy o recuperare le risorse associate. | Assicurati di creare una policy IAM contenente le dichiarazioni politiche appropriate per App Mesh e altri servizi e di allegare tale policy all'utente o al ruolo IAM utilizzato dal proxy Envoy per connettersi al servizio di gestione Envoy. |
8 |
Il numero di proxy Envoy per una determinata risorsa App Mesh supera la quota di servizio a livello di account. | Quote del servizio App MeshPer informazioni sulle quote predefinite degli account e su come richiedere un aumento della quota, consulta. |
16 |
Il proxy Envoy non dispone di credenziali di autenticazione valide per. AWS | Assicurati che Envoy disponga delle credenziali appropriate per connettersi ai AWS
servizi tramite un utente o un ruolo IAM. Un problema noto, #24136v1.24 di Envoy non riesce a recuperare le credenziali se il processo Envoy utilizza più descrittori di file. 1024 Ciò accade quando Envoy serve un volume di traffico elevato. Puoi confermare questo problema controllando i log di Envoy a livello di debug per il testo "». A libcurl function was given a bad
argument Per ovviare a questo problema, esegui l'upgrade alla versione Envoy o successiva. v1.25.1.0-prod |
Puoi osservare i codici di stato e i messaggi del tuo proxy Envoy con Amazon CloudWatch Insights utilizzando la seguente query:
filter @message like /gRPC config stream closed/ | parse @message "gRPC config stream closed: *, *" as StatusCode, Message
Se il messaggio di errore fornito non è stato utile o il problema non è stato ancora risolto, valuta la possibilità di aprirne uno GitHub .
Errore nella verifica dello stato di salute del container Envoy, nella sonda di disponibilità o nella sonda di vivacità
Caratteristiche
Il proxy Envoy non supera i controlli di integrità in un'attività Amazon ECS, un'istanza Amazon EC2 o un pod Kubernetes. Ad esempio, interroghi l'interfaccia di amministrazione di Envoy con il seguente comando e ricevi uno stato diverso da. LIVE
curl -s http://my-app.default.svc.cluster.local:9901/server_info | jq '.state'
Risoluzione
Di seguito è riportato un elenco di passaggi di riparazione in base allo stato restituito dal proxy Envoy.
-
PRE_INITIALIZINGoppureINITIALIZING: il proxy Envoy non ha ancora ricevuto la configurazione o non è in grado di connettersi e recuperare la configurazione dal servizio di gestione App Mesh Envoy. L'Envoy potrebbe ricevere un errore dal servizio di gestione Envoy durante il tentativo di connessione. Per ulteriori informazioni, consulta gli errori in. Envoy si è disconnesso dal servizio di gestione App Mesh Envoy con un testo di errore -
DRAINING— Il proxy Envoy ha iniziato a consumare le connessioni in risposta a una/drain_listenersrichiesta/healthcheck/failo sull'interfaccia di amministrazione di Envoy. Non è consigliabile richiamare questi percorsi sull'interfaccia di amministrazione a meno che non si stia per terminare l'attività Amazon ECS, l'istanza Amazon EC2 o il pod Kubernetes.
Se il problema persiste, valuta la possibilità di aprirne uno o contatta l'assistenza. GitHub
Il controllo dello stato dal load balancer all'endpoint mesh non è riuscito
Caratteristiche
L'endpoint mesh è considerato integro dal controllo dello stato del container o dalla sonda di prontezza, ma il controllo dello stato dal load balancer all'endpoint mesh non riesce.
Risoluzione
Per risolvere il problema, completate le seguenti attività.
-
Assicurati che il gruppo di sicurezza associato al tuo endpoint mesh accetti il traffico in entrata sulla porta che hai configurato per il controllo dello stato.
-
Assicurati che il controllo dello stato abbia esito positivo in modo coerente se richiesto manualmente, ad esempio da un bastion host all'interno del tuo VPC.
-
Se stai configurando un controllo dello stato di salute per un nodo virtuale, ti consigliamo di implementare un endpoint di controllo dello stato nella tua applicazione; ad esempio, /ping per HTTP. Ciò garantisce che sia il proxy Envoy che l'applicazione siano instradabili dal load balancer.
-
È possibile utilizzare qualsiasi tipo di bilanciamento del carico elastico per il nodo virtuale, a seconda delle funzionalità necessarie. Per ulteriori informazioni, consulta le funzionalità di Elastic Load Balancing.
-
Se stai configurando un controllo dello stato di un gateway virtuale, ti consigliamo di utilizzare un network load balancer con un controllo dello stato TCP o TLS sulla porta listener del gateway virtuale. Ciò garantisce che il listener del gateway virtuale sia avviato e pronto ad accettare connessioni.
Se il problema persiste, valuta la possibilità di aprirne uno o contatta l'
Il gateway virtuale non accetta traffico sulle porte 1024 o inferiori
Caratteristiche
Il gateway virtuale non accetta traffico sulla porta 1024 o inferiore, ma accetta traffico su un numero di porta superiore a 1024. Ad esempio, interroghi le statistiche di Envoy con il seguente comando e ricevi un valore diverso da zero.
curl -s http://my-app.default.svc.cluster.local:9901/stats | grep "update_rejected"
Potresti vedere un testo simile al seguente nei tuoi log che descrive un errore nel collegamento a una porta privilegiata:
gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected: Error adding/updating listener(s) lds_ingress_0.0.0.0_port_<port num>: cannot bind '0.0.0.0:<port num>': Permission denied
Risoluzione
Per risolvere il problema, l'utente specificato per il gateway deve disporre della funzionalità linux. CAP_NET_BIND_SERVICE Per ulteriori informazioni, consulta Funzionalità
Importante
Fargate deve utilizzare un valore di porta maggiore di 1024.
Se il problema persiste, valuta la possibilità di aprirlo o contatta AWS
l'assistenza.