如果不进行滚动更新,为什么要自动缩放 Kubernetes?

Why autoscale Kubernates if not doing a rolling update?

参考这个 doc 我想我理解了在更新期间临时水平缩放 pod 的价值。例如,您从 1 个 pod 转到 2 个 pods - 更新 pod 1,然后删除 pod 2。

如果您不进行更新,水平扩展 Kubernates 有任何价值吗?复制 pods 不会降低每一个的性能吗?

例如,将 pods 的数量加倍,同时保持 RAM 数量不变,这意味着每个 pod 的 RAM 将减少一半。

... doubling the number of pods while keeping the amount of RAM fixed ...

我认为您误解了水平缩放时发生的情况 pods。每个 pod 都分配了一定数量的内存,当您创建新的 pods 时,每个现有的 pod 都会继续使用那么多的内存,而新的 pods 会获得相同数量的内存。因此,作为水平缩放 pods 的整体内存使用量随着 pods 的数量线性增加,即 运行。

唯一的限制是当您达到集群中可用内存的总限制时,此时您将无法安排新的 pods。此时,您需要(手动或自动)扩展集群中的节点数量以添加额外的资源。

Is there any value to horizontally scaling Kubernates if you're not doing an update?

是的。如果您正在处理流量并且当前 pods 的数量无法处理负载,添加新的 pods 会有所帮助。例如,在 One million requests per second demo 期间,作者确定每个 nginx pod 可以服务多少请求,然后扩展 pods 的数量以处理预期负载。如果这是一个网站,水平 pod 自动缩放器可以让您根据当前请求数动态缩放 nginx pods 的数量。