如何为使用模板创建的 GCE 实例允许 HTTP/HTTPS?

Lat*_*der 3 https networking http google-cloud-platform

我创建了一个 Google Compute Engine 实例模板,并设置了以下防火墙选项:

GCE实例组模板

然后,我从该模板创建一个实例组,但我似乎无法通过 HTTP/HTTPS 访问该实例。当我查看实例组的设置时,我发现 HTTP/HTTPS 框未选中

GCE实例组防火墙设置

这里发生了什么?这些框不应该被选中吗?我是否应该通过其他方式允许从模板创建的实例组/实例使用 HTTP/HTTPS?

Kol*_*ban 5

我称其为“合理的答案”,这意味着它符合我的知识基础和经验,但可能是错误的……请谨慎使用,如果有误,请发表评论,我们可以删除。

让我们考虑一下通过 Cloud Console 向导创建计算引擎。显然,它创建了一个计算引擎。然而,它似乎还执行其他任务,而不仅仅是 创建计算引擎。

如果我们想象运行 gcloud 命令来创建与我们在控制台中看到的相同的东西,我们会发现什么?事实上,这个问题有一个可靠的答案。如果您访问 Cloud Console 并输入详细信息(包括选中复选框),底部会有一个链接,其中显示等效的 gcloud 命令。

惊喜!!...通过控制台创建计算引擎不仅仅运行单个 gcloud 命令,它还运行多个命令。具体来说:

gcloud beta compute ... instances create instance-1 ...
gcloud compute ... firewall-rules create default-allow-http ...
gcloud compute ... firewall-rules create default-allow-https ...
Run Code Online (Sandbox Code Playgroud)

答案就在这里。在 Cloud Console 中单击这些复选框的概念与计算引擎的定义没有任何关系,并添加了额外单独的命令来配置 VPC 网络防火墙规则集。

考虑到这一点,如果我们随后希望创建一个在创建计算引擎的新实例时使用的模板,这些模板将不包含与创建防火墙规则相关的任何信息。我希望模板能够创建http-server和的 Compute Engine 标签https-server。请检查您的模板是否包含这些内容。如果他们这样做了,那就没什么可说的了,我们有一个完整的解释。