我在谷歌云中有一个托管实例组,其中有一个实例。我为我的应用程序使用容器图像。我不允许 HTTP(S) 流量。负载均衡器指向它。我已经设置了运行状况检查,当我通过 SSH 进入实例并执行
curl localhost:80/health
操作时,我会收到响应,因此容器会正确启动。但是负载均衡器显示该实例运行状况不佳。我还为适当的 IP 范围(130.211.0.0/22、35.191.0.0/16)和端口(tcp:80)设置了入口防火墙规则。
我从使用以下命令创建的模板创建实例:
gcloud compute instance-templates create-with-container magnificent-monolith-try4 --project=my-proj --machine-type=e2-micro --network-interface=network=default,network-tier=PREMIUM --region=europe-west1 --maintenance-policy=MIGRATE [email protected] --scopes=https://www.googleapis.com/auth/cloud-platform --tags=lb-health-check,allow-health-check --container-image=europe-west1-docker.pkg.dev/my-proj/docker-repository/magnificent-monolith:010c59f2ad7a3a6ff86339cc320785bd9cc41615 --container-restart-policy=always --container-env=end=dev --no-shielded-secure-boot --boot-disk-auto-delete --boot-disk-size=10 --create-disk=auto-delete=yes,mode=rw,name=try-disk,image=projects/cos-cloud/global/images/cos-stable-109-17800-147-60 --shielded-vtpm --shielded-integrity-monitoring
无论出于何种原因,当我手动创建实例模板时,它似乎都有效。唯一的区别是在“图像”下,对于手动创建的模板,它显示
cos-stable-109-17800-147-60
,对于 cli 创建模板,它显示 cos-stable-113-18244-1-37
,但我不明白这如何对健康检查可访问性产生影响..
编辑: 我的实际目标是在我的应用程序更新时部署新的 docker-image。实现此目标的推荐方法是:
所以在这种情况下我的问题是:最小命令如何创建合适的实例模板?
回答您的实际问题:您的实例模板创建脚本似乎合理且相对最小。创建实例模板后,您还可以使用
gcloud compute instance-groups managed set-instance-template
命令从命令行执行转出。
至于您关于容器版本的问题,您列出的特定版本存在问题
cos-stable-113-18244-1-37
。您可以在线搜索该特定版本,以找到抱怨它的各种线程。我建议手动将图像设置为cos-stable-109
版本,因为如果您不设置版本,Google可能会向您推送另一个损坏的容器版本。