在 GKE 中,如何使用负载均衡器最小化连接时间

In GKE, how to minimize connect time with Load balancer

在GKE中,为了节省成本,我通常把节点号置零。当我自动缩放节点(或说添加)和 运行 pods 时。连接到 Loadbalancer 和 URL 需要 6-7 分钟以上的时间。这就是为什么健康检查处于等待状态。有什么办法可以缩短时间吗?谢谢

总之不是。节点的启动时间不容易控制,基本上是分配 VM、启动、启动 OS 和做一些与 Kubernetes 相关的其他事情(比如配置、添加到节点)所花费的时间游泳池等)这需要时间!除了 Pods 旋转时间取决于 Docker 图像(size/dependencies 等)。

不推荐将应用程序缩减到零节点。始终建议启动一些节点(GKE 集群上没有其他应用 运行 吗?建议 Kubernetes 集群至少有 3 个节点 运行)。

您是否考虑过使用 Cloud Functions?你的情况有可能吗?这是我所知道的快速放大和零缩小的最佳选择。 通常,您可以对函数保持某种“ping”,以相对便宜的价格使其保持“热”。

如果上述选项中的 none 是可能的(我说保持你的节点池至少有 3 个节点运行,这是最好的,因为 Kubernetes 控制计划启动需要时间)。我建议首先通过改进 Docker 图像 - 减小其大小等来减少 Pods 的旋转时间

这里有一些关于如何减小 Docker 图片大小的文章

https://phoenixnap.com/kb/docker-image-size

https://www.ardanlabs.com/blog/2020/02/docker-images-part1-reducing-image-size.html

之后我将为节点试验不同的机器类型,以检查哪个机器旋转得最快 - 在任何情况下都可能是一件有趣的事情

这是一个关于 VM 旋转时间的有趣比较

https://www.google.com/amp/s/blog.cloud66.com/part-2-comparing-the-speed-of-vm-creation-and-ssh-access-on-aws-digitalocean-linode-vexxhost-google-cloud-rackspace-packet-cloud-a-and-microsoft-azure/amp/

如果 Cloud Functions 不是一个选项,您可能需要查看 Cloud 运行(它支持容器并缩放到零)或 GKE Autopilot(它不会缩放到零,但您可以缩小到低资源,它会根据需要自动放大和缩小)