一句话:首次对 36 个 Kubernetes Operator 的 210 个缺陷进行实证研究,揭示其根因、表现、影响与修复方式。
Kubernetes Operator 是借助 Kubernetes API 自动化应用运维的程序,用户声明期望状态后由 Operator 调和集群实际状态。然而系统复杂、动态且分布式,Operator 缺陷可能引发服务中断和异常集群状态。本文首次对来自 36 个 Operator 的 210 个缺陷进行综合实证研究,系统分析其根因、表现形式、影响与修复方式。研究揭示了若干有趣发现,可为 Operator 缺陷检测、测试方法设计以及更可靠 Operator 的开发提供指导。
Kubernetes is the leading cluster management platform, and within Kubernetes, an operator is an application-specific program that leverages the Kubernetes API to automate operation tasks for managing an application deployed on a Kubernetes cluster. Users can declare a desired state for the managed cluster, specifying their configuration preferences. The operator program is responsible for reconciling the cluster's actual state to align with the desired state. However, the complex, dynamic, and distributed nature of the overall system can introduce operator bugs, and lead to severe consequences, e.g., outages and undesired cluster state. In this paper, we conduct the first comprehensive study on 210 operator bugs from 36 Kubernetes operators. For all the studied bugs, we investigate their root causes, manifestations, impacts and fixing. Our study reveals many interesting findings that can guide the detection and testing of operator bugs, as well as the development of more reliable operators.