在 Kubernetes 中,您可以根据当前的资源需求来扩展工作负载。 这使您的集群能够更灵活、更高效地对资源需求的变化做出反应。
缩放工作负载时,可以增加或减少由工作负载,或就地调整副本可用的资源。
第一种方法称为水平缩放,而第二种方法称为垂直缩放。
- 水平缩放:运行应用的多个实例
- 垂直缩放:调整分配给容器的 CPU 和内存资源的大小
有手动和自动方法可以扩展工作负载,重点是自动方法。
手动扩展工作负载
Kubernetes 支持手动扩展工作负载。可以进行水平缩放使用 kubeclt CLI。 对于垂直缩放,需要 patch 工作负载的资源定义。
自动扩展工作负载
Kubernetes 也支持工作负载的自动缩放,即自动水平缩放和自动垂直缩放。
Kubernetes 中的自动缩放是指自动更新管理一组 Pod 的对象。
水平扩展工作负载
在 Kubernetes 中,可以使用 HorizontalPodAutoscaler (HPA)自动水平缩放工作负载。
它被实现为 Kubernetes API 资源和控制器并定期调整数量副本以匹配观察到的资源利用率,例如 CPU 或内存使用率。
HPA工作流程
HPA
垂直扩展工作负载
功能状态: Kubernetes v1.25 [stable]
Kubernetes也支持使用 VerticalPodAutoscaler (VPA) 自动垂直缩放工作负载。但与 HPA 不同的是,VPA 默认不附带 Kubernetes,而是一个单独的项目:
VPA项目地址
https://github.com/kubernetes/autoscaler/tree/9f87b78df0f1d6e142234bb32e8acbd71295585a/vertical-pod-autoscaler。