지난 2일 동안 우리는 배포 문제에 봉착했습니다. 이전에 앱이 완벽하게 배포되었습니다. 우리는 에 어떤 변화도 도입하지 않았습니다 app.yaml
.
다음과 같은 일상적인 일을 합니다.gcloud app deploy app.yaml
service: subscriber
runtime: nodejs
env: flex
env_variables:
SCRIPT: subscriber.js
LOG_LEVEL: info
health_check:
enable_health_check: false
resources:
memory_gb: 4
automatic_scaling:
min_num_instances: 1
max_num_instances: 40
cpu_utilization:
target_utilization: 0.75
빌드는 평소대로 진행되지만 결국 오류와 함께 실패합니다.
34b3438ad618: Layer already exists
de5e96f3b52d: Layer already exists
21df82f90a72: Layer already exists
0529bceacd9f: Layer already exists
3578a2f7453e: Pushed
94aa0c608f65: Pushed
latest: digest: sha256:3addb3a35b43dc5c45ebc86ad10c7f8c7b4408c781095fd819bd94ac8d7b497b size: 2417
DONE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Updating service [subscriber] (this may take several minutes)...failed.
ERROR: (gcloud.app.deploy) Error Response: [13] App Engine Flex failed to configure resources.
Gcloud 버전:
gcloud version
Google Cloud SDK 189.0.0
alpha 2017.09.15
beta 2017.09.15
bq 2.0.29
core 2018.02.12
gcloud
gsutil 4.28
kubectl
답변1
이는 활성화된 enable_health_check: false
애플리케이션의 매개변수 와 관련된 최신 릴리스와 연관되었을 수 있습니다 .split_health_checks
다음을 사용하여 배포 enable_health_check: true
하거나 실행 해 볼 수 있습니까?명령:
gcloud app update --no-split-health-checks
?
답변2
에 따르면문서:
... 업데이트된 상태 확인더욱 세분화되었으며 별도의 검사를 사용하여 App Engine 인스턴스가 실행 중(라이브)이고 콘텐츠를 제공할 준비가 되었는지(준비) 확인할 수 있습니다. 이러한 건강검진은 기본적으로 활성화됨.
기본적으로 를 포함할 필요가 없다는 의미입니다 enable_health_check: False
. 레거시 상태 확인을 사용하지 않으려면 이 두 줄을 생략하세요.
반면에, 당신이 사용하고 싶다면기존 상태 확인, 다음 명령을 실행하십시오.
gcloud app update --no-split-health-checks
구성 파일에 상태 확인 섹션을 추가합니다.
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2