Exploring the Performance of Container Runtimes within Kubernetes Clusters

Authors

  • Moulina Hazra Bhattacharya
  • Harish Kumar Mittal

DOI:

https://doi.org/10.47839/ijc.22.4.3359

Keywords:

Kubernetes, Containerd, CRI-O, runc, kata container, Microservice, Cloud computing

Abstract

The advent of cloud computing, with its Pay-As-You-Go model, has significantly simplified IT maintenance and revolutionized the industry. In the era of Microservices, containerized deployment and Kubernetes orchestration have permeated almost every working domain, drastically reducing the time to market for software releases. Kubernetes utilizes container runtimes to manage Containers, with the Container Runtime Interface (CRI) serving as a communication medium with low-level container runtimes such as runc and kata container. With the deprecation of Dockershim, developers are left to choose between CRI-O and Containerd, two CRI implementations. This study configures a Kubernetes cluster with both Containerd and CRI-O separately and analyzes performance parameters such as throughput, response time, CPU, memory, and network utilization. Additionally, we examine the impact of using runc and kata container runtimes together within the cluster. The study, conducted using a performance script created by JMeter, reveals that different container runtimes cater to distinct business use-cases and can complement each other when used together in a cluster environment. High compute applications are best run using runc, while high-security requirements are fulfilled by kata. The study provides a comprehensive performance comparison between Containerd and CRI-O, shedding light on the depth and versatility of container runtimes.

References

P. Mell and T. Grance, The NIST Definition of Cloud Computing, National Institute of Standards and Technology, Special Publication 800-145, 2011. https://doi.org/10.6028/NIST.SP.800-145.

B. Burns, B. Grant, D. Oppenheimer, E. Brewer, and J. Wilkes, “Borg, Omega, and Kubernetes,” ACM Queue, vol. 14, no. 1, pp. 70–93, 2016, https://doi.org/10.1145/2898442.2898444.

S. J. Songi Gwak Thien-Phuc Doan, “Container instrumentation and enforcement system for runtime security of kubernetes platform with eBPF,” Intelligent Automation & Soft Computing, vol. 37, no. 2, pp. 1773–1786, 2023. https://doi.org/10.32604/iasc.2023.039565.

Kubernetes, “Dockershim deprecation FAQ,” Kubernetes, 2020. [Online]. Available at: https://kubernetes.io/blog/2020/12/02/dockershim-faq/

M. Šimon, L. Huraj, and N. Búčik, “A comparative analysis of high availability for linux container infrastructures,” Future Internet, vol. 15, no. 8, pp. 253, 2023. https://doi.org/10.3390/fi15080253.

S. A. Bello et al., “Cloud computing in construction industry: Use cases, benefits and challenges,” Autom Constr, vol. 122, p. 103441, 2021. https://doi.org/10.1016/j.autcon.2020.103441.

N. Kratzke, “A brief history of cloud application architectures,” Applied Sciences, vol. 8, no. 8, p. 1368, 2018. https://doi.org/10.3390/app8081368.

N. G. Bachiega, P. S. L. Souza, S. M. Bruschi, and S. do R. S. de Souza, “Container-based performance evaluation: A survey and challenges,” Proceedings of the 2018 IEEE International Conference on Cloud Engineering (IC2E), April 2018, pp. 398–403. https://doi.org/10.1109/IC2E.2018.00075.

A. Bhardwaj and C. R. Krishna, “Virtualization in cloud computing: Moving from hypervisor to containerization – A survey,” Arab J Sci Eng, vol. 46, no. 9, pp. 8585–8601, 2021, https://doi.org/10.1007/s13369-021-05553-3.

A. M. Potdar, S. Poojary, S. Nair, and S. Pai, “Performance evaluation of docker container and virtual machine,” Procedia Comput Sci, vol. 171, pp. 1419–1428, 2020, https://doi.org/10.1016/j.procs.2020.04.152.

A. M. Joy, “Performance comparison between Linux containers and virtual machines,” Proceedings of the 2015 IEEE International Conference on Advances in Computer Engineering and Applications, March 2015, pp. 342-346. https://doi.org/10.1109/ICACEA.2015.7164727.

I. M. A. Jawarneh, A. Al-Shishtawy, V. V. Vinay, and R. Ghosh, “Container orchestration engines: A thorough functional and performance comparison,” Proceedings of the 2019 IEEE International Conference on Communications (ICC), May 2019, pp. 1-6. https://doi.org/10.1109/ICC.2019.8762053.

