Kubernetes 自动伸缩与应用设计:全面指南
垂直 Pod 自动伸缩(VPA)
垂直 Pod 自动伸缩(VPA)是一种通过调整 Pod 的 CPU 和内存资源来进行垂直扩展的概念。在 Kubernetes 中,VPA 的实现方式是观察 Pod 的资源使用情况,并随时间动态更改 Pod 的资源请求。Kubernetes 本身并未直接提供 VPA 实现,但有开源实现,像 GKE 这样的云提供商也有自己的版本。
VPA 可以自动确定 Pod 的资源请求,这能节省精力并提高资源效率。对于资源需求波动较大的 Pod,若需要动态调整其资源请求,VPA 是合适的工具。不过,使用 VPA 会增加复杂性,且它与水平 Pod 自动伸缩器(HPA)可能并不总是能很好配合。因此,建议先设置合适的 Pod 资源请求和进行副本的水平扩展。
外部指标
每秒请求数(RPS)是一种常用的扩展指标。使用 RPS 指标进行扩展的原理是,先测量应用程序的一个实例每秒能处理的请求数(即副本的容量),再将当前的请求数除以该容量,即可得到所需的副本数:
replica_count = RPS ÷ replica_capacity
RPS 指标的好处在于,若对应用程序处理测试 RPS 的能力有信心,就能相信它在负载下可以进行扩展,因为自动伸缩器会提供足够的容量。即便不进行自动扩展,这也是规划容量的好方法。在 Kubernetes 中,可以将其设置为自动伸缩器。
这里会使用 HPA 的“外部指标”属性。该指标源自集群外部,若使用的监控解决方案与示例不同,需查找相应的
超级会员免费看
订阅专栏 解锁全文

41

被折叠的 条评论
为什么被折叠?



