Nessuna connettività di rete tra il piano di runtime e il control plane

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

Sintomi

  • I prodotti API, gli sviluppatori e le app non vengono compilati nell'interfaccia utente Apigee.
  • I deployment dei proxy API non vengono completati.
  • Le richieste dell'API Management eseguite per la lettura e la scrittura di prodotti API, sviluppatori e app non vanno a buon fine.

Messaggi di errore

Questa sezione descrive i possibili messaggi di errore visualizzati quando non è presente connettività di rete.

ApigeeIssue

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

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 Apigee per prodotti API, sviluppatori e app

Le pagine dell'interfaccia utente di Apigee relative a prodotti API, sviluppatori e app mostrano il seguente errore:

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

apigee-synchronizer logs

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

{"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 di 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
Tutti Nessun percorso di rete disponibile per internet Se non è disponibile alcun percorso di rete a internet, i componenti del piano di runtime Apigee non potranno comunicare con le API del control plane Apigee.
Tutti Gli endpoint API Apigee non sono inclusi nella lista consentita Se è presente un firewall, gli endpoint API Apigee potrebbero non essere stati aggiunti alla 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.
Tutti Errore di rete sconosciuto Questo problema può verificarsi se si verifica un errore sconosciuto nella rete del cluster durante la connessione a internet.

Causa: nessun percorso 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 ulteriori informazioni sul networking su GKE, consulta Panoramica della rete.
  2. Rivolgiti al team di infrastruttura e networking per verificare se la rete del cluster utilizza un server proxy di inoltro per la connessione a internet.

Risoluzione

  1. Rivolgiti all'amministratore di rete e aggiungi una route di rete a internet, se possibile.
  2. Se viene utilizzato un server proxy di inoltro 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 utilizzando il comando Helm:

    Prova:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE \
    --dry-run=server
    

    Assicurati di includere tutte le impostazioni mostrate, incluso --atomic in modo che l'azione venga annullata in caso di errore.

    La tua installazione potrebbe essere stata configurata o meno utilizzando un ENV_GROUP_RELEASE_NAME diverso da ENV_GROUP. Per informazioni sulle impostazioni, vedi Installare Apigee Hybrid utilizzando Helm.

    Installa il grafico:

    helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
    --namespace APIGEE_NAMESPACE \
    --atomic \
    --set envgroup=ENV_GROUP \
    -f OVERRIDES_FILE
    

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

Diagnosi

Contatta l'amministratore di rete e verifica se l'elenco degli endpoint API Apigee è incluso nella lista consentita del firewall sulla piattaforma in cui è installato Apigee. Per GKE, potrebbe trattarsi di Cloud Next Generation Firewall.

Risoluzione

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

Causa: l'accesso privato Google non è abilitato

Diagnosi

  1. Se Apigee viene implementato su un cluster GKE privato che non ha accesso a internet, l'accesso privato Google deve essere abilitato 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 un'emittente.
  4. Nella scheda Subnet, nella colonna Accesso privato Google, verifica che la subnet pertinente sia abilitata. 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 un'emittente.
  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 abilitato, il problema verrà risolto.

Causa: errore di rete sconosciuto

Diagnosi

Contatta l'amministratore di rete e verifica se si sono verificati 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, il problema verrà risolto.

Deve raccogliere informazioni diagnostiche

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

  1. L'ID progetto Google Cloud .
  2. Il nome dell'organizzazione Apigee hybrid.
  3. Gli output dei seguenti comandi eseguiti su tutti i nodi del cluster Kubernetes:
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. Il file overrides.yaml, mascherando 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. Dump di cluster-info di Kubernetes:

    Genera il dump di cluster-info di Kubernetes:

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

    Comprimi il dump di cluster-info di Kubernetes:

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