我们目前在Kubernetes中托管大量容器化网站,我们正在探索使用Google App Engine托管这些网站,但是我们无法弄清楚如何在一个Google App Engine帐户中托管大量(数百个)网站。
乍看之下,似乎每个网站都是一个单独的项目,但后来很明显,有20个项目的软限制(而且我们最终可能托管数百个网站),因此这似乎是不正确的方法。然后,我们使用带有dispatch.yaml的单个项目探索了站点之间的路由。 Dispatch.yaml仅允许十个条目,这意味着它将不起作用。我们还缺少其他方法吗?我们的dispatch.yaml路由如下所示:
- url: "example2.com/*"
service: my-second-website
我们探索的所有选项均未提供可扩展或可行的解决方案。任何帮助或建议将不胜感激。
答案 0 :(得分:0)
您是否尝试过请求增加项目限制?我认为这是完成这项工作的唯一好方法。
如果您尝试超出项目限制,控制台将提示您填写请求表。当您尝试创建项目但已经达到配额时,就会发生这种情况。该表格将要求您指定所需的其他项目数,以及它们相应的电子邮件帐户,账单帐户和预期用途。
https://support.google.com/cloud/answer/6330231?hl=en
如果您对每个网站的网址都同意,则可以使用单个项目和单个service / app.yaml进行操作。
然后,您可以使用handlers
中的app.yaml
进行路由(如果有人尝试访问www.website1.com/website2/
,还可以使用一些轻型服务器代码进行重定向)。这样做的最大问题是,每次部署时,都会部署所有100个站点。
答案 1 :(得分:0)
您需要的是一个App Engine实例,该实例具有多个服务(每个网站一个)和每个服务中的多个版本(如果需要)。
例如:
App Engine instance
├── website01-service
│ ├── website01-version01
│ ├── website01-version02
│ └── website01-version03
│
└── website02-service
├── website02-version01
├── website02-version02
└── website02-version03
这是Quickstart for Python 3 in the App Engine Standard Environment文档中的示例设置。
hello_world
示例文件复制到两个不同的目录中。例如 website01 和 website02 。├── website01
│ ├── app.yaml
│ ├── main.py
│ ├── main_test.py
│ └── requirements.txt
└── website02
├── app.yaml
├── main.py
├── main_test.py
└── requirements.txt
website01/app.yaml
中添加service: website01
,在website02/app.yaml
中添加service: website02
。这样会将每个应用程序部署到不同的App Engine服务中。website01/main.py
中更改return 'First website!'
,在website02/main.py
中更改return 'Second website!'
(这只是在部署后确认正在运行2个不同的网站)。/website01
目录中执行$ gcloud app deploy --version website01-version01
,在/website02
目录中执行$ gcloud app deploy --version website02-version01
website01 -> https://website01-dot-[PROJECT_ID].appspot.com/
website02 -> https://website02-dot-[PROJECT_ID].appspot.com/