使用Kubectl部署Nebula Graph集群

前提条件

安装Nebula Operator

创建集群

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

  1. 创建名为apps_v1alpha1_nebulacluster.yaml的文件。

    示例文件的内容如下:

    1. apiVersion: apps.nebula-graph.io/v1alpha1
    2. kind: NebulaCluster
    3. metadata:
    4. name: nebula
    5. spec:
    6. graphd:
    7. resources:
    8. requests:
    9. cpu: "500m"
    10. memory: "500Mi"
    11. limits:
    12. cpu: "1"
    13. memory: "1Gi"
    14. replicas: 1
    15. image: vesoft/nebula-graphd
    16. version: v2.5.1
    17. service:
    18. type: NodePort
    19. externalTrafficPolicy: Local
    20. storageClaim:
    21. resources:
    22. requests:
    23. storage: 2Gi
    24. storageClassName: gp2
    25. metad:
    26. resources:
    27. requests:
    28. cpu: "500m"
    29. memory: "500Mi"
    30. limits:
    31. cpu: "1"
    32. memory: "1Gi"
    33. replicas: 1
    34. image: vesoft/nebula-metad
    35. version: v2.5.1
    36. storageClaim:
    37. resources:
    38. requests:
    39. storage: 2Gi
    40. storageClassName: gp2
    41. storaged:
    42. resources:
    43. requests:
    44. cpu: "500m"
    45. memory: "500Mi"
    46. limits:
    47. cpu: "1"
    48. memory: "1Gi"
    49. replicas: 3
    50. image: vesoft/nebula-storaged
    51. version: v2.5.1
    52. storageClaim:
    53. resources:
    54. requests:
    55. storage: 2Gi
    56. storageClassName: gp2
    57. reference:
    58. name: statefulsets.apps
    59. version: v1
    60. schedulerName: default-scheduler
    61. imagePullPolicy: IfNotPresent

    参数描述如下:

    参数默认值描述
    metadata.name-创建的Nebula Graph集群名称。
    spec.graphd.replicas1Graphd服务的副本数。
    spec.graphd.imagesvesoft/nebula-graphdGraphd服务的容器镜像。
    spec.graphd.versionv2.5.1Graphd服务的版本号。
    spec.graphd.service-Graphd服务Service配置。
    spec.graphd.storageClaim-Graphd服务存储配置。
    spec.metad.replicas1Metad服务的副本数。
    spec.metad.imagesvesoft/nebula-metadMetad服务的容器镜像。
    spec.metad.versionv2.5.1Metad服务的版本号。
    spec.metad.storageClaim-Metad服务存储配置。
    spec.storaged.replicas3Storaged服务的副本数。
    spec.storaged.imagesvesoft/nebula-storagedStoraged服务的容器镜像。
    spec.storaged.versionv2.5.1Storaged服务的版本号。
    spec.storaged.storageClaim-Storaged服务存储配置。
    spec.reference.name-依赖的控制器名称。
    spec.schedulerName-调度器名称。
    spec.imagePullPolicyNebula Graph镜像的拉取策略。关于拉取策略详情,请参考Image pull policy镜像拉取策略。
  2. 创建Nebula Graph集群。

    1. kubectl create -f apps_v1alpha1_nebulacluster.yaml

    返回:

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

    1. kubectl get nebulaclusters.apps.nebula-graph.io nebula

    返回:

    1. NAME GRAPHD-DESIRED GRAPHD-READY METAD-DESIRED METAD-READY STORAGED-DESIRED STORAGED-READY AGE
    2. nebula-cluster 1 1 1 1 3 3 31h

扩缩容集群

用户可以通过编辑apps_v1alpha1_nebulacluster.yaml文件中的replicas的值进行Nebula Graph集群的扩缩容。

扩容集群

本文举例扩容Nebula Graph集群中Storage服务至5个。步骤如下:

  1. apps_v1alpha1_nebulacluster.yaml文件中storaged.replicas的参数值从3改为5

    1. storaged:
    2. resources:
    3. requests:
    4. cpu: "1"
    5. memory: "1Gi"
    6. limits:
    7. cpu: "1"
    8. memory: "1Gi"
    9. replicas: 5
    10. image: vesoft/nebula-storaged
    11. version: v2.5.1
    12. storageClaim:
    13. resources:
    14. requests:
    15. storage: 2Gi
    16. storageClassName: fast-disks
  2. 执行以下命令使上述更新同步至Nebula Graph集群CR中。

    1. kubectl apply -f apps_v1alpha1_nebulacluster.yaml
  3. 查看Storage服务的副本数。

    1. kubectl get pods -l app.kubernetes.io/cluster=nebula

    返回:

    1. NAME READY STATUS RESTARTS AGE
    2. nebula-graphd-0 1/1 Running 0 2m
    3. nebula-metad-0 1/1 Running 0 2m
    4. nebula-storaged-0 1/1 Running 0 2m
    5. nebula-storaged-1 1/1 Running 0 2m
    6. nebula-storaged-2 1/1 Running 0 2m
    7. nebula-storaged-3 1/1 Running 0 5m
    8. nebula-storaged-4 1/1 Running 0 5m

    由上可看出Storage服务的副本数被扩容至5个。

缩容集群

缩容集群的原理和扩容一样,用户只需将apps_v1alpha1_nebulacluster.yaml文件中的replicas的值缩小。具体操作,请参考上文的扩容集群部分。

Caution

目前仅支持对Nebula Graph集群中的Graph服务和Storage服务进行扩缩容,不支持扩缩容Meta服务。

删除集群

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

  1. kubectl delete -f apps_v1alpha1_nebulacluster.yaml

后续操作

连接Nebula Graph数据库


最后更新: September 24, 2021