Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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.

Code Block
languagebash
titleLoadTest (xLarge)
collapsetrue
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=1020
$ 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


Code Block
languagebash
titleLoadTest (large)
collapsetrue
$ 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         1020        1          9m42s 41m	# Starting the workload
php-apache   Deployment/php-apache   207%250%/50%   1         1020        1          42m10m
php-apache   Deployment/php-apache   207%250%/50%   1         1020        4          42m10m
php-apache   Deployment/php-apache   207%250%/50%   1         1020        5          43m10m
php-apache   Deployment/php-apache   55%/50%    1 115%/50%   1         20        5          11m
php-apache   Deployment/php-apache   115%/50%   1         20        10        5  11m
php-apache   Deployment/php-apache   56%/50%    1         20        10         43m12m
php-apache   Deployment/php-apache   57%56%/50%    1         20        10         13m
php-apache   Deployment/php-apache   5 56%/50%    1         20        12         44m13m
php-apache   Deployment/php-apache   57%47%/50%    1         1020        612         14m 44m	# 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%    10 1         20       6 12         45m25m
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


Code Block
languagebash
titleLoadTest (medium)
collapsetrue
$ 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    10    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          46m36m
php-apache   Deployment/php-apache   47%89%/50%    1         1020        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      47m   20        12         38m 
php-apache   Deployment/php-apache   47%/50%    1         20          10 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       6 12         48m41m
php-apache   Deployment/php-apache   44%45%/50%    1         20        12         42m
php-apache   Deployment/php-apache   46%/50%    1     10    20       6 12         49m43m
php-apache   Deployment/php-apache   45%/50%    1         20   10      12         44m
php-apache   Deployment/php-apache   46%/50%    1         20       6 12         50m45m
php-apache   Deployment/php-apache   47%/50%    1         20        12         10 46m
php-apache   Deployment/php-apache   45%/50%    1         20       6 12         51m47m
php-apache   Deployment/php-apache   46%45%/50%    1         20        10 12         48m
php-apache   Deployment/php-apache   45%/50%    1         20       6 12         52m49m
php-apache   Deployment/php-apache   0%45%/50%     1         1020        612         50m 53m	# End of the plateau
php-apache   Deployment/php-apache   0%/50%     1         20        12         51m
php-apache   Deployment/php-apache   0%/50%     1        10 20       6 12         58m56m
php-apache   Deployment/php-apache   0%/50%     1         1020        1          56m 58m	# 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. Of , 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).LoadTest (xLarge)Image Added

LoadTest (large)Image Added

LoadTest (medium)Image AddedLoadTest (xLarge)Image Removed