什么是 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 集群。
- 集群扩容和缩容:通过在控制循环中调用 NebulaGraph 原生提供的扩缩容接口,NebulaGraph 封装 NebulaGraph Operator 实现了扩缩容的逻辑,用户可以通过 YAML 配置进行简单的扩缩容,且保证数据的稳定性。更多信息参考使用 Kubeclt 扩缩容集群 或使用 Helm 扩缩容集群。
- 集群升级:支持升级 3.0.0 版的 NebulaGraph 集群至 3.1.x 版。
- 故障自愈:NebulaGraph Operator 调用 NebulaGraph 集群提供的接口,动态地感知服务状态。一旦发现异常,NebulaGraph Operator 自动进行容错处理。更多信息参考故障自愈。
- 均衡调度:基于调度器扩展接口,NebulaGraph Operator 提供的调度器可以将应用 Pods 均匀地分布在 NebulaGraph 集群中。
使用限制¶
版本限制¶
NebulaGraph Operator 不支持 v1.x 版本的 NebulaGraph,其与 NebulaGraph 版本的对应关系如下:
NebulaGraph Operator 版本 | NebulaGraph 版本 |
---|---|
1.2.0 | 3.0.0 ~ 3.1.x |
1.0.0 | 3.0.0 ~ 3.1.x |
0.9.0 | 2.5.x ~ 2.6.x |
0.8.0 | 2.5.x |
历史版本兼容性
- 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 版本集群。
功能限制¶
NebulaGraph Operator 的扩缩容功能仅对企业版的 NebulaGraph 集群开放,不支持使用 NebulaGraph Operator 扩缩容社区版的 NebulaGraph 集群。
更新说明¶
最后更新:
February 23, 2023