跳转至

什么是 NebulaGraph Operator

基本概念

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

operator_map

工作原理

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

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

功能介绍

NebulaGraph Operator 已具备的功能如下:

  • 集群创建和卸载:NebulaGraph Operator 简化了用户部署和卸载集群的过程。用户只需提供对应的 CR 文件,NebulaGraph Operator 即可快速创建或者删除一个对应的 NebulaGraph 集群。更多信息参见创建 NebulaGraph 集群
  • 集群升级:支持升级 3.5.0 版的 NebulaGraph 集群至 3.6.0 版。
  • 故障自愈:NebulaGraph Operator 调用 NebulaGraph 集群提供的接口,动态地感知服务状态。一旦发现异常,NebulaGraph Operator 自动进行容错处理。更多信息参考故障自愈
  • 均衡调度:基于调度器扩展接口,NebulaGraph Operator 提供的调度器可以将应用 Pods 均匀地分布在 NebulaGraph 集群中。

使用限制

版本限制

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

NebulaGraph 版本 NebulaGraph Operator 版本
3.5.x ~ 3.6.0 1.5.0 ~ 1.8.x
3.0.0 ~ 3.4.1 1.3.0、1.4.0 ~ 1.4.2
3.0.0 ~ 3.3.x 1.0.0、1.1.0、1.2.0
2.5.x ~ 2.6.x 0.9.0
2.5.x 0.8.0

历史版本兼容性

  • 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的 NebulaGraph.
  • 由于 0.9.0 版本的 NebulaGraph Operator 的日志盘和数据盘分开存储,因此用 0.9.0 版的 NebulaGraph Operator 管理通过 0.8.0 版本创建的 2.5.x 版本的 NebulaGraph 集群会导致兼容性问题。用户可以备份 2.5.x 版本的 NebulaGraph 集群,然后使用 0.9.0 版本的 Operator 创建 2.6.x 版本集群。

更新说明

Release


最后更新: April 26, 2024