App Mesh - AWS App Mesh

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à.

App Mesh

Questo argomento descrive i problemi più comuni che potresti riscontrare quando usi App Mesh con Kubernetes.

Le risorse App Mesh create in Kubernetes non possono essere trovate in App Mesh

Sintomi

Hai creato le risorse App Mesh utilizzando la definizione delle risorse personalizzate (CRD) di Kubernetes, ma le risorse che hai creato non sono visibili in App Mesh quando usi ilAWS Management Consoleo API.

Risoluzione

La causa probabile è un errore nel controller Kubernetes per App Mesh. Per ulteriori informazioni, consulta la paginaRisoluzione dei problemisul GitHub. Controlla i registri del controller per eventuali errori o avvisi che indicano che il controller non è stato in grado di creare risorse.

kubectl logs -n appmesh-system -f \ $(kubectl get pods -n appmesh-system -o name | grep controller)

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.

I pod non riescono a controllare la prontezza e la vivacità dopo l'iniezione del sidecar Envoy

Sintomi

In precedenza i pod per l'applicazione funzionavano correttamente, ma dopo l'iniezione del sidecar Envoy in un pod, i controlli di disponibilità e vivacità iniziano a fallire.

Risoluzione

Assicurati che il pod abbia una mesh e un nodo virtuale associati. Le impostazioni della mesh e dei nodi virtuali vengono impostate tramite annotazioni sull'oggetto di distribuzione associato, come nell'esempio seguente.

--- apiVersion: apps/v1 kind: Deployment metadata: name: my-app namespace: default spec: replicas: 3 template: metadata: annotations: appmesh.k8s.aws/mesh: my-mesh appmesh.k8s.aws/virtualNode:my-virtual-node ...

Assicurati che il contenitore Envoy che è stato iniettato nel pod sia stato avviato con il servizio di gestione Envoy di App Mesh. È possibile verificare eventuali errori facendo riferimento ai codici di errore inEnvoy disconnesso dal servizio di gestione App Mesh Envoy con testo di errore. Puoi usare il seguente comando per controllare i log di Envoy per individuare il pod in questione.

kubectl logs -n appmesh-system -f \ $(kubectl get pods -n appmesh-system -o name | grep controller) \ | grep "gRPC config stream closed"

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.

I pod non si registrano o non si annullano comeAWS Cloud Mapcasi

Sintomi

I tuoi pod Kubernetes non vengono registrati o annullati daAWS Cloud Mapcome parte del loro ciclo di vita. Un pod può avviarsi correttamente ed essere pronto a servire il traffico, ma non riceverne nessuno. Quando un pod viene chiuso, i client possono comunque conservare il suo indirizzo IP e tentare di inviare traffico ad esso, senza successo.

Risoluzione

Si tratta di un problema noto. Per ulteriori informazioni, consulta laI pod non vengono registrati/annullati auto in Kubernetes conAWS Cloud Map GitHub supporto. Grazie alla relazione tra pod, nodi virtuali App Mesh eAWS Cloud Maprisorse, ilApp Mesh Controller per Kubernetespuò diventare desincronizzato e perdere risorse. Ad esempio, ciò può accadere se una risorsa del nodo virtuale viene eliminata da Kubernetes prima di chiudere i pod associati.

Per ovviare a questo problema:

  • Assicurati di utilizzare l'ultima versione del controller App Mesh per Kubernetes.

  • Assicurarsi che ilAWS Cloud Map namespaceNameeserviceNamesono corretti nella definizione del nodo virtuale.

  • Assicurati di eliminare tutti i pod associati prima di eliminare la definizione del nodo virtuale. Se hai bisogno di aiuto per identificare quali pod sono associati a un nodo virtuale, consultaUnable per determinare dove è in esecuzione un pod per una risorsa App Mesh.

  • Se il problema persiste, esegui il seguente comando per esaminare i log del controller per individuare eventuali errori che potrebbero aiutare a rivelare il problema sottostante.

    kubectl logs -n appmesh-system \ $(kubectl get pods -n appmesh-system -o name | grep appmesh-controller)
  • Valuta di utilizzare il comando seguente per riavviare i pod del controller. Questo può risolvere i problemi di sincronizzazione.

    kubectl delete -n appmesh-system \ $(kubectl get pods -n appmesh-system -o name | grep appmesh-controller)

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.

Unable per determinare dove è in esecuzione un pod per una risorsa App Mesh

Sintomi

Quando esegui App Mesh su un cluster Kubernetes, un operatore non può determinare dove è in esecuzione un carico di lavoro, o pod, per una determinata risorsa App Mesh.

Risoluzione

Le risorse del pod Kubernetes sono annotate con la mesh e il nodo virtuale a cui sono associate. È possibile interrogare quali pod sono in esecuzione per un determinato nome di nodo virtuale con il seguente comando.

kubectl get pods --all-namespaces -o json | \ jq '.items[] | { metadata } | select(.metadata.annotations."appmesh.k8s.aws/virtualNode" == "virtual-node-name")'

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.

Non è possibile determinare quale risorsa App Mesh è in esecuzione un pod

Sintomi

Quando esegue App Mesh su un cluster Kubernetes, un operatore non è in grado di determinare con quale risorsa App Mesh viene eseguito un determinato pod.

Risoluzione

Le risorse del pod Kubernetes sono annotate con la mesh e il nodo virtuale a cui sono associate. È possibile visualizzare i nomi della mesh e dei nodi virtuali interrogando direttamente il pod utilizzando il seguente comando.

kubectl get pod pod-name -n namespace -o json | \ jq '{ "mesh": .metadata.annotations."appmesh.k8s.aws/mesh", "virtualNode": .metadata.annotations."appmesh.k8s.aws/virtualNode" }'

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.

I Client Envoy non sono in grado di comunicare con App Mesh Envoy Management Service con IMDSv1 disabilitato

Sintomi

QuandoIMDSv1è disattivato, gli inviati client non sono in grado di comunicare con il piano di controllo di App Mesh (Envoy Management Service).IMDSv1il supporto non è ancora stato aggiunto al proxy Envoy OSS.IMDSv1deve essere abilitato per recuperare le credenziali.

Risoluzione

Per risolvere il problema, è possibile procedere in due modi.

Se il problema non è ancora stato risolto, prendi in considerazione l'apertura di unGitHub problemao contattoAWSSupport.