文章目录
Kubernetes自动横向扩展(HPA)示例
官方文档
- https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
- https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
- https://github.com/kubernetes-sigs/metrics-server
HPA原理
Kubernetes HPA和阿里云的弹性伸缩Auto Scalling 很类似。
使用弹性伸缩(Auto Scaling),您可以根据业务需求和策略设置伸缩规则,在业务需求增长时自动为您增加ECS实例以保证计算能力,在业务需求下降时自动减少ECS实例以节约成本。弹性伸缩不仅适合业务量不断波动的应用程序,同时也适合业务量稳定的应用程序。
伸缩对象:
HPA可以对replication controller, deployment, replica set和stateful set进行自动伸缩,但是不能对daemon set进行自动伸缩。因为daemon set只能每个节点运行一个副本,不可伸缩。
HPA示例
安装Metrics Server
HPA需要从Metrics Server中获取Pod的CPU和内存Metrics,用来判断是否达到自动伸缩阈值。
如果还没有安装Metrics Server,可以参考:
创建Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-apache
spec:
selector:
matchLabels:
run: php-apache
replicas: