引言
实现基于HPA的极致弹性伸缩要分享的内容较多,所以我计划拆分成多篇去做介绍,该篇文章主要是先让大家了解,K8s有哪些弹性策略?缩容的优先级是怎样的?什么是HPA?HPA怎样工作?
K8s弹性策略有哪些?
在 Kubernetes 集群中,自动化资源管理和伸缩是保持应用高效运行的关键。Kubernetes 提供了几种不同的机制来帮助实现这一目标:水平自动伸缩(HPA, Horizontal Pod Autoscaler)、垂直自动伸缩(VPA, Vertical Pod Autoscaler)和集群自动伸缩(CA, Cluster Autoscaler)。这些伸缩器在功能和使用场景上有所不同:
- HPA:根据 CPU 使用率或其他自定义指标自动增加或减少 Pod 的副本数,如在业务高峰自动增加Pod副本数,在业务低峰自动减少Pod副本数,通常用于无状态应用;
- VPA:自动调整 Pod 的 CPU 和内存请求和限制,它的目标是为每个 Pod 分配最合适的资源量,既避免资源浪费,通常用于有状态应用或单实例应用;
- CA:根据集群的当前负载和资源需求自动增加或减少节点的数量,适用于需要根据应用负载动态调整集群大小的场景,CA 特别适用于云环境
上述所提到的HPA和VPA属于调度层弹性,CA属于资源层弹性,跨层级弹性策略可以结合使用,但不建议HPA和VPA共同使用,避免造成冲突。