Horizontal Pod Autoscaling可以根据CPU利用率自动伸缩一个Replication Controller、Deployment或Replica Set中的Pod数量
创建一个deployment
1 2 3 4 5 6 7 8 9 10 11 12 13 14
[root@k8s-masterk8s-install]# kubectl run php-apache --image=gcr.io/google_containers/hpa-example --image-pull-policy='IfNotPresent' --requests=cpu=200m --expose --port=80 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead. service/php-apache created deployment.apps/php-apache created
# 查看pod [root@k8s-masterk8s-install]# kubectl get pods NAME READY STATUS RESTARTS AGE php-apache-799f99c985-zqn771/1 Running 04s
## 查看资源使用情况 [root@k8s-masterk8s-install]# kubectl top pod php-apache-799f99c985-zqn77 NAME CPU(cores) MEMORY(bytes) php-apache-799f99c985-zqn770m 8Mi
# 查看 [root@k8s-master ~]# kubectl get hpa NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache183%/50% 110429m
增加负载,查看负载节点数目
1 2
$ kubectl run -i --tty load-generator --image=busybox --image-pull-policy='IfNotPresent' /bin/sh $ while true; do wget -q -O- http://php-apache.default.svc.cluster.local;done
1 2 3 4 5 6 7 8 9 10 11
# 查看pod负载 [root@k8s-master ~]# kubectl top pod php-apache-799f99c985-zqn77 NAME CPU(cores) MEMORY(bytes) php-apache-799f99c985-zqn77298m 8Mi [root@k8s-master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE load-generator-76f9c7b5f8-nx5mz1/1 Running 024m php-apache-799f99c985-nxhzp1/1 Running 079s php-apache-799f99c985-r9zlp1/1 Running 049s php-apache-799f99c985-zqn771/1 Running 030m [root@k8s-master ~]#