论文标题
Kubernetes控制器,用于管理基于弹性微服务的状态应用程序的可用性
A Kubernetes Controller for Managing the Availability of Elastic Microservice Based Stateful Applications
论文作者
论文摘要
近年来,微服务的建筑风格一直在越来越受欢迎。在这种体系结构样式中,部署并独立缩放小型耦合模块以构成云本地应用程序。运营商级服务提供商正在将其传统应用程序迁移到基于微服务的架构上,该架构是在Kubernetes上运行的,该架构是一个开源平台,用于协调基于容器的基于微服务的应用程序。但是,在此迁移中,服务可用性仍然是一个问题。服务可用性是根据提供服务的时间百分比的。至少99.999%的时间可用时,可以实现高可用性(HA)。在本文中,我们确定了使用Kubernetes部署基于国家微服务的应用程序的架构,并从其为托管应用程序提供的可用性的角度评估Kubernetes。我们的实验结果表明,Kubernetes的维修操作无法满足HA要求,在某些情况下无法保证恢复服务。因此,我们提出了一个与Kubernetes集成在一起的HA状态控制器,并允许使用kubernetes的维修操作以启用服务恢复,从而使应用状态复制和自动服务重定向到健康的微服务实例。基于实验,我们从可用性和扩展开销的角度评估解决方案并比较不同的架构。我们的调查结果表明,我们的解决方案可以将基于状态微服务的应用程序的恢复时间提高50%。
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%.