HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY
Scaling on Kubernetes is a feature that could change the resources from an application to fulfill the needs of the application. At this time there are two types of autoscaling, which is horizontally and vertically. Both scaling types are not recommended to be used simultaneously by Kubernetes bec...
Saved in:
Main Author: | |
---|---|
Format: | Final Project |
Language: | Indonesia |
Online Access: | https://digilib.itb.ac.id/gdl/view/55955 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Institut Teknologi Bandung |
Language: | Indonesia |
id |
id-itb.:55955 |
---|---|
spelling |
id-itb.:559552021-06-20T12:01:58ZHORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY Nathaniel Wijaya, Kevin Indonesia Final Project Kubernetes, scaling, vertical priority. INSTITUT TEKNOLOGI BANDUNG https://digilib.itb.ac.id/gdl/view/55955 Scaling on Kubernetes is a feature that could change the resources from an application to fulfill the needs of the application. At this time there are two types of autoscaling, which is horizontally and vertically. Both scaling types are not recommended to be used simultaneously by Kubernetes because of the possible race condition that can happen in changing the resource of an application. This paper suggests implementing a system that combines both scaling types to utilize the benefits and reduce the disadvantages. The system implemented combines both scaling types with vertical scaling priority which is using horizontal scaling to handle sudden load and using vertical scaling after a certain interval to reduce overhead and overprovisioning. The system uses CPU and memory metrics from Metrics API for each Pod in a Deployment from Kubernetes to calculate recommendations and update the Deployment in Kubernetes. The system is tested and compared with the available horizontal and vertical scaling provided by Kubernetes with stable load scenario, unstable load scenario, and on-and-off load scenario. The results show that the system can handle an increase in load by horizontal scaling and use vertical scaling to decrease overhead and overprovisioning, seen on the stable load scenario which changes once in a while. The system can ensure the resource usage reach the utilization target by scaling, but have a deficiency when tested by the unstable and on-and-off scenario because of the reactive nature of the recommendation and the scaling interval that needs adjusting. The system is also disruptive because of the limitations of Kubernetes which forces a Pod to be evicted and recreated when the resource is changed. text |
institution |
Institut Teknologi Bandung |
building |
Institut Teknologi Bandung Library |
continent |
Asia |
country |
Indonesia Indonesia |
content_provider |
Institut Teknologi Bandung |
collection |
Digital ITB |
language |
Indonesia |
description |
Scaling on Kubernetes is a feature that could change the resources from an
application to fulfill the needs of the application. At this time there are two types
of autoscaling, which is horizontally and vertically. Both scaling types are not
recommended to be used simultaneously by Kubernetes because of the possible
race condition that can happen in changing the resource of an application. This
paper suggests implementing a system that combines both scaling types to utilize
the benefits and reduce the disadvantages. The system implemented combines
both scaling types with vertical scaling priority which is using horizontal scaling
to handle sudden load and using vertical scaling after a certain interval to reduce
overhead and overprovisioning. The system uses CPU and memory metrics from
Metrics API for each Pod in a Deployment from Kubernetes to calculate
recommendations and update the Deployment in Kubernetes. The system is tested
and compared with the available horizontal and vertical scaling provided by
Kubernetes with stable load scenario, unstable load scenario, and on-and-off load
scenario. The results show that the system can handle an increase in load by
horizontal scaling and use vertical scaling to decrease overhead and
overprovisioning, seen on the stable load scenario which changes once in a while.
The system can ensure the resource usage reach the utilization target by scaling,
but have a deficiency when tested by the unstable and on-and-off scenario because
of the reactive nature of the recommendation and the scaling interval that needs
adjusting. The system is also disruptive because of the limitations of Kubernetes
which forces a Pod to be evicted and recreated when the resource is changed. |
format |
Final Project |
author |
Nathaniel Wijaya, Kevin |
spellingShingle |
Nathaniel Wijaya, Kevin HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
author_facet |
Nathaniel Wijaya, Kevin |
author_sort |
Nathaniel Wijaya, Kevin |
title |
HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
title_short |
HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
title_full |
HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
title_fullStr |
HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
title_full_unstemmed |
HORIZONTAL AND VERTICAL AUTOSCALING SYSTEM ON KUBERNETES WITH VERTICAL SCALING PRIORITY |
title_sort |
horizontal and vertical autoscaling system on kubernetes with vertical scaling priority |
url |
https://digilib.itb.ac.id/gdl/view/55955 |
_version_ |
1822930051672309760 |