For this type of test we have subjected the cluster to an average workload for a few hours, always making use of the applications seen in these pages. Let's see how it behaved based on the flavors of the VMs.

EnduranceTest (xLarge)
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=40
# We started with 2 replicas, then increased to 4
$ 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         40        1          38s
php-apache   Deployment/php-apache   250%/50%   1         40        1          76s
php-apache   Deployment/php-apache   250%/50%   1         40        4          92s
php-apache   Deployment/php-apache   250%/50%   1         40        5          107s
php-apache   Deployment/php-apache   107%/50%   1         40        5          2m17s
php-apache   Deployment/php-apache   107%/50%   1         40        7          2m33s
php-apache   Deployment/php-apache   80%/50%    1         40        7          3m19s
php-apache   Deployment/php-apache   80%/50%    1         40        10         3m35s
php-apache   Deployment/php-apache   56%/50%    1         40        10         4m5s
php-apache   Deployment/php-apache   55%/50%    1         40        10         5m7s
php-apache   Deployment/php-apache   55%/50%    1         40        11         5m22s
php-apache   Deployment/php-apache   49%/50%    1         40        11         6m8s
php-apache   Deployment/php-apache   51%/50%    1         40        11         8m11s
php-apache   Deployment/php-apache   50%/50%    1         40        11         10m

# Replicas 2 --> 4

php-apache   Deployment/php-apache   70%/50%    1         40        11         142m
php-apache   Deployment/php-apache   70%/50%    1         40        16         142m
php-apache   Deployment/php-apache   64%/50%    1         40        16         143m
php-apache   Deployment/php-apache   64%/50%    1         40        21         143m
php-apache   Deployment/php-apache   54%/50%    1         40        21         144m
php-apache   Deployment/php-apache   51%/50%    1         40        21         145m
php-apache   Deployment/php-apache   50%/50%    1         40        21         147m
EnduranceTest (large)
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=40
# We started with 2 replicas, then increased to 4
$ 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         40        1          38s
php-apache   Deployment/php-apache   250%/50%   1         40        1          76s
php-apache   Deployment/php-apache   250%/50%   1         40        4          92s
php-apache   Deployment/php-apache   250%/50%   1         40        5          107s
php-apache   Deployment/php-apache   107%/50%   1         40        5          2m17s
php-apache   Deployment/php-apache   107%/50%   1         40        7          2m33s
php-apache   Deployment/php-apache   80%/50%    1         40        7          3m19s
php-apache   Deployment/php-apache   80%/50%    1         40        10         3m35s
php-apache   Deployment/php-apache   56%/50%    1         40        10         4m5s
php-apache   Deployment/php-apache   55%/50%    1         40        10         5m7s
php-apache   Deployment/php-apache   55%/50%    1         40        11         5m22s
php-apache   Deployment/php-apache   49%/50%    1         40        11         6m8s
php-apache   Deployment/php-apache   51%/50%    1         40        11         8m11s
php-apache   Deployment/php-apache   50%/50%    1         40        11         10m

# Replicas 2 --> 4

php-apache   Deployment/php-apache   51%/50%    1         40        11         56m
php-apache   Deployment/php-apache   88%/50%    1         40        11         57m
php-apache   Deployment/php-apache   88%/50%    1         40        20         57m
php-apache   Deployment/php-apache   55%/50%    1         40        20         58m
php-apache   Deployment/php-apache   54%/50%    1         40        20         59m
php-apache   Deployment/php-apache   52%/50%    1         40        20         60m
php-apache   Deployment/php-apache   53%/50%    1         40        20         62m
php-apache   Deployment/php-apache   52%/50%    1         40        20         63m
php-apache   Deployment/php-apache   52%/50%    1         40        20         65m
php-apache   Deployment/php-apache   53%/50%    1         40        20         66m
php-apache   Deployment/php-apache   52%/50%    1         40        20         67m
php-apache   Deployment/php-apache   53%/50%    1         40        20         68m
php-apache   Deployment/php-apache   54%/50%    1         40        20         69m
php-apache   Deployment/php-apache   53%/50%    1         40        20         70m
php-apache   Deployment/php-apache   52%/50%    1         40        20         71m
php-apache   Deployment/php-apache   55%/50%    1         40        20         72m
php-apache   Deployment/php-apache   55%/50%    1         40        22         72m
php-apache   Deployment/php-apache   47%/50%    1         40        22         73m
php-apache   Deployment/php-apache   46%/50%    1         40        22         74m
php-apache   Deployment/php-apache   48%/50%    1         40        22         75m
php-apache   Deployment/php-apache   46%/50%    1         40        22         76m
EnduranceTest (medium)
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=40
# We started with 2 replicas, then increased to 4
$ 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         40        1          72m
php-apache   Deployment/php-apache   249%/50%   1         40        1          73m
php-apache   Deployment/php-apache   249%/50%   1         40        1          73m
php-apache   Deployment/php-apache   249%/50%   1         40        4          73m
php-apache   Deployment/php-apache   249%/50%   1         40        5          73m
php-apache   Deployment/php-apache   111%/50%   1         40        5          74m
php-apache   Deployment/php-apache   111%/50%   1         40        9          74m
php-apache   Deployment/php-apache   58%/50%    1         40        9          75m
php-apache   Deployment/php-apache   61%/50%    1         40        9          76m
php-apache   Deployment/php-apache   61%/50%    1         40        11         76m
php-apache   Deployment/php-apache   50%/50%    1         40        11         77m
php-apache   Deployment/php-apache   51%/50%    1         40        11         78m

# Replicas 2 --> 4

php-apache   Deployment/php-apache   51%/50%   1         40        11         128m
php-apache   Deployment/php-apache   84%/50%   1         40        11         129m
php-apache   Deployment/php-apache   84%/50%   1         40        19         129m
php-apache   Deployment/php-apache   55%/50%   1         40        19         130m
php-apache   Deployment/php-apache   55%/50%   1         40        21         130m
php-apache   Deployment/php-apache   50%/50%   1         40        21         131m
php-apache   Deployment/php-apache   50%/50%   1         40        21         132m

In the images below, taken from Grafana, the "jump" in the use of the CPU in the stress namespace is evident, caused by the increase in requests to the web application.

EnduranceTest (xLarge)

EnduranceTest (large)

EnduranceTest (medium)

  • No labels