The use of containers in cloud architectures has become widespread because of advantages such as limited overhead, easier and faster deployment and higher portability. Moreover, they are a suitable architectural solution for deployment of applications created using a microservices development pattern. Despite the large number of solutions and implementations, open issues have not been addressed in container automation and management. Container resource allocation influences system performance and resource consumption so it is a key factor for cloud providers. We propose a genetic algorithm approach, using the Non-dominated Sorting Genetic Algorithm-II (NSGA-II), to optimize container allocation and elasticity management due to the good results obtained with this algorithm in other resource management optimization problems in cloud architectures. The optimization has been focused on a tight use of the resources and a reduction of the network overhead and system failure rate. A model for cloud cluster, containers, microservices and four optimization objectives is presented. Experimental results have shown that our approach is a suitable solution to address the problem of container allocation and elasticity and it obtains better objectives values than the container management policies implemented in Kubernetes.
翻译:容器在云架构中的应用因其低开销、部署便捷高效及高可移植性等优势而日益普及。此外,采用微服务开发模式创建的应用程序也适合以容器作为架构部署方案。尽管存在大量解决方案与实现,容器自动化及管理领域仍存在未解决的开放性问题。容器资源分配直接影响系统性能与资源消耗,因此成为云服务商的关键技术要素。鉴于非支配排序遗传算法II(NSGA-II)在云架构其他资源管理优化问题中取得的优异效果,本文提出一种基于该算法的遗传算法方法,用于优化容器分配与弹性管理。优化目标聚焦于资源紧凑利用、网络开销降低及系统故障率减少。本文建立了包含云集群、容器、微服务及四个优化目标的系统模型。实验结果表明,该方法能有效解决容器分配与弹性管理问题,且相较于Kubernetes实现的容器管理策略,可获得更优的目标函数值。