【发布时间】:2018-06-10 10:30:34
【问题描述】:
我在 GCP Kubernetes Engine 中创建了一个集群,并通过文档中指定的负载均衡器公开了它。
使用以下代码:
kubectl expose deployment deployment-name --type=LoadBalancer --port 80 --target-port 8080
这很好,并为我提供了一个外部 IP。我的集群位于 asia-south1 区域,并将其放置在同一区域内的 VPC(和子网)中。
问题是当我使用traceroute <load balancer ip> 检查我的数据包跃点时,我发现我的数据包正在到达加利福尼亚。看到我通过IP检查了我的负载均衡器的位置,我发现我的负载均衡器IP也在加利福尼亚。为什么会在这里发生?我希望我的负载均衡器位于 asia-south1 中,而我的数据包仅在该区域中传输?我的配置有什么问题吗?
我的实际问题是延迟。我的服务器代码(Nodejs)在约 70 毫秒内完成执行,但要向我(坐在亚洲)提供响应,需要约 650 毫秒(对于约 100 个并发用户)。这是无法接受的。
在此处添加 traceroute 日志:
1 xiaoqiang (192.168.31.1) 1.689 ms 1.208 ms 1.324 ms
2 10.143.0.1 (10.143.0.1) 2.873 ms 8.561 ms 6.314 ms
3 10.229.0.13 (10.229.0.13) 6.356 ms 3.581 ms 3.517 ms
4 broadband.actcorp.in (183.82.14.221) 2.793 ms 5.884 ms 26.071 ms
5 14.141.24.249.static-hyderabad.tcl.net.in (14.141.24.249) 6.486 ms
14.141.24.161.static-hyderabad.tcl.net.in (14.141.24.161) 2.450 ms
14.141.24.145.static-hyderabad.tcl.net.in (14.141.24.145) 2.870 ms
6 * * *
7 * * *
8 115.113.165.98.static-mumbai.vsnl.net.in (115.113.165.98) 35.840 ms 39.332 ms 35.704 ms
9 * * 108.170.248.161 (108.170.248.161) 39.351 ms
10 209.85.253.246 (209.85.253.246) 48.228 ms *
209.85.251.18 (209.85.251.18) 76.367 ms
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * <MY LOAD BALANCER IP> 32.129 ms *
【问题讨论】:
-
你能从亚洲的机器发出请求吗?
-
我在本地机器上运行 traceroute 并且在亚洲
-
我与谷歌进行了架构审查,从那里我得知谷歌拥有全球 IP,因此它可能会在美国显示,但实际上可能不是美国 IP
标签: google-cloud-platform google-kubernetes-engine