为什么在GCE上运行容器会导致卡住元数据请求被禁止失败(403)

时间:2018-09-27 09:48:06

标签: metadata google-compute-engine google-kubernetes-engine

我正在尝试在Google Compute Engine上的自定义VM中运行容器。这是为了执行繁重的ETL过程,所以我需要一台大型机器,但每月只需要几个小时。我有两个版本的容器,但有一些小的启动更改。这两个版本都是由同一台计算机使用相同的Google登录名构建并推送到同一Google容器注册表中的。较旧的版本可以正常工作,但较新的版本会由于陷入以下错误的无尽列表而失败:

E0927 09:10:13 7f5be3fff700 api_server.cc:184元数据请求失败:服务器以“禁止”响应(403):传输端点未连接

有人可以告诉我这里到底发生了什么吗?谁能解释一下为什么我的一张图像没有这个问题(它给出了一些消息但可以通过)而另一张图像确实有这个问题(成千上万的消息并在我杀死它之前需要24小时以上) )。

如果我使用GCE实例,那么这两个版本的容器都可以正常运行。我怀疑是从日志中检查了INTEGRITY_RULE,但对该工作方式一无所知。

更多信息:这归结为“重启策略:从不”。如果从来没有使用重启策略,那么即使是一个简单的Centos:7容器,它说从控制台部署了“ hello world”,也会触发此操作。至少在短期内,我可以在入口点脚本中解决此问题,因为当监视器意识到进程已完成时,实例将被破坏

1 个答案:

答案 0 :(得分:0)

我建议您尝试创建一个专注于元数据服务功能的第3个容器,以找出问题所在。可能是两个容器之间的时间差异没有被克服。

确保可以从VM“卷曲”元数据服务,并且对元数据服务的请求正在使用VM的服务帐户。