Kubernetes自动扩缩容方案-HPA-VPA-KPA详解

1、自动(弹性)扩缩容简介

弹性伸缩是根据用户的业务需求和策略,自动“调整”其“弹性资源”的管理服务。通过弹性伸缩功能,用户可设置定时、周期或监控策略,恰到好处地增加或减少“弹性资源”,并完成实例配置,保证业务平稳健康运行在实际工作中,我们常常需要做一些扩容缩容操作,如:电商平台在 618 和双十一搞秒杀活动;由于资源紧张、工作负载降低等都需要对服务实例数进行扩缩容操作。
在 k8s 中扩缩容分为两种:

  • Node 层面

对 K8s 物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容。

  • Pod 层面

我们一般会使用Deployment中的replicas参数,设置多个副本集来保证服务的高可用,但是这是一个固定的值,比如我们设置 10 个副本,就会启 10 个 pod 同时 running 来提供服务。如果这个服务平时流量很少的时候,也是 10 个 pod 同时在 running,而流量突然暴增时,又可能出现 10 个pod 不够用的情况。针对这种情况怎么办?就需要扩容和缩容。

2、K8s中自动伸缩的方案

1. HPA

Kubernetes HPA(Horizontal Pod Autoscaling):Pod 水平自动伸缩。通过此功能,只需简单的配置,便可以利用监控指标(cpu 使用率、磁盘、自定义的等)自动的扩容或缩容服务中 Pod 数量,当业务需求增加时,系统将无缝地自动增加适量pod 容器,提高系统稳定性。

要想实现自动扩缩容,需要先考虑如下几点:

<

你可能感兴趣的:(Docker,K8s,云原生,CICD,DevOps,kubernetes,java,容器)