什么是Nebula Operator

基本概念

Nebula Operator是用于在Kubernetes系统上自动化部署和运维Nebula Graph集群的工具。依托于Kubernetes扩展机制,Nebula Graph将其运维领域的知识全面注入至Kubernetes系统中,让Nebula Graph成为真正的云原生图数据库

工作原理

对于Kubernetes系统内不存在的资源类型,用户可以通过添加自定义API对象的方式注册,常见的方法是使用CustomResourceDefinition(CRD)

Nebula Operator将Nebula Graph集群的部署管理抽象为CRD。通过结合多个内置的API对象,包括StatefulSet、Service和ConfigMap,Nebula Graph集群的日常管理和维护被编码为一个控制循环。在Kubernetes系统内,每一种内置资源对象,都运行着一个特定的控制循环,将它的实际状态通过事先规定好的编排动作,逐步调整为最终的期望状态。当一个CR实例被提交时,Nebula Operator会根据控制流程驱动数据库集群进入最终状态。

功能介绍

Nebula Operator已具备的功能如下:

  • 集群创建和卸载:Nebula Operator简化了用户部署和卸载集群的过程。用户只需提供对应的CR文件,Nebula Operator即可快速创建或者删除一个对应的Nebula Graph集群。更多信息参考使用Kubectl部署Nebula Graph集群或者使用Helm部署Nebula Graph集群

  • 集群扩容和缩容:通过在控制循环中调用Nebula Graph原生提供的扩缩容接口,Nebula Graph封装Nebula Operator实现了扩缩容的逻辑,用户可以通过YAML配置进行简单的扩缩容,且保证数据的稳定性。更多信息参考使用Kubeclt扩缩容集群使用Helm扩缩容集群

  • 故障自愈:Nebula Operator调用Nebula Graph集群提供的接口,动态地感知服务状态。一旦发现异常,Nebula Operator自动进行容错处理。更多信息参考故障自愈

  • 均衡调度: 基于调度器扩展接口,Nebula Operator提供的调度器可以将应用Pods均匀地分布在Nebula Graph集群中。

使用限制

版本限制

Nebula Operator不支持v1.x版本的Nebula Graph,其与Nebula Graph版本的对应关系如下:

Nebula Operator版本Nebula Graph版本
0.8.02.5.x

功能限制

目前Nebula Operator只支持手动扩缩容Nebula Graph集群,不支持自动扩缩容Nebula Graph集群。


最后更新: November 4, 2021