当前位置: X-MOL 学术J. Syst. Softw. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Kubernetes controller for managing the availability of elastic microservice based stateful applications
Journal of Systems and Software ( IF 3.7 ) Pub Date : 2021-02-10 , DOI: 10.1016/j.jss.2021.110924
Leila Abdollahi Vayghan , Mohamed Aymen Saied , Maria Toeroe , Ferhat Khendek

The architectural style of microservices has been gaining popularity in recent years. In this architectural style, small and loosely coupled modules are deployed and scaled independently to compose cloud-native applications. Carrier-grade service providers are migrating their legacy applications to a microservice based architecture running on Kubernetes which is an open source platform for orchestrating containerized microservice based applications. However, in this migration, service availability remains a concern. Service availability is measured as the percentage of time the service is provisioned. High Availability (HA) is achieved when the service is available at least 99.999% of the time. In this paper, we identify possible architectures for deploying stateful microservice based applications with Kubernetes and evaluate Kubernetes from the perspective of availability it provides for its managed applications. The results of our experiments show that the repair actions of Kubernetes cannot satisfy HA requirements, and in some cases cannot guarantee service recovery. Therefore, we propose an HA State Controller which integrates with Kubernetes and allows for application state replication and automatic service redirection to the healthy microservice instances by enabling service recovery in addition to the repair actions of Kubernetes. Based on experiments we evaluate our solution and compare the different architectures from the perspective of availability and scaling overhead. The results of our investigations show that our solution can improve the recovery time of stateful microservice based applications by 50%.



中文翻译:

Kubernetes控制器,用于管理基于弹性微服务的状态应用程序的可用性

近年来,微服务的体系结构风格已经越来越流行。在这种架构风格中,小型且松散耦合的模块被独立部署和扩展以组成云原生应用程序。运营商级服务提供商正在将其旧版应用程序迁移到在Kubernetes上运行的基于微服务的体系结构,Kubernetes是用于编排基于容器的基于微服务的应用程序的开源平台。但是,在此迁移中,服务可用性仍然是一个问题。服务可用性以提供服务的时间百分比来衡量。当服务至少有99.999%的时间可用时,即可实现高可用性(HA)。在本文中,我们确定了使用Kubernetes部署基于状态的微服务的应用程序的可能架构,并从其为托管应用程序提供的可用性的角度评估了Kubernetes。我们的实验结果表明,Kubernetes的修复行为不能满足HA的要求,并且在某些情况下不能保证服务的恢复。因此,我们提出了一种HA状态控制器,该控制器与Kubernetes集成在一起,并通过启用服务恢复以及Kubernetes的修复操作,允许应用程序状态复制和自动服务重定向到健康的微服务实例。基于实验,我们评估了我们的解决方案,并从可用性和扩展开销的角度比较了不同的体系结构。

更新日期:2021-02-19
down
wechat
bug