部署Google App Engine自定义运行时的几个问题
我有一个httpserver的docker镜像,我想将其作为自定义运行时部署到Google App Engine。 我在部署应用程序时遇到了一些问题。
我正在使用的命令是:
gcloud app deploy --image-url gcr.io/project-id/image --version dev
部署通常工作但是:
-
部署需要很长时间 。 大约5 – 10分钟。 这比我所期望的要长得多。 我期待它花费大约相同的时间顺序,以便启动虚拟机,下载镜像,并执行
docker run
。 但部署至less需要两倍的时间。 我知道这不完全是一回事,但这似乎是一个合理的球场。 有什么我可以做得更快? -
有时,直到应用程序启动后,命令才会返回 。 我一直在部署正在监视日志,有时我看到部署完成,
/_ah/health
请求返回200,我可以击中应用程序的其他url,但gcloud app deploy
将不会返回,直到几分钟后。 -
有时在应用程序启动之前,命令会返回成功 。 再次监视日志,有时我发现
gcloud app deploy
返回,但应用程序无处不在。/ah/_health
还在返回503
。 一段时间后,应用程序将起来,工作得很好,所以没有问题的形象。 -
CRTL-X弄糟了 。 一旦我启动
gcloud app deploy
我不能优雅地取消操作。 如果我使用CTRL-X中断,服务在一段时间内(10-15分钟?)处于无法pipe理的状态。 在此期间,我无法删除该服务,也无法运行其他gcloud app deploy
。 有没有优雅的方式来中断部署?
考虑到所有这些问题,我想知道如果我尝试在App Engine上使用自定义运行时出错。 这感觉对我来说是一半,我想知道它是否适合生产。 有更好的select部署Docker容器吗? 容器引擎是显而易见的select,但似乎FAR比我所需要的更复杂。 我只想一个简单的可扩展的方式来运行一个单一的泊坞窗图像作为httpserver。