首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建区域TCP负载均衡器时出现问题

创建区域TCP负载均衡器时出现问题
EN

Stack Overflow用户
提问于 2020-04-03 22:11:35
回答 3查看 198关注 0票数 0

我正在尝试创建一个负载均衡器,在给定区域的3个不同的可用区之间平衡流量。如果我创建一个具有外部IP的“全局”负载均衡器,一切都会正常工作,但如果我只尝试创建一个使用特定子网的负载均衡器--健康检查总是失败,因为它们试图转到端口80,而不是我指定的端口。

请注意gcloud compute backend-services get-health xx-redacted-central-lb --region=us-central1的以下输出

代码语言:javascript
运行
复制
---
backend: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-a/instanceGroups/xx-redacted-central-a
status:
  healthStatus:
  - healthState: UNHEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-a/instances/yb-1-xx-redacted-lb-test-n2
    ipAddress: 10.152.0.90
    port: 80
  kind: compute#backendServiceGroupHealth
---
backend: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-b/instanceGroups/ac-kroger-central-b
status:
  healthStatus:
  - healthState: UNHEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-b/instances/yb-1-xx-redacted-lb-test-n1
    ipAddress: 10.152.0.92
    port: 80
  kind: compute#backendServiceGroupHealth
---
backend: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-c/instanceGroups/xx-redacted-central-c
status:
  healthStatus:
  - healthState: UNHEALTHY
    instance: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-c/instances/yb-1-xx-redacted-lb-test-n3
    ipAddress: 10.152.0.4
    port: 80
  kind: compute#backendServiceGroupHealth

此负载均衡器的运行状况检查是使用以下命令创建的:gcloud compute health-checks create tcp xx-redacted-central-hc4 --port=5433

后端是这样创建的:gcloud compute backend-services create xx-redacted-central-lb --protocol=TCP --health-checks=xx-redacted-central-hc4 --region=us-central1 --load-balancing-scheme=INTERNAL

后台完整描述:gcloud compute backend-services describe xx-redacted-central-lb --region=us-central1

代码语言:javascript
运行
复制
backends:
- balancingMode: CONNECTION
  group: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-a/instanceGroups/xx-redacted-central-a
- balancingMode: CONNECTION
  group: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-b/instanceGroups/xx-redacted-central-b
- balancingMode: CONNECTION
  group: https://www.googleapis.com/compute/v1/projects/yugabyte/zones/us-central1-c/instanceGroups/xx-redacted-central-c
connectionDraining:
  drainingTimeoutSec: 0
creationTimestamp: '2020-04-01T19:16:44.405-07:00'
description: ''
fingerprint: aOB7iT47XCk=
healthChecks:
- https://www.googleapis.com/compute/v1/projects/yugabyte/global/healthChecks/xx-redacted-central-hc4
id: '1151478560954316259'
kind: compute#backendService
loadBalancingScheme: INTERNAL
name: xx-redacted-central-lb
protocol: TCP
region: https://www.googleapis.com/compute/v1/projects/yugabyte/regions/us-central1
selfLink: https://www.googleapis.com/compute/v1/projects/yugabyte/regions/us-central1/backendServices/xx-redacted-central-lb
sessionAffinity: NONE
timeoutSec: 30

如果我尝试edit后端并添加端口或端口名注释,它将无法保存,因为它认为这是内部负载均衡器的无效操作。

有什么想法吗?--艾伦

EN

回答 3

Stack Overflow用户

发布于 2020-04-04 08:46:51

根据GCP documentation1,为了运行健康检查,您必须创建一个入口,以允许来自Google Cloud probers的ip地址流量的防火墙规则可以连接到您的后端。

您可以查看此documentation2以了解SSL和TCP运行状况检查的成功标准。

1探测网段和防火墙规则https://cloud.google.com/load-balancing/docs/health-check-concepts#ip-ranges

2Success Criteria https://cloud.google.com/load-balancing/docs/health-check-concepts#criteria-protocol-ssl-tcp

票数 1
EN

Stack Overflow用户

发布于 2020-04-07 05:07:55

如果后端服务是实例组,则后端服务必须具有关联的Named Port。负载均衡服务使用命名端口将流量定向到单个实例上的特定端口。您可以assign port name mapping到实例组,通知负载均衡器使用该端口到达运行服务的后端。

票数 0
EN

Stack Overflow用户

发布于 2020-04-09 10:01:21

感谢您提供的信息。我可以成功地在我的终端重现这个问题,并发现奇怪的是,后端健康检查仍然指向端口80,而LB HC配置的端口不是80。产品工程团队已经意识到了这个问题,但是我没有任何关于修复和实现的ETA。您可以关注thread1以获取进一步的更新。

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61013788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档