以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本介绍
在 Kubernetes 中,自动扩缩容是一种动态调整集群资源,以灵活应对应用程序资源需求变化的机制。
自动扩缩容可以分为两个层面:
自动扩缩容提供了以下好处:
本文将重点介绍几种常见的 Pod 层面自动扩缩容机制。
HPA 机制
Pod 水平自动伸缩(Horizontal Pod Autoscaler,HPA)是 Kubernetes 中最常见的自动扩缩容方式,它可以根据 Pod 实际的负载情况自动增加或减少 Pod 副本的数量。
HPA的工作原理如下:
# 创建 HPA 对象
kubectl autoscale deployment demo-deployment --cpu-percent=10 --min=1 --max=10
🔔 --min:指定最小的 Pod 副本数为1
🔔 --max:指定最大的 Pod 副本数为10
🔔 --cpu-percent:指定 Pod 的 CPU 使用率保持在 10%
# 查看 HPA 对象
kubectl get hpa
# 删除 HPA 对象
kubectl delete hpa demo-deployment
VPA 机制
Pod 垂直自动伸缩(Vertical Pod Autoscaler,VPA)可以根据 Pod 的资源使用情况,自动调整 Pod 的资源请求(Requests)和资源限制(Limits)。
VPA的工作原理如下:
KPA 机制
Pod 基于请求数自动伸缩(Knative Pod Autoscaler,KPA)是一种由 Knative Serving 提供的机制,它可以根据并发请求数及相应的算法,自动增加或减少 Pod 副本的数量,适用于业务流量突发激增的场景。
详细内容请参考技术文档:https://developer.aliyun.com/article/710828