什么是 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 扩缩容集群。
- 集群升级:支持升级 2.5.x 版的 Nebula Graph 集群至 2.6.x 版。
- 故障自愈:Nebula Operator 调用 Nebula Graph 集群提供的接口,动态地感知服务状态。一旦发现异常,Nebula Operator 自动进行容错处理。更多信息参考故障自愈。
- 均衡调度:基于调度器扩展接口,Nebula Operator 提供的调度器可以将应用 Pods 均匀地分布在 Nebula Graph 集群中。
使用限制¶
版本限制¶
Nebula Operator 不支持 v1.x 版本的 Nebula Graph,其与 Nebula Graph 版本的对应关系如下:
Nebula Operator 版本 | Nebula Graph 版本 |
---|---|
0.9.0 | 2.5.x ~ 2.6.x |
0.8.0 | 2.5.x |
功能限制¶
目前 Nebula Operator 只支持手动扩缩容 Nebula Graph 集群,不支持自动扩缩容 Nebula Graph 集群。
更新说明¶
最后更新:
March 7, 2023