根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务,其优势有:
最新版 HPA:autoscaling/v2beta1,有四种类型的 metrics
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: hpa-test
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nginx
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
使用 HPA 能满足一些场景,但是也存在一些缺点:
可以参考腾讯开源的 EHPA,实现智能 HPA。
VPA 包含以下组件:
vpa 支持4中更新策略:
CA由一下几个模块组成:
为节点添加特殊标签: "cluster-autoscaler.kubernetes.io/scale-down-disabled": "true"
kubectl annotate node <nodename> cluster-autoscaler.kubernetes.io/scale-down-disabled=true
当 CA 和 HPA 结合使用时,从负载增加到新 pod 运行的总时间主要由三个因素决定:
具体每一环节的默认时间:
扩容最终时间:
缩容最终时间:
本文针对 k8s 集群扩容的背景、价值、实现做了大概的介绍,HPA 默认就可以使用,CA需要额外安装组件使用,而VPA使用较少。我司正是使用了 HPA + CA的组合来实现联动扩缩容,后续会做源码级分析,敬请期待。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。