Nessuna connettività di rete tra il piano di runtime e il piano di controllo

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Non esiste una documentazione equivalente di Apigee Edge per questo argomento.

Sintomi

  • I prodotti API, gli sviluppatori e le app non vengono inseriti nell'interfaccia utente di Apigee.
  • I deployment del proxy API non vengono completati.
  • Le richieste API di gestione eseguite per lettura e scrittura di prodotti API, errori per gli sviluppatori e le app.</li>

Messaggi di errore

In questa sezione vengono descritti i possibili messaggi di errore visualizzati in assenza di connettività di rete.

ApigeeIssue

Se questo problema è stato segnalato come ApigeeIssue, quando viene eseguito il comando seguente:

kubectl -n APIGEE_NAMESPACE get apigeeissues

dove APIGEE_NAMESPACE è il nome di un raggruppamento di risorse Kubernetes.

viene visualizzato il seguente codice di errore:

NAME                               SEVERITY    AGE URL
control-plane-connectivity-failure Error       1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity

Pagine dell'interfaccia utente di Apigee per prodotti API, sviluppatori e app

Le pagine dell'interfaccia utente di Apigee dei prodotti API, degli sviluppatori e delle app mostrano il seguente errore:

Error: no connections available from the Apigee connect agent(s):
refer to documentation to triage further.

Log Apigee-synchronizer

Il seguente messaggio di errore è visibile nei log apigee-synchronizer:

{"level":"SEVERE","thread":"Apigee-Timer-3","mdc":{"action":"SYNC","env":"dev",
  "org":"example-hybrid-dev"},"className":"com.apigee.httpclient.adaptor.RequestAdaptor",
  "method":"doSend","severity":"SEVERE","message":"request failed
  [CONTEXT ratelimit_period\u003d\"1 MINUTES [skipped: 1]\" ]",
  "formattedDate":"2023-02-01T06:27:48.700Z","logger":"SERVICES.HTTPCLIENTSERVICE",
  "exceptionStackTrace":"java.net.SocketTimeoutException: connect timed out
... com.apigee.httpclient.adaptor.RequestAdaptor.send(RequestAdaptor.java:251)
at com.apigee.hybrid.runtime.contract.sync.context.HttpContractDownloader.download(HttpContractDownloader.java:84)
at com.apigee.hybrid.runtime.contract.sync.context.ControlPlaneReplicationContext.getContract(ControlPlaneReplicationContext.java:66)

Log Apigee-watcher

Nei log di apigee-watcher è possibile visualizzare il seguente messaggio di errore:

{"level":"error","ts":1675232549.5093117,"caller":"watcher/watcher.go:60",
"msg":"error during watch","name":"mpstatus","error":"INTERNAL: error sending
  mp status to mgmt: INTERNAL: failed to send runtime status
  Post \"https://apigee.googleapis.com/v1/organizations/example-hybrid-dev/instances/apigee-hybrid-australia-southeast1:reportStatus\":
  dial tcp 172.217.24.42:443: i/o timeout","stacktrace":
  "edge-internal.git.corp.google.com/apigee-watcher.git/watcher.
  (*Watcher).Start.func1.1\n\t/go/src/edge-internal/apigee-watcher/watcher/watcher.go:60"}

Possibili cause

Piattaforma Causa Descrizione
Tutte Nessuna route di rete disponibile per internet Se non è disponibile alcuna route di rete su internet, i componenti del piano di runtime Apigee non potranno comunicare con le API del piano di controllo Apigee.
Tutte Gli endpoint API Apigee non sono inclusi nella lista consentita Se è attivo un firewall, gli endpoint API Apigee potrebbero non essere stati inseriti nella lista consentita.
GKE L'accesso privato Google non è abilitato Se il deployment è su GKE, l'accesso privato Google potrebbe non essere stato abilitato nella subnet.
Tutte Errore di rete sconosciuto Questo problema potrebbe verificarsi se si è verificato un errore sconosciuto nella rete del cluster durante la connessione a internet.

Causa: nessuna route di rete disponibile per Internet

Diagnosi

  1. A seconda della piattaforma utilizzata, verifica se è disponibile una route di rete dalla rete del cluster a internet. Ad esempio, per saperne di più sul networking su GKE, consulta la panoramica della rete.
  2. Verifica con il team dell'infrastruttura e del networking se la rete del cluster utilizza un server proxy di inoltro per la connessione a internet.

Risoluzione

  1. Rivolgiti all'amministratore di rete e, se possibile, aggiungi una route di rete a internet.
  2. Se è presente un server proxy di inoltro utilizzato per la comunicazione tra la rete del cluster e internet, configura le impostazioni del server proxy di inoltro in Apigee utilizzando il file overrides.yaml e applica la modifica al piano di runtime.
    apigeectl apply --settings virtualhosts -f overrides/overrides.yaml

Causa: gli endpoint API Apigee non sono inclusi nella lista consentita

Diagnosi

Verifica con l'amministratore di rete se l'elenco degli endpoint API Apigee è incluso nella lista consentita nel firewall sulla piattaforma in cui è installata Apigee. Per GKE, potrebbe trattarsi di firewall di Cloud Next Generation.

Risoluzione

Se l'elenco precedente di endpoint API Apigee non è incluso nella lista consentita, contatta l'amministratore di rete e completa il requisito.

Causa: l'accesso privato Google non è abilitato

Diagnosi

  1. Se viene eseguito il deployment di Apigee su un cluster GKE privato che non ha accesso a internet, è necessario abilitare l' accesso privato Google per consentire ai componenti del piano di runtime di Apigee di accedere internamente alle API di Google.
  2. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  3. Fai clic sul nome di una rete.
  4. Nella scheda Subnet, verifica che la subnet pertinente sia abilitata nella colonna Accesso privato Google. In caso contrario, questo è il motivo dell'errore.

Risoluzione

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai a Reti VPC

  2. Fai clic sul nome di una rete.
  3. Fai clic sul nome di una subnet.
  4. Fai clic su Modifica.
  5. Seleziona Accesso privato Google attivo.
  6. Fai clic su Salva. Una volta attivato, il problema verrà risolto.

Causa: errore di rete sconosciuto

Diagnosi

Contatta l'amministratore di rete e verifica se sono presenti errori sconosciuti nella rete del cluster.

Risoluzione

Collabora con l'amministratore di rete e risolvi i problemi nella rete del cluster. Una volta risolti, i problemi di rete verranno risolti.

Deve raccogliere dati diagnostici

Se il problema persiste anche dopo aver seguito le istruzioni riportate sopra, raccogli le seguenti informazioni diagnostiche e contatta l'assistenza Apigee:

  1. L'ID progetto Google Cloud.
  2. Il nome dell'organizzazione ibrida Apigee.
  3. Gli output dei seguenti comandi eseguiti su tutti i nodi dei cluster Kubernetes:
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. Il file overrides.yaml, che maschera eventuali informazioni sensibili.
  5. Lo stato del pod Kubernetes in tutti gli spazi dei nomi:
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. Il dump delle informazioni sul cluster di Kubernetes:

    Genera un dump delle informazioni sul cluster di Kubernetes:

    kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump

    Zip Kubernetes con dump delle informazioni sul cluster:

    zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*