跳转至

使用 Kubectl 部署 NebulaGraph 集群

历史版本兼容性

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

前提条件

创建集群

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

  1. 创建集群。

    • 社区版集群示例,创建名为apps_v1alpha1_nebulacluster.yaml的文件。

      apiVersion: apps.nebula-graph.io/v1alpha1
      kind: NebulaCluster
      metadata:
        name: nebula
      spec:
        graphd:
          resources:
            requests:
              cpu: "500m"
              memory: "500Mi"
            limits:
              cpu: "1"
              memory: "1Gi"
          replicas: 1
          image: vesoft/nebula-graphd
          version: v3.3.0
          logVolumeClaim:
            resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks
        metad:
          resources:
            requests:
              cpu: "500m"
              memory: "500Mi"
            limits:
              cpu: "1"
              memory: "1Gi"
          replicas: 1
          image: vesoft/nebula-metad
          version: v3.3.0
          logVolumeClaim:
            resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks
          dataVolumeClaim:
            resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks
        storaged:
          resources:
            requests:
              cpu: "500m"
              memory: "500Mi"
            limits:
              cpu: "1"
              memory: "1Gi"
          replicas: 1
          image: vesoft/nebula-storaged
          version: v3.3.0
          logVolumeClaim:
            resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks
          dataVolumeClaims:   # 从 Operator 1.3.0 开始,支持挂载多个数据盘。
          - resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks
          - resources:
              requests:
                storage: 2Gi
            storageClassName: fast-disks    
          enableAutoBalance: true
        reference:
          name: statefulsets.apps
          version: v1
        schedulerName: default-scheduler
        nodeSelector:
          nebula: cloud
        imagePullPolicy: Always
        unsatisfiableAction: ScheduleAnyway
      

    参数描述如下:

    参数 默认值 描述
    metadata.name - 创建的 NebulaGraph 集群名称。
    spec.graphd.replicas 1 Graphd 服务的副本数。
    spec.graphd.images vesoft/nebula-graphd Graphd 服务的容器镜像。
    spec.graphd.version v3.3.0 Graphd 服务的版本号。
    spec.graphd.service - Graphd 服务 Service 配置。
    spec.graphd.logVolumeClaim.storageClassName - Graphd 服务的日志盘存储配置。
    spec.metad.replicas 1 Metad 服务的副本数。
    spec.metad.images vesoft/nebula-metad Metad 服务的容器镜像。
    spec.metad.version v3.3.0 Metad 服务的版本号。
    spec.metad.dataVolumeClaim.storageClassName - Metad 服务的数据盘存储配置。
    spec.metad.logVolumeClaim.storageClassName - Metad 服务的日志盘存储配置。
    spec.storaged.replicas 3 Storaged 服务的副本数。
    spec.storaged.images vesoft/nebula-storaged Storaged 服务的容器镜像。
    spec.storaged.version v3.3.0 Storaged 服务的版本号。
    spec.storaged.dataVolumeClaims.resources.requests.storage - Storaged 服务的数据盘存储大小,可指定多块数据盘存储数据。当指定多块数据盘时,路径为:/usr/local/nebula/data1/usr/local/nebula/data2等。
    spec.storaged.dataVolumeClaims.resources.storageClassName - Storaged 服务的数据盘存储配置。若不指定,则使用全局的存储配置。
    spec.storaged.logVolumeClaim.storageClassName - Storaged 服务的日志盘存储配置。
    spec.storaged.enableAutoBalance true 是否自动均衡数据。
    spec.reference.name - 依赖的控制器名称。
    spec.schedulerName - 调度器名称。
    spec.imagePullPolicy NebulaGraph 镜像的拉取策略。关于拉取策略详情,请参考 Image pull policy 镜像拉取策略。
  2. 创建 NebulaGraph 集群。

    kubectl create -f apps_v1alpha1_nebulacluster.yaml
    

    返回:

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

    kubectl get nebulaclusters.apps.nebula-graph.io 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 数据库


最后更新: March 28, 2023