Проактивне автоматичне масштабування вверх для Kuberneters

Автор(и)

  • Д. Гутман КПІ ім. Ігоря Сікорського, Ukraine
  • O. Сирота КПІ ім. Ігоря Сікорського, Ukraine

DOI:

https://doi.org/10.20535/1560-8956.42.2023.278925

Ключові слова:

автоматичне масштабування, хмарні обчислення, Kubernetes, проактивне масштабування, реактивне масштабування

Анотація

Сучасні виклики в мікросервісній архітектурі вимагають авто-масштабування. Як приклад можна розглянути «Чорну п’ятницю», коли навантаження на систему значно зростає і, очевидно, для її обслуговування потрібні додаткові
обчислювальні можливості. Розгортання нового екземпляра під час масштабування може зайняти деякий час і змусити користувача чекати кращої продуктивності системи, доки новий екземпляр не запрацює. Тому заходи по масштабуванню повинні починатися якомога раніше. Єдине рішення полягає в тому, щоб використовувати
прогнозування та почати масштабування раніше, маючи прогнозування майбутнього тренду навантаження.
У цій статті автоматичне масштабування зосереджено на Kubernetes, оскільки Kubernetes де-факто є стандартом для оркестровці контейнерів. Автори пропонують рішення, надаючи git-посилання на код. Рішення реалізовано як Java-застосунок, який використовує базу даних часових рядів (у цьому випадку InfluxDB) для розуміння навантаження на мікросервіс. Рішення використовує дві моделі прогнозування – експоненційне згладжування (ES) і подвійне експоненціальне згладжування (DES). Дві моделі використовуються для порівняння одна з одною.
Проведені випробування продуктивності, розглянуто два основних варіанти використання – випадок повільного зростання навантаження та випадок швидкого зростання навантаження. На основі експериментів виявлено, що у всіх випадках проактивне масштабування працює краще, ніж реактивне. Корисність проактивного підходу більш
помітна у випадку швидкого зростання навантаження. Якщо порівнювати ES і DES між собою, то в обох випадках DES показав кращі результати. Майбутнє вдосконалення рішення може полягати у створенні рішення як розширення екосистеми Kubernetes для легкого підключення до інфраструктури Kubernetes. Також одним із покращень може бути підтримка Prometheus як бази даних часових рядів.

Бібл. 20, іл. 3, табл. 2

Посилання

Armbrust, M. Fox, A, Griffith, R. Joseph, D. A. Katz, R. Konwinski Above the clouds / A Berkeley View of cloud computing. University of California, Berkeley, February 2009, pp. 6-7.

Armbrust, M. Fox, A, Griffith, R. Joseph, D. A. Katz, R. Konwinski Above the clouds / A Berkeley View of cloud computing. University of California, Berkeley, February 2009, pp. 10-12.

Tighe, Michael & Bauer, Michael Integrating Cloud Application Autoscaling with Dynamic VM Allocation / in Proceedings of 14th IEEE/IFIP Network Operations and Management Symposium: Management in a Software Defined World, Krakow, Poland, May 2014.

Kee Kim, Wei Wang, Yanjun Qi, and Marty Humphrey Empirical Evaluation of Workload Forecasting Techniques for Predictive Cloud Resource Scaling / in Proceedings of 9th International Conference on Cloud Computing, San Francisco, CA, USA, June 2016, pp 8-9.

N. Roy, A. Dubey and A. Gokhale Efficient Autoscaling in the Cloud Using Predictive Models for Workload Forecasting / in Proceedings of 4th International Conference on Cloud Computing, Washington, DC, USA, July 2011, pp. 500-507.

AWS News blog, New - Predictive Scaling for EC2, Powered by Machine Learning. [Online]. Available: https://aws.amazon.com/blogs/aws/new-predictive-scalingfor-ec2-powered-by-machine-learning

Wajahat, Muhammad & Gandhi, Anshul & Karve, Alexei & Kochut, Andrzej Using machine learning for black-box autoscaling / in Proceedings of 7th International Green and Sustainable Computing Conference, Hangzhou, China, November 2016, pp. 1-8.

What is a Container? [Online]. Available: https://www.docker.com/resources/what-container

David Bernstein Containers and Cloud: From LXC to Docker to Kubernetes / IEEE Cloud Computing, Vol. 1, Issue 3, pp. 81 -84, Sep. 2014.

Kubernetes on AWS. [Online]. Available: https://aws.amazon.com/kubernetes

Kubernetes Engine [Online]. Available: https://cloud.google.com/kubernetesengine

Autoscaling in Kubernetes. [Online]. Available: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale

Aslanpour, Mohammad Sadegh and Seyed Ebrahim Dashti Proactive AutoScaling Algorithm (PASA) for Cloud Application / International Journal of Grid and High Performance Computing, Vol. 9, Issue 3, pp. 1 -16, 2017.

K. Kanagala and K. Sekaran An approach for dynamic scaling of resources in enterprise cloud / in Proceedings of IEEE 5th International Conference on Cloud Computing Technology and Science, Vol. 2, Bristol, UK, Dec 2013, pp. 345–348.

Brown, Robert Goodell Smoothing Forecasting and Prediction of Discrete Time Series / 1963, Englewood Cliffs, NJ: Prentice-Hall, USA, pp. 99-104.

NIST/SEMATECH e-Handbook of Statistical Methods, 6.4.3.3. Double Exponential Smoothing [Online]. Available:

https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc433.htm

Brown, Robert Goodell Smoothing Forecasting and Prediction of Discrete Time Series / 1963, Englewood Cliffs, NJ: Prentice-Hall, USA, pp. 128-132.

Proactive autoscaler for Kubernetes [Online]. Available:https://github.com/dimamon/proactive-scaler

Minikube project on GitHub [Online]. Available:https://github.com/kubernetes/minikube

Apache JMeter [Online]. Available: https://jmeter.apache.org

##submission.downloads##

Опубліковано

2023-05-01