Compute Engine Istance组gcloud-如果特定距离下降,则IP更改

时间:2018-10-30 16:12:50

标签: google-compute-engine gcloud autoscaling

我在gcloud计算引擎上管理一个隔离小组时遇到了很大的问题。

我将静态IP XX.XXX.XX.XX设置为该组的第一个位置,该IP与域相连。

如果在缩放过程中取消了创建的第一台计算机,则任何新实例都不会使用该IP。 这是一个问题,因为我的域名出现故障。 我想通过创建另一种隔离的实例来对此域进行ping操作,以解决此问题...如果域关闭,则使用gcloud命令更改该新实例的ip。

我想问,有人找到了解决此问题的技巧吗? 谢谢大家

编辑:好的,LB正在工作,但是我需要通过该LB“实时流式传输”,因为该LB管理一个用于管理实时流式传输的等距组。 现在,如果我设置了它,我将无法上线(从任何软件,例如OBS和类似软件)开始:/

所以,回顾一下: 我有我的网域example.com 我有等距组istance_group_example 负载均衡器http_loadb 我在http_loadb的前端设置了我的IP(静态的,不是临时的),然后转到cloudflare并设置了静态IP。 如果我转到example.com,则可以看到我的自定义页面。

现在的问题是,我可以访问服务器,但是如果我需要使用OBS创建实时流(例如),obs会加载连接一段时间,然后停止。

如果我将DNS直接指向(位于负载均衡器旁的)等距组内某个等距的IP,则一切正常。

1 个答案:

答案 0 :(得分:2)

我认为您实际上正在寻找的是HTTP load balancer。负载平衡器应使用您的域指向的静态IP。在那里,它可以将流量转发到当前处于健康状态的任何实例(您正在寻找的另一件事是health checks,它或多或少会与您在其他实例组中进行的设置相同,然后ping( (对于TCP)或定期执行GET / HEAD请求,如果任何实例无响应,它将得到处理,并且在恢复之前不会接收任何流量。

因此,您的解决方案的基本架构如下:

  • 一个托管实例组设置为自动缩放(如果需要)和自动修复(在这种情况下,这是非常必要的,因此任何死实例都将替换为正常实例)。

  • 实例组上设置的运行状况检查,将继续轮询“服务端口”上的实例,以确认它们是否已启动。 This is important to ensure that the instances are checked consistently and terminated/recreated based on a consistent metric。负载均衡器也将使用其自身的运行状况检查。

  • 全局HTTP loead平衡器(网络服务->负载平衡器-> HTTP(S)负载平衡器),指向您将创建的后端服务。后端服务将指向您的实例组和服务的相关端口。在此处分配另一个健康检查。这将很有用,以便LB在一个实例发生故障时立即意识到,因此可以将其从目标池中删除。如果您不是特别需要,请不要选择会话关联。

  • 对于LB前端,选择HTTP(S)端口或您需要的任何端口,然后在IP地址下选择“创建新的静态地址”并命名。该IP地址将是您域的DNS记录所指向的位置。

  • 在LB准备就绪后,进入您的名称服务器(例如,如果您要从那里管理域DNS,则为CloudDNS,如果不是您的注册服务商提供的任何解决方案),则将A记录指向您分配给负载的IP平衡器。