什么是 NebulaGraph Operator¶
基本概念¶
NebulaGraph Operator 是用于在 Kubernetes 系统上自动化部署和运维 NebulaGraph 集群的工具。依托于 Kubernetes 扩展机制,NebulaGraph将其运维领域的知识全面注入至 Kubernetes 系统中,让NebulaGraph成为真正的云原生图数据库。
工作原理¶
对于 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集群。更多信息参考使用 Kubectl 部署NebulaGraph集群或者使用 Helm 部署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.7.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 版本集群。
更新说明¶
最后更新:
January 15, 2024