谷歌应用引擎部署自定义 vm 应用需要很长时间才能部署 [英] google app engine deploy a custom vm app takes a long time to deploy

查看:31
本文介绍了谷歌应用引擎部署自定义 vm 应用需要很长时间才能部署的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的worker.yaml

Here is my worker.yaml

runtime: custom #python27
api_version: 1
threadsafe: false
vm: true
service: worker
env_variables:
  PYTHON_ENV: lab
network:
  instance_tag: testing123
  name: dev


handlers:
- url: /.*
  script: Framework.Workers.PushQueues.worker.app
  login: admin

Dockerfile

Dockerfile

FROM us.gcr.io/smiling-diode-638/basic-algo-docker-v2

和控制台输出:

gcloud app deploy worker.yaml  --verbosity='debug'                              ✱
DEBUG: Running gcloud.app.deploy with Namespace(__calliope_internal_deepest_parser=ArgumentParser(prog='gcloud.app.deploy', usage=None, description='Deploy the local code and/or configuration of your app to App Engine.', version=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=False), account=None, authority_selector=None, authorization_token_file=None, bucket=None, calliope_command=<googlecloudsdk.calliope.backend.Command object at 0x108770290>, command_path=['gcloud', 'app', 'deploy'], configuration=None, credential_file_override=None, deployables=['worker.yaml'], docker_build=None, document=None, flatten=None, format=None, h=None, help=None, http_timeout=None, ignore_bad_certs=False, image_url=None, log_http=None, project=None, promote=None, quiet=None, server=None, skip_image_url_validation=False, skip_staging=False, stop_previous_version=None, trace_email=None, trace_log=None, trace_token=None, user_output_enabled=None, verbosity='debug', version=None).
DEBUG: API endpoint: [https://appengine.googleapis.com/], API version: [v1beta5]
You are about to deploy the following services:
 - smiling-diode-638/worker/20161109t165841 (from [/Volumes/ownhealth_dev/Backend/worker.yaml])
     Deploying to URL: [https://worker-dot-smiling-diode-638.appspot.com]

Do you want to continue (Y/n)?  Y

DEBUG: No bucket specified, retrieving default bucket.
DEBUG: Using bucket [gs://staging.smiling-diode-638.appspot.com/].
If this is your first deployment, this may take a while...DEBUG: Host: appengine.google.com
DEBUG: _Authenticate configuring auth; needs_auth=False
DEBUG: Sending request to https://appengine.google.com/api/vms/prepare?app_id=smiling-diode-638 headers={'X-appcfg-api-version': '1', 'content-length': '0', 'Content-Type': 'application/octet-stream'} body=
INFO: Attempting refresh to obtain initial access_token
INFO: Refreshing access_token
If this is your first deployment, this may take a while...DEBUG: Got response: {bucket: vm-containers.smiling-diode-638.appspot.com, path: /containers}

If this is your first deployment, this may take a while...done.

Beginning deployment of service [worker]...
DEBUG: No staging command found for runtime [custom] and environment [MANAGED_VMS].
WARNING: Deployment of App Engine Flexible Environment apps is currently in Beta
INFO: Using Dockerfile found in /Volumes/ownhealth_dev/Backend
Building and pushing image for service [worker]


INFO: Refreshing access_token
INFO: Uploading [/var/folders/d1/lgf326px48s8w6cvj2f7ng200000gp/T/tmplQDUjR/src.tgz] to [us.gcr.io/smiling-diode-638/appengine/worker.20161109t165841:latest]

图片大小为 3.5GB

The image is 3.5GB

已经一个多小时了,还在部署中.

it's been more than an hour and it's still deploying.

我尝试从本地网络机器进行部署,下载图像确实更快,但部署是无止境的,我得到 Error Response: [4] DEADLINE_EXCEEDED

I tried deploying from a local network machine and it's indeed faster to download the image but the deploy is endless and i'm getting Error Response: [4] DEADLINE_EXCEEDED

我看到的所有错误都附上了错误:构建步骤gcr.io/cloud-builders/docker@sha256:1b5a8642d04ef785f7dd2dbb0296f837895f50442fdfe5ebd0b04c206ab0b1b5"失败:退出状态2我在哪里可以查看日志?

all the errors I see on that are attached ERROR: build step "gcr.io/cloud-builders/docker@sha256:1b5a8642d04ef785f7dd2dbb0296f837895f50442fdfe5ebd0b04c206ab0b1b5" failed: exit status 2 where can I check logs for that?

编辑#2:

我是这样跑的

gcloud preview app deploy worker.yaml --image-url=us.gcr.io/smiling-diode-638/basic-algo-docker-v2 --verbosity='debug'

得到错误响应:[13] 启动 VM 时超时.可能是应用程序代码不健康

但我已将此添加到 worker.yaml

health_check:
  enable_health_check: False

那么我该如何禁用健康检查呢??

so how do I disable the health check ??

推荐答案

大部分部署时间通常用于上传 docker 镜像,很大程度上取决于镜像大小(在你的情况下相当大 - 3.5GB),你的互联网连接上传速度以及您的服务器与 GAE 区域数据中心的接近性".

A good chunk of the deployment time is often spent uploading the docker image, largely depending on the image size (in your case pretty big - 3.5GB), your internet connection upload speed and your server's "closeness" to the GAE region datacenter.

通过从云托管的 VM(最好是与 GAE 应用托管在同一区域的 GCE 机器)执行部署,您可能会显着提高上传速度.

You might get a significant upload speed boost by performing the deployment from a cloud-hosted VM (ideally a GCE machine hosted in the same region as your GAE app).

构建映像也需要时间,其中一些是不可避免的.您也许可以加快速度,请参阅 如何加快在 Google Cloud Platform 上的 Rails Docker 部署?

Building the image also takes time, some of it unavoidable. You might be able to speed it up a bit, see How can I speed up Rails Docker deployments on Google Cloud Platform?

此外,与第一次部署应用相比,重新部署应用时需要一些不可避免的额外步骤,请参阅 为什么google appengine部署需要几分钟才能更新服务

Also, when re-deploying the app some unavoidable additional steps are required compared to the first app deployment, see why does google appengine deployment take several minutes to update service

这篇关于谷歌应用引擎部署自定义 vm 应用需要很长时间才能部署的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