쿠버네티스 환경에서 컨테이너 워크플로의실행 시간 개선을 위한 컨테이너 재시작 감소 기법
Technique to Reduce Container Restart for Improving Execution Time of Container Workflow in Kubernetes Environments
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
데이터 집약적이고 메모리 변동성이 높은 워크플로의 이식성 보장을 위해 컨테이너 가상화 기술이 사용되고 있다. 그리고 쿠버네티스는 이러한컨테이너 애플리케이션들을 관리하기 위한 오케스트레이션 도구로써 사실상 표준으로 사용되고 있다. 클라우드 사용자는 리소스 부족으로 인한컨테이너 재시작을 방지하기 위해 컨테이너 애플리케이션을 오버프로비저닝하는 경향이 있다. 그러나 과도한 오버프로비저닝은 CPU, 메모리 등시스템 리소스의 사용량을 낮아지게 만든다. 이 문제를 해결하기 위해 컨테이너 리소스를 초과 사용하는 방식이 널리 사용되고 있으나, 지나친메모리 리소스 초과 사용은 노드의 메모리 부족으로 인해 연쇄적인 컨테이너 재시작을 유발할 수 있다. 컨테이너 재시작 발생 시 작업을 처음부터다시 시작해야 하므로 많은 상태저장 애플리케이션이 포함된 메모리 변동성이 높은 컨테이너에 큰 오버헤드를 유발할 수 있다. 본 논문은 쿠버네티스환경에서 메모리 초과 사용 시 컨테이너 재시작을 완화하는 기법을 제안한다. 메모리 사용량이 많은 노드에서 메모리 할당을 요청할 가능성이큰 컨테이너를 식별하고 이러한 컨테이너를 일시정지한다. 컨테이너의 CPU 사용량을 크게 줄이면 컨테이너가 일시정지하는 상태와 유사한 효과를얻을 수 있다. 해당 노드의 메모리 사용량이 개선된 것으로 판단되면 컨테이너의 일시정지를 해제한다. 제안기법을 적용하여 쿠버네티스 환경에서메모리 변동성이 높은 워크플로를 구동한 경우 제안기법을 사용하지 않았을 때에 비해 컨테이너의 재시작 횟수가 평균 40%, 최대 58% 감소하였다. 그리고 컨테이너 재시작 횟수 감소로 인해 컨테이너 워크플로의 총 실행 시간이 평균 7%, 최대 13% 단축되었다.
Abstract
The utilization of container virtualization technology ensures the consistency and portability of data-intensive and memory volatileworkflows. Kubernetes serves as the de facto standard for orchestrating these container applications. Cloud users often overprovisioncontainer applications to avoid container restarts caused by resource shortages. However, overprovisioning results in decreased CPU andmemory resource utilization. To address this issue, oversubscription of container resources is commonly employed, although excessiveoversubscription of memory resources can lead to a cascade of container restarts due to node memory scarcity. Container restarts canreset operations and impose substantial overhead on containers with high memory volatility that include numerous stateful applications. This paper proposes a technique to mitigate container restarts in a memory oversubscription environment based on Kubernetes. Theproposed technique involves identifying containers that are likely to request memory allocation on nodes experiencing high memory usageand temporarily pausing these containers. By significantly reducing the CPU usage of containers, an effect similar to a paused state isachieved. The suspension of the identified containers is released once it is determined that the corresponding node's memory usagehas been reduced. The average number of container restarts was reduced by an average of 40% and a maximum of 58% when executinga high memory volatile workflow in a Kubernetes environment with the proposed method compared to its absence. Furthermore, thetotal execution time of a container workflow is decreased by an average of 7% and a maximum of 13% due to the reduced frequencyof container restarts.
참고문헌 (30)
- A. R. Setlur, "An efficient fault tolerant workflow scheduling approach using replication heuristics and checkpointing in the cloud", Journal of Parallel and Distributed Computing, 136, pp.14~28 (2020)
- C. Yang, "Big Data and cloud computing : innovation opportunities and challenges", International Journal of Digital Earth, 10(1), pp.13~53 (2017)
- A. Das, "Distributed machine learning cloud teleophthal mology IoT for predicting AMD disease progression", Future Generation Computer Systems, 93, pp.486~498 (2019)
- B. Liu, "K-PSO : An improved PSO-based container scheduling algorithm for big data applications", International Journal of Network Management, 31(2), pp.e2092~ (2021)
- M. Niu, "GMTA : A geoaware multi-agent task allocation approach for scientific workflows in container-based cloud", IEEE Transactions on Network and Service Management, 17(3), pp.1568~1581 (2020)
- I. Altintas, "Workflow-driven distributed machine learning in CHASE-CI: A cognitive hardware and software ecosystem community infrastructure", IEEE international parallel and distributed processing symposium workshops, pp.865~873 (2019)
- Q. Zhang, "A comparative study of containers and virtual machines in big data environment", IEEE 11th International Conference on Cloud Computing, pp.178~185 (2018)
- M. Malinverno, "An Edge"Based Framework for Enhanced Road Safety of Connected Cars", IEEE Access, 8, pp.58018~58031 (2020)
- V. K. Vavilapalli, "Apache hadoop yarn : Yet another resource negotiator", Proceedings of the 4th annual Symposium on Cloud Computing, pp.1~16 (2013)
- "Swarmkit"[URL]
- "Docker-swarm"[URL]
- "kubernetes"[URL]
- V. M. Bhasi, "Kraken : Adaptive container provisioning for deploying dynamic dags in serverless platforms", Proceedings of the ACM Symposium on Cloud Computing, pp.153~167 (2021)
- R. Nakazawa, "Taming performance degradation of containers in the case of extreme memory overcommitment", IEEE 10th International Conference on Cloud Computing, pp.196~204 (2017)
- W. Chen, "Pufferfish : Container-driven elastic memory management for data"intensive applications", Proceedings of the ACM Symposium on Cloud Computing, pp.259~271 (2019)
- "Kubernetes Components"[URL]
- "Docker"[URL]
- "Containerd"[URL]
- "Container Runtime Interface"[URL]
- D. Williams, "Overdriver : Handling memory overload in an oversub scribed cloud", ACM SIGPLAN Notices, 46(7), pp.205~216 (2011)
- J. Dogani, "Auto-scaling techniques in container-based cloud and edge", fog computing : Taxonomy and survey, 2023, pp.209, 120~150
- C Carrión, "Kubernetes scheduling : Taxonomy, ongoing issues and challenges", ACM Computing Surveys, 55(7), pp.1~37 (2022)
- L. M. Ruíz, "Autoscaling pods on an on-premise kubernetes infrastructure qos-aware", IEEE Access, 10, pp.33083~33094 (2022)
- F. Zhang, "Quantifying cloud elasticity with container-based autoscaling", Future Generation Computer Systems, 98, pp.672~681 (2019)
- Y. Sfakianakis, "Skynet : Performance-driven resource management for dynamic workloads", IEEE 14th International Conference on Cloud Computing, pp.527~539 (2021)
- N. D. Nguyen, "ElasticFog : Elastic resource provisioning in container based fog computing", IEEE Access, 8, pp.183879~183890 (2020)
- Y. Al-Dhuraibi, "Autonomic vertical elasticity of docker containers with elasticdocker", IEEE 10th International Conference on Cloud Computing, pp.472~479 (2017)
- G. Rattihalli, "Exploring potential for non-disruptive vertical auto scaling and resource estimation in kubernetes", IEEE 12th International Conference on Cloud Computing (2019)
- "clinet-go"[URL]
- "Kubernetes Jobs"[URL]
