Let's try to put into practice the tools learned in the first type of test. Let's see how reactive our cluster is, or how long it takes to react to changes, as the workload on it varies. To put the cluster in "crisis", we will use the tools already encountered in the parent chapter.
As we have already done, we entrust the php-apache application to HPA and create a replica of infinite-calls. In this case we limit ourselves to creating only 2 replicas, because we want to test the reactivity of the cluster at a medium-low intensity load. As mentioned in the introductory part of this chapter, the data are the result of tests carried out on 3 different flavors, shown in descending order
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=20 $ kubectl scale deploy infinite-calls --replicas=2 $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 20 1 11m # Starting the workload php-apache Deployment/php-apache 119%/50% 1 20 1 11m php-apache Deployment/php-apache 119%/50% 1 20 3 11m php-apache Deployment/php-apache 180%/50% 1 20 3 12m php-apache Deployment/php-apache 180%/50% 1 20 6 12m php-apache Deployment/php-apache 180%/50% 1 20 11 13m php-apache Deployment/php-apache 51%/50% 1 20 11 13m # Beginning of the plateau php-apache Deployment/php-apache 49%/50% 1 20 11 14m php-apache Deployment/php-apache 52%/50% 1 20 11 15m php-apache Deployment/php-apache 50%/50% 1 20 11 16m php-apache Deployment/php-apache 51%/50% 1 20 11 17m php-apache Deployment/php-apache 50%/50% 1 20 11 18m php-apache Deployment/php-apache 48%/50% 1 20 11 19m php-apache Deployment/php-apache 50%/50% 1 20 11 20m php-apache Deployment/php-apache 49%/50% 1 20 11 21m php-apache Deployment/php-apache 49%/50% 1 20 11 23m # End of the plateau php-apache Deployment/php-apache 24%/50% 1 20 11 24m php-apache Deployment/php-apache 0%/50% 1 20 11 25m php-apache Deployment/php-apache 0%/50% 1 20 11 29m php-apache Deployment/php-apache 0%/50% 1 20 6 29m php-apache Deployment/php-apache 0%/50% 1 20 6 30m php-apache Deployment/php-apache 0%/50% 1 20 1 30m # End of workload |
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=20 $ kubectl scale deploy infinite-calls --replicas=2 $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 20 1 9m42s # Starting the workload php-apache Deployment/php-apache 250%/50% 1 20 1 10m php-apache Deployment/php-apache 250%/50% 1 20 4 10m php-apache Deployment/php-apache 250%/50% 1 20 5 10m php-apache Deployment/php-apache 115%/50% 1 20 5 11m php-apache Deployment/php-apache 115%/50% 1 20 10 11m php-apache Deployment/php-apache 56%/50% 1 20 10 12m php-apache Deployment/php-apache 56%/50% 1 20 10 13m php-apache Deployment/php-apache 56%/50% 1 20 12 13m php-apache Deployment/php-apache 47%/50% 1 20 12 14m # Beginning of the plateau php-apache Deployment/php-apache 45%/50% 1 20 12 15m php-apache Deployment/php-apache 44%/50% 1 20 12 16m php-apache Deployment/php-apache 45%/50% 1 20 12 17m php-apache Deployment/php-apache 47%/50% 1 20 12 18m php-apache Deployment/php-apache 46%/50% 1 20 12 19m php-apache Deployment/php-apache 45%/50% 1 20 12 20m php-apache Deployment/php-apache 46%/50% 1 20 12 21m php-apache Deployment/php-apache 46%/50% 1 20 12 22m php-apache Deployment/php-apache 45%/50% 1 20 12 24m php-apache Deployment/php-apache 45%/50% 1 20 12 25m php-apache Deployment/php-apache 45%/50% 1 20 12 26m # End of the plateau php-apache Deployment/php-apache 0%/50% 1 20 12 27m php-apache Deployment/php-apache 0%/50% 1 20 12 32m php-apache Deployment/php-apache 0%/50% 1 20 1 32m # End the workload |
$ k autoscale deployment php-apache --cpu-percent=50 --min=1 --max=20 $ k scale deploy infinite-calls --replicas=2 $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 20 1 35m # Starting the workload php-apache Deployment/php-apache 251%/50% 1 20 1 36m php-apache Deployment/php-apache 251%/50% 1 20 4 36m php-apache Deployment/php-apache 251%/50% 1 20 6 36m php-apache Deployment/php-apache 89%/50% 1 20 6 37m php-apache Deployment/php-apache 89%/50% 1 20 9 37m php-apache Deployment/php-apache 62%/50% 1 20 9 38m php-apache Deployment/php-apache 62%/50% 1 20 12 38m php-apache Deployment/php-apache 47%/50% 1 20 12 39m # Beginning of the plateau php-apache Deployment/php-apache 45%/50% 1 20 12 40m php-apache Deployment/php-apache 47%/50% 1 20 12 41m php-apache Deployment/php-apache 45%/50% 1 20 12 42m php-apache Deployment/php-apache 46%/50% 1 20 12 43m php-apache Deployment/php-apache 45%/50% 1 20 12 44m php-apache Deployment/php-apache 46%/50% 1 20 12 45m php-apache Deployment/php-apache 47%/50% 1 20 12 46m php-apache Deployment/php-apache 45%/50% 1 20 12 47m php-apache Deployment/php-apache 45%/50% 1 20 12 48m php-apache Deployment/php-apache 45%/50% 1 20 12 49m php-apache Deployment/php-apache 45%/50% 1 20 12 50m # End of the plateau php-apache Deployment/php-apache 0%/50% 1 20 12 51m php-apache Deployment/php-apache 0%/50% 1 20 12 56m php-apache Deployment/php-apache 0%/50% 1 20 1 56m # End of workload |
We note that the reaction time of the cluster, from the rest position to the plateau and vice versa, is about 4-5 minutes, regardless of the flavor used. Of course, the same behavior can also be seen by analyzing the metrics obtained by Grafana (the stress namespace is the one used for our tests).

