api_server.cc:184 元数据请求失败:服务器响应“错误请求”(400):传输端点未连接

api_server.cc:184 元数据请求失败:服务器响应“错误请求”(400):传输端点未连接

我们正在使用带有容器选项的谷歌云实例,我们在堆栈驱动程序日志中每分钟都会看到以下错误。我们不确定这个错误是什么。

api_server.cc:184 元数据请求失败:服务器响应“错误请求”(400):传输端点未连接

我认为这是已发布的云实例元数据服务 API,其中提供了实例详细信息。此外,在我们的一个用例中,我们在实例中使用 gcloud 命令行工具(在 docker 容器内),即使在 docker 容器启动后,gcloud 工具在前 2-5 分钟内也不必访问云 API。在这 2-5 分钟内,它显示类似服务帐户不可用的信息。

我想了解这个错误,但在谷歌搜索中找不到任何相关的详细信息。

答案1

我们也看到了类似的行为。我向 Google 发送了以下电子邮件:

你好,

我在使用时看到了一些不一致的行为gcloud beta compute instances create-with-container,想知道您是否曾经见过类似的行为:

我有一个 docker 镜像(下面的 Dockerfile),我将其构建并推送到容器注册表。在 docker 容器的入口点,我执行一个脚本,该脚本使用 gcloud kms 命令解密密文,并使用 gcloud.compute.instances.delete 删除实例。如果我尝试gcloud beta compute instances create-with-container在推送新镜像后立即使用该镜像运行该镜像。gcloud 命令将出现错误,错误内容如下:

“\u001b[1;31mERROR:\u001b[0m (gcloud.kms.decrypt) 所需属性 [project] 当前未设置。\r”

“您可以通过运行:\r 为您当前的工作区设置它”

“\r”

“$ gcloud config 设置项目值\r”

“\r”

“或者可以通过环境变量 [CLOUDSDK_CORE_PROJECT]\r 临时设置”

或者

“\u001b[1;31mERROR:\u001b[0m (gcloud.compute.instances.delete) 您当前尚未选择活动帐号。\r”

“请运行:\r”

“\r”

“$ gcloud auth login\r”

“\r”

“获取新凭证,或者如果您已经使用\r登录”

“不同的账户:\r”

“\r”

“$ gcloud config 设置帐户 ACCOUNT\r”

“\r”

“选择要使用的已经验证的帐户。\r”

如果我等待大约 3-4 分钟,然后使用完全相同的命令运行完全相同的图像,那么脚本将按预期成功运行。在我看来,设置 gcloud 身份验证存在一些延迟 - 是这样吗?您有什么推荐的方法来缓解这种行为吗?

并收到以下回复:

感谢您的联系和详细报告。我们一定会进一步调查此事,因为设置帐户和启动容器之间很可能存在一些不一致。不幸的是,除了在您从新创建的虚拟机容器发出第一个 gcloud 调用之前添加一个简单的“睡眠”命令之外,我还没有一个好的解决方法。当我了解更多信息或有此问题的解决方案时,我会跟进。

相关内容