What is Nebula Operator¶
Concept of Nebula Operator¶
Nebula Operator is a tool to automate the deployment, operation, and maintenance of Nebula Graph clusters on Kubernetes. Building upon the excellent scalability mechanism of Kubernetes, Nebula Graph introduced its operation and maintenance knowledge into the Kubernetes system, which makes Nebula Graph a real cloud-native graph database.
How it works¶
For resource types that do not exist within Kubernetes, you can register them by adding custom API objects. The common way is to use the CustomResourceDefinition.
Nebula Operator abstracts the deployment management of Nebula Graph clusters as a CRD. By combining multiple built-in API objects including StatefulSet, Service, and ConfigMap, the routine management and maintenance of a Nebula Graph cluster are coded as a control loop in the Kubernetes system. When a CR instance is submitted, Nebula Operator drives database clusters to the final state according to the control process.
Features of Nebula Operator¶
The following features are already available in Nebula Operator:
- Deploy and uninstall clusters: Nebula Operator simplifies the process of deploying and uninstalling clusters for users. Nebula Operator allows you to quickly create, update, or delete a Nebula Graph cluster by simply providing the corresponding CR file. For more information, see Deploy Nebula Graph Clusters with Kubectl or Deploy Nebula Graph Clusters with Helm.
- Scale clusters: Nebula Operator calls Nebula Graph's native scaling interfaces in a control loop to implement the scaling logic. You can simply perform scaling operations with YAML configurations and ensure the stability of data. For more information, see Scale clusters with Kubectl or Scale clusters with Helm.
- Cluster Upgrade: Nebula Operator supports cluster upgrading from version 3.0.0 to version 3.1.x.
- Self-Healing: Nebula Operator calls interfaces provided by Nebula Graph clusters to dynamically sense cluster service status. Once an exception is detected, Nebula Operator performs fault tolerance. For more information, see Self-Healing.
- Balance Scheduling: Based on the scheduler extension interface, the scheduler provided by Nebula Operator evenly distributes Pods in a Nebula Graph cluster across all nodes.
Nebula Operator does not support the v1.x version of Nebula Graph. Nebula Operator version and the corresponding Nebula Graph version are as follows:
|Nebula Operator version||Nebula Graph version|
|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|
Legacy version compatibility
- The 1.x version Nebula Operator is not compatible with Nebula Graph of version below v3.x.
- Starting from Nebula Operator 0.9.0, logs and data are stored separately. Using Nebula Operator 0.9.0 or later versions to manage a Nebula Graph 2.5.x cluster created with Operator 0.8.0 can cause compatibility issues. You can backup the data of the Nebula Graph 2.5.x cluster and then create a 2.6.x cluster with Operator 0.9.0.
The Nebula Operator scaling feature is only available for the Enterprise Edition of Nebula Graph clusters and does not support scaling the Community Edition version of Nebula Graph clusters.