什么是 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 扩缩容集群。
- 集群升级:支持升级 3.0.0 版的 Nebula Graph 集群至 3.1.x 版。
- 故障自愈:Nebula Operator 调用 Nebula Graph 集群提供的接口,动态地感知服务状态。一旦发现异常,Nebula Operator 自动进行容错处理。更多信息参考故障自愈。
- 均衡调度:基于调度器扩展接口,Nebula Operator 提供的调度器可以将应用 Pods 均匀地分布在 Nebula Graph 集群中。
使用限制¶
版本限制¶
Nebula Operator 不支持 v1.x 版本的 Nebula Graph,其与 Nebula Graph 版本的对应关系如下:
Nebula Operator 版本 | Nebula Graph 版本 |
---|---|
1.1.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 版本的 Nebula Operator 不兼容 3.x 以下版本的 Nebula Graph.
- 由于 0.9.0 版本的 Nebula Operator 的日志盘和数据盘分开存储,因此用 0.9.0 版的 Nebula Operator 管理通过 0.8.0 版本创建的 2.5.x 版本的 Nebula Graph 集群会导致兼容性问题。用户可以备份 2.5.x 版本的 Nebula Graph 集群,然后使用 0.9.0 版本的 Operator 创建 2.6.x 版本集群。
功能限制¶
Nebula Operator 的扩缩容功能仅对企业版的 Nebula Graph 集群开放,不支持使用 Nebula Operator 扩缩容社区版的 Nebula Graph 集群。
更新说明¶
最后更新:
June 20, 2023