Google AppEngine应用可通过DNS在可预测的位置(std::string line;
while(getline(cin, line))
{
auto s = std::remove_if(line.begin(), line.end(), [](auto& c) { return !isdigit(c); });
line.erase(s, line.end());
vect.push_back(std::stoi(line));
}
)自动访问。对于Google容器引擎实例也是如此吗?
为GKE实例提供公共IP很简单,但如果您想共享演示链接(不用担心它们会改变)或使用Google OAuth(不允许使用静态IP作为回调URL),这种方法效果不佳)。
我可以使用Google Cloud DNS注册域并配置子域以指向每个容器引擎实例的IP。但如果GKE已经这样做会更简单!
答案 0 :(得分:7)
Google容器引擎不会自动将DNS主机名与主端点或您在群集中启动的任何应用程序相关联。
群集中的实例(VM)具有公共IP(您可以打开防火墙规则以使其可公开访问),但您通常应该直接联系服务(代表应用程序)而不是实例。
您为其创建外部负载均衡器(L3或L7)的服务将具有公共IP,但不会自动获取关联的DNS名称。
App Engine在App(您在创建时选择全局唯一名称,如果您需要appspot.com域)和您部署的代码之间提升1:1关系。
Container Engine允许您部署多个"应用程序"在单个群集中,并且在创建群集或创建服务时不需要注册全局唯一名称。这为您提供了更大的灵活性,但也意味着如果您想将DNS名称映射到您的应用程序,您必须自己完成。
期望Ingress控制器(用于创建L7服务)有助于简化此过程并不是不合理的,但今天它并没有这样做。随意提交feature request on github。