Sem conetividade de rede entre o plano de tempo de execução e o plano de controlo

Está a ver a documentação do Apigee e do Apigee Hybrid.
Não existe um equivalente na documentação do Apigee Edge para este tópico.

Sintomas

  • Os produtos de API, os programadores e as apps não são preenchidos na IU do Apigee.
  • As implementações de proxy de API não são concluídas.
  • Os pedidos da API Management executados para ler e escrever produtos API, programadores e apps falham.

Mensagens de erro

Esta secção descreve as possíveis mensagens de erro apresentadas quando não existe conectividade de rede.

ApigeeIssue

Se este problema tiver sido comunicado como um ApigeeIssue, quando o seguinte comando é executado:

kubectl -n APIGEE_NAMESPACE get apigeeissues

onde APIGEE_NAMESPACE é o nome de um agrupamento de recursos do Kubernetes.

É apresentado o seguinte código de erro:

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

Páginas da IU do Apigee de produtos de API, programadores e apps

As páginas da IU da API Apigee Products, Developers e Apps apresentam o seguinte erro:

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

Registos do apigee-synchronizer

Pode ver a seguinte mensagem de erro nos registos de 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)

Registos do apigee-watcher

Pode ver a seguinte mensagem de erro nos registos de apigee-watcher:

{"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"}

Causas possíveis

Plataforma Causa Descrição
Tudo Nenhum trajeto de rede disponível para a Internet Se não estiver disponível nenhum caminho de rede para a Internet, os componentes do plano de execução do Apigee não vão conseguir comunicar com as APIs do plano de controlo do Apigee.
Tudo Os pontos finais da API Apigee não estão na lista de autorizações Se existir uma firewall, os pontos finais da API Apigee podem não ter sido adicionados à lista de autorizações.
GKE O acesso privado à Google não está ativado Se a implementação estiver no GKE, o acesso privado à Google pode não ter sido ativado na sub-rede.
Tudo Falha de rede desconhecida Este problema pode ocorrer se houver uma falha desconhecida na rede do cluster ao estabelecer ligação à Internet.

Causa: não existe nenhum caminho de rede disponível para a Internet

Diagnóstico

  1. Consoante a plataforma usada, verifique se existe um caminho de rede disponível a partir da rede do cluster para a Internet. Por exemplo, para mais informações sobre a rede no GKE, consulte a Vista geral da rede.
  2. Verifique junto da sua equipa de infraestrutura e rede se a rede do cluster usa um servidor proxy de encaminhamento para estabelecer ligação à Internet.

Resolução

  1. Contacte o administrador de rede e adicione uma rota de rede à Internet, se possível.
  2. Se existir um servidor proxy de encaminhamento usado para a comunicação entre a rede do cluster e a Internet, configure as definições do servidor proxy de encaminhamento no Apigee através do ficheiro overrides.yaml e aplique essa alteração ao plano de execução através do comando Helm:

    Execução de ensaio:

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

    Certifique-se de que inclui todas as definições apresentadas, incluindo --atomic para que a ação seja revertida em caso de falha.

    A sua instalação pode ou não ter sido configurada através de um ENV_GROUP_RELEASE_NAME diferente de ENV_GROUP. Para ver informações sobre as definições, consulte o artigo Instale o Apigee hybrid com o Helm.

    Instale o gráfico:

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

Causa: os pontos finais da API Apigee não estão na lista de autorizações

Diagnóstico

Contacte o administrador de rede e verifique se a lista de pontos finais da API Apigee está na lista de autorizações na firewall na plataforma onde o Apigee está instalado. Para o GKE, pode ser o Cloud Next Generation Firewall.

Resolução

Se a lista acima de endpoints da API Apigee não estiver na lista de autorizações, contacte o administrador de rede e cumpra esse requisito.

Causa: o acesso privado à Google não está ativado

Diagnóstico

  1. Se o Apigee for implementado num cluster GKE privado que não tenha acesso à Internet, o acesso privado à Google tem de ser ativado para permitir que os componentes do plano de tempo de execução do Apigee acedam internamente às APIs Google.
  2. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  3. Clique no nome de uma rede.
  4. No separador Sub-redes, na coluna Acesso privado à Google, verifique se a sub-rede relevante está ativada. Se não for o caso, esse é o motivo desta falha.

Resolução

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique no nome de uma rede.
  3. Clique no nome de uma sub-rede.
  4. Clique em Editar.
  5. Selecione Acesso privado à Google ativado.
  6. Clique em Guardar. Depois de ativada, este problema é resolvido.

Causa: falha de rede desconhecida

Diagnóstico

Contacte o administrador da rede e verifique se existem falhas desconhecidas na rede do cluster.

Resolução

Trabalhe com o administrador da rede e resolva os problemas na rede do cluster. Quando os problemas de rede forem corrigidos, este problema é resolvido.

Tem de recolher informações de diagnóstico

Se o problema persistir mesmo depois de seguir as instruções acima, recolha as seguintes informações de diagnóstico e, em seguida, contacte o apoio ao cliente da Google Cloud:

  1. O Google Cloud ID do projeto.
  2. O nome da organização do Apigee Hybrid.
  3. Os resultados dos seguintes comandos executados em todos os nós do cluster do Kubernetes:
    ping apigee.googleapis.com
    traceroute apigee.googleapis.com
    telnet apigee.googleapis.com 443
  4. O ficheiro overrides.yaml, ocultando quaisquer informações confidenciais.
  5. O estado do pod do Kubernetes em todos os espaços de nomes:
    kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
  6. A captura de informações do cluster do Kubernetes:

    Gerar um descarregamento de informações do cluster do Kubernetes:

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

    Comprimir a captura de informações do cluster do Kubernetes:

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