有关 VPC 的故障诊断
本文档涵盖您可能会遇到的常见问题,并提供了一些有用的提示。
使用 API 时采用 DEBUG 方式或 verbose
方式
例如,可以向 --verbose
命令添加 curl
,然后向我们发送返回的 X-Request-Id:
值,以便我们可以对问题进行故障诊断。 遇到连接问题时,--verbose
标志特别有用。
另一个选项是向 -i
命令添加 curl
标志,以便支持团队可以在您请求的响应中看到头。 您需要联系支持人员时,此标志在大多数情况下非常有用。
API 调用需要不记名令牌
通过 cURL 命令使用 API 时,可能需要在 Authorization 头中包含“Bearer”,具体取决于 $iam_token
中的内容。 如果其中包含“Bearer”这个词,那么在 Authorization 头中不用重复包含该词。 大部分示例假定“Bearer”包含在头中。
使用 CLI 时开启 TRACE
方式
要在使用 CLI 时开启 TRACE
(调试)方式,请在 CLI 命令前面设置 IBMCLOUD_TRACE=true
。
例如:
IBMCLOUD_TRACE=true ibmcloud is pubgws
将其他端点用于 CLI
要更改 IBM Cloud® CLI 默认使用的 VPC API 端点,请在使用 CLI 前设置环境变量 IBMCLOUD_IS_API_ENDPOINT
。 例如
export IBMCLOUD_IS_API_ENDPOINT=api.dev.domain.com
常见问题
以下是您可能迂到的一些困难。
IAM 令牌已到期
该服务不再返回任何 JSON,而只是对所有请求给出 HTTP“401 未授权”。 如果 IAM 令牌过期,大约一小时后会出现此错误。 重新运行 iam_token=$(ibmcloud iam oauth-tokens | awk '/IAM/{ print $4; }')
来刷新 IAM 令牌。
无法创建 VPC 或其他资源
如果无法创建 VPC 或其他资源,请确保账户所有者已授予您正确的 权限。
没有来自 API 的响应
如果 API 不再返回任何 JSON,很可能是你的 IAM 令牌过期了,需要刷新。 再次登录 IBM Cloud 或运行 iam_token=$(ibmcloud iam oauth-tokens | awk '/IAM/{ print $4; }')
刷新令牌。
无法删除资源
某些操作 (例如,创建和删除虚拟服务器实例以及创建和删除子网) 是通过 API 异步完成的。 因此,建议您先轮询要删除的资源,以检查删除情况,然后再继续。
由于这些异步操作,从系统中删除资源可能需要几分钟时间。 为了便于删除,最佳做法是按以下顺序执行删除操作:
- 删除实例
- 删除公共网关
- 删除子网
- 删除 VPC
有关详细信息,请参阅 删除 VPC。
跟踪标识为空
通常,当跟踪 ID 为空时,是因为返回的 JSON 与预期的 API 不一致。 尝试运行命令 RIAAS_DEBUG=yes ibmcloud is server-rm 3fb7c1eb-45fd-4c85-962e-617f216e7393
(用正确的服务器 ID 标记代替)并检查输出结果。
VPC 公共网关断开连接
IKS 集群与后端数据库之间的 TCP 连接由 VPC 公共网关在 TCP 空闲时间 (例如,5 分钟) 内断开。
对于 TCP 连接,VPC 公共网关具有固定的 4 分钟超时,并且不可配置。 发生此问题的原因是空闲时间的 Linux 缺省超时为 2 小时 (仅当连接处于空闲状态 2 小时,才会发送 TCP 保持活动包)。
将空闲时间设置为小于 4 分钟 (例如,180 秒)。