跳转至

使用 Kubectl 部署NebulaGraph集群

历史版本兼容性

1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的NebulaGraph。

前提条件

创建集群

本文以创建名为nebula的集群为例,说明如何部署NebulaGraph集群。

  1. 创建命名空间,例如nebula。如果不指定命名空间,默认使用default命名空间。

    kubectl create namespace nebula
    
  2. 创建集群配置文件。

    创建名为apps_v1alpha1_nebulacluster.yaml的文件。文件内容参见示例配置

    示例配置的参数描述如下:

    参数 默认值 描述
    metadata.name - 创建的NebulaGraph集群名称。
    spec.console - 启动 Console 容器用于连接 Graph 服务。配置详情,参见 nebula-console.
    spec.graphd.replicas 1 Graphd 服务的副本数。
    spec.graphd.image vesoft/nebula-graphd Graphd 服务的容器镜像。
    spec.graphd.version v3.6.0 Graphd 服务的版本号。
    spec.graphd.service 访问 Graphd 服务的 Service 配置。
    spec.graphd.logVolumeClaim.storageClassName - Graphd 服务的日志盘存储卷的存储类名称。使用示例配置时需要将其替换为事先创建的存储类名称,参见 Storage Classes 查看创建存储类详情。
    spec.metad.replicas 1 Metad 服务的副本数。
    spec.metad.image vesoft/nebula-metad Metad 服务的容器镜像。
    spec.metad.version v3.6.0 Metad 服务的版本号。
    spec.metad.dataVolumeClaim.storageClassName - Metad 服务的数据盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 Storage Classes 查看创建存储类详情。
    spec.metad.logVolumeClaim.storageClassName - Metad 服务的日志盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 Storage Classes 查看创建存储类详情。
    spec.storaged.replicas 3 Storaged 服务的副本数。
    spec.storaged.image vesoft/nebula-storaged Storaged 服务的容器镜像。
    spec.storaged.version v3.6.0 Storaged 服务的版本号。
    spec.storaged.dataVolumeClaims.resources.requests.storage - Storaged 服务的数据盘存储大小,可指定多块数据盘存储数据。当指定多块数据盘时,路径为:/usr/local/nebula/data1/usr/local/nebula/data2等。
    spec.storaged.dataVolumeClaims.resources.storageClassName - Storaged 服务的数据盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 Storage Classes 查看创建存储类详情。
    spec.storaged.logVolumeClaim.storageClassName - Storaged 服务的日志盘存储配置。使用示例配置时需要将其替换为事先创建的存储类名称,参见 Storage Classes 查看创建存储类详情。
    spec.<metad|storaged|graphd>.securityContext {} 定义集群容器的权限和访问控制,以控制访问和执行容器的操作。详情参见 SecurityContext
    spec.agent {} Agent 服务的配置。用于备份和恢复及日志清理功能,如果不自定义该配置,将使用默认配置。
    spec.reference.name - 依赖的控制器名称。
    spec.schedulerName - 调度器名称。
    spec.imagePullPolicy NebulaGraph镜像的拉取策略。关于拉取策略详情,请参考 Image pull policy 镜像拉取策略。
    spec.logRotate - 日志轮转配置。详情参见管理集群日志
    spec.enablePVReclaim false 定义是否在删除集群后自动删除 PVC 以释放数据。详情参见回收 PV
  3. 创建NebulaGraph集群。

    kubectl create -f apps_v1alpha1_nebulacluster.yaml
    

    返回:

    nebulacluster.apps.nebula-graph.io/nebula created
    
  4. 查看NebulaGraph集群状态。

    kubectl get nebulaclusters nebula
    

    返回:

    NAME     GRAPHD-DESIRED   GRAPHD-READY   METAD-DESIRED   METAD-READY   STORAGED-DESIRED   STORAGED-READY   AGE
    nebula   1                1              1               1             3                  3                86s
    

扩缩容集群

不支持扩缩容社区版的NebulaGraph集群。

删除集群

使用 Kubectl 删除NebulaGraph集群的命令如下:

kubectl delete -f apps_v1alpha1_nebulacluster.yaml

后续操作

连接NebulaGraph数据库


最后更新: November 15, 2023