L. Wang, Z. Du, and Y. Liu, “Performance Analysis of Container Runtimes,” Journal of Cloud Computing, vol. 1, no. 1, pp. 1–15, 2022.

A. P. Ferreira and R. Sinnott, “A performance evaluation of containers running on managed Kubernetes services,” Proceedings of the 2019 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), December 2019, pp. 199-208. https://doi.org/10.1109/CloudCom.2019.00038.

A. Viktorsson, C. Klein, and J. Tordsson, “Performance and security analysis of container runtimes in Kubernetes,” International Journal of Cloud Computing, vol. 9, no. 2, pp. 120–135, 2020.

H. Z. Cochak, G. P. Koslovski, M. A. Pillon, and C. C. Miers, “RunC and Kata runtime using Docker: a network perspective comparison,” Proceedings of the 2021 IEEE Latin-American Conference on Communications (LATINCOM), November 2021, pp. 1–6. https://doi.org/10.1109/LATINCOM53176.2021.9647757.

R. Kumar and B. Thangaraju, “Performance analysis between RunC and Kata container runtime,” Proceedings of the 2020 IEEE International Conference on Electronics, Computing and Communication Technologies (CONECCT), July 2020, pp. 1-4. https://doi.org/10.1109/CONECCT50063.2020.9198653.

M. Luksa, Kubernetes in Action, Second ed., Simon and Schuster, 2017, 775 p. https://doi.org/10.3139/9783446456020.fm.

L. Espe, A. Jindal, V. Podolskiy, and M. Gerndt, “Performance evaluation of container runtimes,” CLOSER, 2020, pp. 273–281. https://doi.org/10.5220/0009340402730281.

N. Marathe, A. Gandhi, and J. M. Shah, “Docker swarm and Kubernetes in cloud computing environment,” Proceedings of the 2019 3rd International Conference on Trends in Electronics and Informatics (ICOEI), 2019, pp. 179–184. https://doi.org/10.1109/ICOEI.2019.8862654.

E. Bisong and E. Bisong, “Containers and Google Kubernetes engine,” Building Machine Learning and Deep Learning Models on Google Cloud Platform: A Comprehensive Guide for Beginners, pp. 655–670, 2019. https://doi.org/10.1007/978-1-4842-4470-8_45.

J. P. Martin, A. Kandasamy, and K. Chandrasekaran, “Exploring the support for high performance applications in the container runtime environment,” Human-centric Computing and Information Sciences, vol. 8, no. 1, 2018, https://doi.org/10.1186/s13673-017-0124-3.

G. E. de Velp, E. Rivière, and R. Sadre, “Understanding the performance of container execution environments,” Proceedings of the 2020 6th International Workshop on Container Technologies and Container Clouds, 2020, pp. 37–42. https://doi.org/10.1145/3429885.3429967.

Z. Kozhirbayev and R. O. Sinnott, “A performance comparison of container-based technologies for the cloud,” Future Generation Computer Systems, vol. 68, pp. 175–182, 2017. https://doi.org/10.1016/j.future.2016.08.025.

M. Moravcik, P. Segec, M. Kontsek, J. Uramova, and J. Papan, “Comparison of lxc and docker technologies,” Proceedings of the 2020 18th International Conference on Emerging eLearning Technologies and Applications (ICETA), 2020, pp. 481–486. https://doi.org/10.1109/ICETA51985.2020.9379212.

R. Debab and others, “Containers runtimes war: a comparative study,” Proceedings of the Future Technologies Conference, Springer, 2021, pp. 135–161. https://doi.org/10.1007/978-3-030-63089-8_9.

W. Wang, L. Zhang, D. Guo, S. Wu, H. Cui, and F. Bi, “Reg: An ultra-lightweight container that maximizes memory sharing and minimizes the runtime environment,” Proceedings of the 2019 IEEE International Conference on Web Services (ICWS), 2019, pp. 76–82. https://doi.org/10.1109/ICWS.2019.00024.

Downloads

Published

2023-12-31

How to Cite

Bhattacharya, M. H., & Mittal, H. K. (2023). Exploring the Performance of Container Runtimes within Kubernetes Clusters. International Journal of Computing, 22(4), 509-514. https://doi.org/10.47839/ijc.22.4.3359

Issue

Section

Articles