Master K8S auto scaling
- K8S自动扩缩容
- 水平扩缩容,垂直扩缩容
- HPA
- metrics
Kubernetes(K8s)的自动扩缩容功能是通过Horizontal Pod Autoscaling(HPA)实现的。HPA是K8s的一种资源类型,它可以根据集群中Pod的实时负载情况,自动调整Pod的副本数量,以实现资源的弹性伸缩。
具体来说,HPA控制器会周期性地检查每个被管理的Pod的资源利用率,如CPU使用率、内存使用率等。这些检查是基于Metrics Server插件获取的容器度量数据进行的,因为API Server本身不会暴露这些度量数据。当Pod的资源使用超过设定的目标值时,HPA会按照用户定义的扩缩容策略增加Pod的副本数量,以满足业务负载上升的需求;反之,如果资源使用低于某个阈值,HPA则可能减少Pod副本数,以减少资源的浪费。
在实际操作中,当HPA决定进行扩缩容时,它会更新对应的Deployment或其它控制器的replicas字段。这一更新操作会触发实际的Pod实例创建或删除过程,使得实际运行的Pod数量与HPA计算出的目标副本数相符。
值得注意的是,HPA并不适用于所有类型的对象。例如,对于DaemonSet这类无法缩放的对象,HPA是无法起作用的。
总的来说,K8s的自动扩缩容功能通过HPA实现了对Pod资源的弹性管理,有效提高了集群的资源利用率和应用的稳定性。