0

我们有 k8s 集群,应用程序托管在 GKE 上。当我们尝试通过谷歌云负载均衡器获取静态内容(8.25Mb)时,检索时间为 3.8 秒,当我们尝试直接通过虚拟机中 k8s 集群上的 nginx 进行时,需要 0.2 秒。速度差异的原因可能是什么?谷歌云负载均衡器是否有任何设置,例如带宽?


~$ wget https://.../main.js
...
HTTP request sent, awaiting response... 200 OK
Length: 8649943 (8.2M) [application/javascript]
Saving to: 'main.js'
main.js               100%[========================================================================================>]   8.25M  2.27MB/s    in 3.8s 


__________________________________

Nginx

~$ wget https://.../main.js
...
Saving to: 'main.js'
main.js               100%[========================================================================================>]   8.25M  50.2MB/s    in 0.2s
4

1 回答 1

0

我不会说它与loadbalancer有关。请记住,下载托管在云中的东西总是比本地可用的东西花费更多的时间。

如果您怀疑负载均衡器可能会有所作为,您应该将其与直接从GKE节点下载时的速度进行比较。您可以通过使用loadbalancer公开您的nginx 并避免这种方式。如果这样的下载比通过负载均衡器下载花费的时间要少得多,那么你可以责怪负载均衡器。但我很确定结果几乎是一样的。DeploymentNodePort Service

你的本地 k8s 集群在哪里?它在您本地网络的某个地方吗?或者也许在您正在执行的同一台机器上运行的虚拟机wget上?如果是这样,它所花费的时间总是比从任何云托管的 VM下载要少得多。

下载速度延迟等网络参数还取决于您的GKE 集群托管在哪个区域。如果该区域离您的位置很远,那么与所在的区域相比,这些参数可能会有很大差异离你比较近。

于 2020-03-19T19:20:22.880 回答