环境变量
export NUM_NODES = 2
export KUBE_AUTOSCALER_MIN_NODES = 2
export KUBE_AUTOSCALER_MAX_NODES = 5
export KUBE_ENABLE_CLUSTER_AUTOSCALER = true
完成后,我们将通过运行kube-up.sh启动集群。这将创建一个集群以及集群自动标量附加组件。
创建集群后,我们可以使用以下kubectl命令检查集群。
$ kubectl get nodes
NAME STATUS AGE
kubernetes-master Ready,SchedulingDisabled 10m
kubernetes-minion-group-de5q Ready 10m
kubernetes-minion-group-yhdx Ready 8m
现在,我们可以在集群上部署应用程序,然后启用水平容器自动缩放器。可以使用以下命令完成此操作。
$ kubectl autoscale deployment <Application Name> --cpu-percent = 50 --min = 1 --max = 10
上面的命令显示,随着应用程序负载的增加,我们将至少维护一个POD副本,最多10个副本。
我们可以通过运行$kubclt get hpa命令来检查自动定标器的状态。我们将使用以下命令来增加Pod的负载。
$ kubectl run -i --tty load-generator --image = busybox /bin/sh
$ while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
我们可以检查HPA运行$ kubectl get hpa 命令。
$ kubectl get hpa
NAME REFERENCE TARGET CURRENT
php-apache Deployment/php-apache/scale 50% 310%
MINPODS MAXPODS AGE
1 20 2m
$ kubectl get deployment php-apache
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
php-apache 7 7 7 3 4m
我们可以使用以下命令检查正在运行的Pod的数量。
jsz@jsz-desk2:~/k8s-src$ kubectl get pods
php-apache-2046965998-3ewo6 0/1 Pending 0 1m
php-apache-2046965998-8m03k 1/1 Running 0 1m
php-apache-2046965998-ddpgp 1/1 Running 0 5m
php-apache-2046965998-lrik6 1/1 Running 0 1m
php-apache-2046965998-nj465 0/1 Pending 0 1m
php-apache-2046965998-tmwg1 1/1 Running 0 1m
php-apache-2046965998-xkbw1 0/1 Pending 0 1m
最后,我们可以获得节点状态。
$ kubectl get nodes
NAME STATUS AGE
kubernetes-master Ready,SchedulingDisabled 9m
kubernetes-minion-group-6z5i Ready 43s
kubernetes-minion-group-de5q Ready 9m
kubernetes-minion-group-yhdx Ready 9m