2

Вот мой worker.yamlGoogle App Engine развернуть приложение пользовательских VM занимает много времени, чтобы развернуть

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

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,5 ГБ image size

Прошло больше часа, и он все еще развертывается.

Edit: Я попытался развернуть из сетевой машины локальной и это действительно быстрее, чтобы загрузить изображение, но развернуть бесконечен и я получаю Error Response: [4] DEADLINE_EXCEEDED

все ошибки, которые я вижу на этом прикрепляются ERROR: build step "gcr.io/cloud-builders/[email protected]:1b5a8642d04ef785f7dd2dbb0296f837895f50442fdfe5ebd0b04c206ab0b1b5" failed: exit status 2 here Где я могу проверить журналы?

Edit # 2:

Я побежал, как этот

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

получать Error Response: [13] Timed out when starting VMs. It's possible that the application code is unhealthy

Но я добавил это к worker.yaml

health_check: 
    enable_health_check: False 

так как Я отключил проверку работоспособности ??

ответ

2

Хороший кусок времени развертывания часто расходуется на загрузку изображения докеров, в основном в зависимости от размера изображения (в вашем случае довольно большой - 3,5 ГБ), скорости загрузки интернет-соединения и «близости» вашего сервера к GAE региона.

Возможно, вы получите значительное повышение скорости загрузки, выполнив развертывание с виртуальной машины с облачным хранилищем (в идеале это устройство GCE, размещенное в том же регионе, что и ваше приложение GAE).

Построение изображения также требует времени, некоторые из которых неизбежны. Вы могли бы быть в состоянии ускорить его немного, см How can I speed up Rails Docker deployments on Google Cloud Platform?

Кроме того, при повторном развертывании приложения некоторые неизбежные дополнительные шаги, которые необходимы по сравнению с первым развертыванием приложений см why does google appengine deployment take several minutes to update service

+0

Привет @Dan, отредактировал мой вопрос – WebQube

+0

Дэн, я получаю «Ответ на ошибку: [13] Сроки при запуске виртуальных машин. Возможно, код приложения нездоровый, хотя я отключил проверку работоспособности. как пропустить проверку работоспособности? – WebQube

+0

Unsure (пока я еще не использовал гибкий env). Документы немного противоречивы в отношении того, что медицинские проверки являются обязательными или нет. Я бы попробовал варианты развертывания '--no-promotion' и' --no-stop-previous-version', чтобы уменьшить объем развертывания, возможно, указанную версию - в попытке не вернуть развертывание развертывания. Если я получу виртуальную машину, я попытаюсь отладить ее, как обычную виртуальную машину GCE, прежде чем пытаться ее отладить как приложение GAE. Также проверьте https://cloud.google.com/appengine/docs/flexible/custom-runtimes/troubleshoot. В любом случае, я задал бы его как отдельный вопрос, чтобы все было просто. –

Смежные вопросы