文章目录
官网参考:https://kubernetes.io/zh/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
Horizontal Pod Autoscaler根据观察到的CPU使用率(或使用自定义指标支持,基于某些其他应用程序提供的指标)自动缩放复制控制器,部署,副本集或状态集中的pod数量。 请注意,水平窗格自动缩放不适用于无法缩放的对象,例如DaemonSets。
Horizontal Pod Autoscaler被实现为Kubernetes API资源和控制器。 该资源确定控制器的行为。 控制器会定期调整复制控制器或部署中副本的数量,以使观察到的平均CPU利用率与用户指定的目标相匹配。
前提:示例需要一个1.2或者更高版本的可运行的 Kubernetes 集群以及 kubectl。metrics-server 也需要部署到集群中,它可以通过 resource metrics API 对外提供度量数据,Horizontal Pod Autoscaler 正是根据此 API 来获取度量数据
1.根据CPU进行HPA伸缩过程
1.1 运行 php-apache 服务器并暴露服务
kubeadm@server1 ~]$ mkdir hpa
[kubeadm@server1 ~]$ cd hpa/
[kubeadm@server1 hpa]$ ls
[kubeadm@server1 hpa]$ vim php-apache.yml
[kubeadm@server1 hpa]$ kubectl apply -f php-apache.yml
deployment.apps/php-apache configured
service/php-apache unchanged
[kubeadm@server1 hpa]$ kubectl get pod
NAME READY STATUS RESTARTS AGE
php-apache-59b89c65c6-9579l 1/1 Running 0 2m12s
[kubeadm@server1 hpa]$ cat php-apache.yml