【问题标题】:Compute Engine Istance group gcloud - IP change if a specific istance go downCompute Engine 实例组 gcloud - 如果特定实例出现故障,IP 更改
【发布时间】:2019-04-03 17:55:25
【问题描述】:

我在管理 gcloud 计算引擎上的 istance 组时遇到了很大的问题。

我为组的第一个实例设置了一个静态 ip XX.XXX.XX.XX,这个 ip 与一个域连接。

如果在扩展期间创建的第一台机器被取消,则没有一个新实例将使用该 IP。 这是一个问题,因为我的域出现故障。 我想通过创建另一个对域执行 ping 操作的分离实例来管理此问题……如果域已关闭,则更改(使用 gcloud 命令)该新实例的 IP。

我想问一下,有没有人发现了一些技巧来解决这个问题? 谢谢大家

编辑:好的,LB 正在工作,但我需要通过该 LB “直播”,因为该 LB 管理一个管理直播的 istance 组。 现在,如果我设置它,我将无法上线(来自任何软件,例如 OBS 和类似软件):/

所以,简单回顾一下: 我有我的域名example.com 我有我的独立组istance_group_example 负载均衡器http_loadb 我在 http_loadb 的前端设置了我的 ip(静态,不是临时),然后我去 cloudflare 并设置静态 ip。 如果我访问我的 example.com,我可以看到我的自定义页面。

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

如果我将我的 DNS 直接指向 istance 组内的一个 istance 的 IP(绕过负载均衡器),一切正常。

【问题讨论】:

    标签: google-compute-engine gcloud autoscaling


    【解决方案1】:

    我认为您实际上正在寻找的是 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 负载平衡器(网络服务 -> 负载平衡器 -> HTTP(S) 负载平衡器)。后端服务将指向您的实例组和您的服务的相关端口。在此处分配另一个运行状况检查。这将很有用,因此 LB 会在一个实例发生故障时立即知道,以便将其从目标池中取出。如果您不是特别需要它,请不要选择会话亲和性。

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

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

    【讨论】:

    • 哦,好吧!所以我有这个域 --> example.com 我有 istance 组 --> istance-group-scalable 我需要创建这个负载均衡器(我想在后端,那个 istances 不包括前端应用程序)并添加到云DNS 我的域?
    • 好的,为了清楚起见,我将更新我的答案,而不是让 cmets 变得混乱。看看吧。
    • 问题更新了,也许我必须设置一个 TCP 负载均衡器?
    • 好的,如果您实际上并未提供 HTTP 流量,是的,您可能需要一个 TCP 负载平衡器。最重要的是,我认为您遇到的问题可能是连接超时(即使如果负载均衡器没有从客户端接收到流量,连接实际上并没有处于非活动状态,它也会丢弃它)。对于 TCP 负载均衡器,超时时间为 10 分钟,比 HTTP 长得多,所以这可能对您有用。如果不是,您可能应该考虑发送定期的“keepalives”。更多关于这里groups.google.com/forum/#!topic/gce-discussion/8knQumfLsBY
    • 如果我需要同时提供 HTTP(S) 和 TCP 怎么办?
    猜你喜欢
    • 1970-01-01
    • 2014-11-22
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2017-01-10
    • 1970-01-01
    • 2016-03-13
    相关资源
    最近更新 更多