您正在查看 Apigee 和 Apigee Hybrid 文档。
此主题没有等效的 Apigee Edge 文档。
表现
- API 产品、开发者、应用未在 Apigee 界面中填充。
- API 代理部署未完成。
- 为读取和写入 API 产品、开发者和应用而执行的 Management API 请求会失败。/li>
错误消息
本部分介绍在没有网络连接时可能会显示的错误消息。
ApigeeIssue
如果此问题报告为 ApigeeIssue,则运行以下命令时:
kubectl -n APIGEE_NAMESPACE get apigeeissues
其中,APIGEE_NAMESPACE 是 Kubernetes 资源分组的名称。
显示以下错误代码:
NAME SEVERITY AGE URL control-plane-connectivity-failure Error 1hr https://cloud.google.com/apigee/docs/api-platform/troubleshoot/playbooks/no-network-connectivity
API 产品、开发者和应用 Apigee 界面页面
API 产品、开发者和应用 Apigee 界面页面会显示以下错误:
Error: no connections available from the Apigee connect agent(s): refer to documentation to triage further.
apigee-synchronizer 日志
您可以在 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)
apigee-watcher 日志
您可以在 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"}
可能的原因
平台 | 原因 | 说明 |
---|---|---|
全部 | 没有互联网可用的网络路由 | 如果没有互联网可用的网络路由,Apigee 运行时平面组件将无法与 Apigee 控制平面 API 通信。 |
全部 | Apigee API 端点未列入许可名单 | 如果存在防火墙,则 Apigee API 端点可能尚未列入许可名单。 |
GKE | 专用 Google 访问通道未启用 | 如果是在 GKE 上部署的,则子网中可能尚未启用专用 Google 访问通道。 |
全部 | 未知网络故障 | 如果集群网络在连接到互联网时遇到未知故障,则可能出现此问题。 |
原因:没有互联网可用的网络路由
诊断
- 根据所使用的平台,验证是否存在从集群网络到互联网可用的网络路由。例如,如需详细了解 GKE 上的网络,请参阅网络概览。
- 请与您的基础架构和网络团队联系,了解集群网络是否使用转发代理服务器连接到互联网。
解决方法
- 请与网络管理员联系,如有可能,请将网络路由添加到互联网。
-
如果存在用于在集群网络和互联网之间进行通信的转发代理服务器,请在 Apigee 中使用
overrides.yaml
文件配置转发代理服务器设置,并将该更改应用于运行时平面。apigeectl apply --settings virtualhosts -f overrides/overrides.yaml
原因:Apigee API 端点未列入许可名单
诊断
请与网络管理员联系,确认 Apigee API 端点列表是否在安装 Apigee 的平台上的防火墙中已列入许可名单。对于 GKE,这可能是 Cloud 新一代防火墙。
解决方法
如果上述 Apigee API 端点列表未被列入许可名单,请与网络管理员联系并执行该要求。
原因:专用 Google 访问通道未启用
诊断
- 如果 Apigee 部署在无法访问互联网的专用 GKE 集群上,则需要启用专用 Google 访问通道,允许 Apigee 运行时平面组件在内部访问 Google API。
-
在 Google Cloud 控制台中,转到 VPC 网络页面。
- 点击某个网络的名称。
- 在子网标签页上的专用 Google 访问通道列中,验证相关子网是否已启用。如未启用,这就是此次失败的原因。
解决方法
-
在 Google Cloud 控制台中,转到 VPC 网络页面。
- 点击某个网络的名称。
- 点击某个子网的名称。
- 点击 修改。
- 选择开启专用 Google 访问通道。
- 点击保存。启用后,此问题将得到解决。
原因:未知网络故障
诊断
请联系您的网络管理员,并验证集群网络中是否存在任何未知故障。
解决方法
与您的网络管理员合作,解决集群网络中的问题。网络问题得到解决后,此问题就会得到解决。
必须收集的诊断信息
如果按照上述说明操作后问题仍然存在,请收集以下诊断信息,然后与 Google Cloud Customer Care 联系:
- Google Cloud 项目 ID。
- Apigee Hybrid 组织的名称
- 在所有 Kubernetes 集群节点上执行以下命令后的输出:
ping apigee.googleapis.com
traceroute apigee.googleapis.com
telnet apigee.googleapis.com 443
- 遮盖所有敏感信息的
overrides.yaml
文件。 - 所有命名空间中的 Kubernetes pod 状态:
kubectl get pods -A > kubectl-pod-status`date +%Y.%m.%d_%H.%M.%S`.txt
- Kubernetes 集群信息转储:
生成 Kubernetes 集群信息转储:
kubectl cluster-info dump -A --output-directory=/tmp/kubectl-cluster-info-dump
Zip Kubernetes 集群信息转储:
zip -r kubectl-cluster-info-dump`date +%Y.%m.%d_%H.%M.%S`.zip /tmp/kubectl-cluster-info-dump/*