Cloud native architecture is about building and running scalable microservice applications to take full advantage of the cloud environments. Managed Kubernetes is the powerhouse orchestrating cloud native applications with elastic scaling. However, traditional Kubernetes autoscalers are reactive, meaning the scaling controllers adjust resources only after they detect demand within the cluster and do not incorporate any predictive measures. This can lead to either over-provisioning and increased costs or under-provisioning and performance degradation. We propose NimbusGuard, an open-source, Kubernetes-based autoscaling system that leverages a deep reinforcement learning agent to provide proactive autoscaling. The agents perception is augmented by a Long Short-Term Memory model that forecasts future workload patterns. The evaluations were conducted by comparing NimbusGuard against the built-in scaling controllers, such as Horizontal Pod Autoscaler, and the event-driven autoscaler KEDA. The experimental results demonstrate how NimbusGuard's proactive framework translates into superior performance and cost efficiency compared to existing reactive methods.
翻译:云原生架构旨在构建和运行可扩展的微服务应用,以充分利用云环境。托管型Kubernetes是编排云原生应用并实现弹性扩缩容的核心引擎。然而,传统的Kubernetes自动扩缩容机制是反应式的,即扩缩容控制器仅在检测到集群内的需求后才调整资源,且不包含任何预测性措施。这可能导致两种后果:资源过度预配导致成本增加,或资源预配不足导致性能下降。我们提出NimbusGuard——一个基于Kubernetes的开源自动扩缩容系统,它利用深度强化学习智能体提供主动式扩缩容。该智能体的感知能力通过长短期记忆模型进行增强,以预测未来的工作负载模式。通过将NimbusGuard与内置扩缩容控制器(如Horizontal Pod Autoscaler)及事件驱动型扩缩容组件KEDA进行对比评估,实验结果表明,相较于现有反应式方法,NimbusGuard的主动式框架在性能与成本效率方面均具有显著优势。