使用Helm部署Nebula Graph集群

前提条件

安装Nebula Operator

创建Nebula Graph集群

  1. 添加Nebula Operator chart仓库至Helm(如已创添加,略过前面1至2步,从第3步开始执行)。

    1. helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts
  2. 更新Helm仓库,拉取最新仓库资源。

    1. helm repo update
  3. 配置Helm的环境变量。

    1. export NEBULA_CLUSTER_NAME=nebula # Nebula Graph集群的名字。
    2. export NEBULA_CLUSTER_NAMESPACE=nebula # Nebula Graph集群所处的命名空间的名字。
    3. export STORAGE_CLASS_NAME=gp2 # Nebula Graph集群的StorageClass。
  4. 为Nebula Graph集群创建命名空间(如已创建,略过此步)。

    1. kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}"
  5. 创建Nebula Graph集群。

    1. helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
    2. --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
    3. --set nameOverride=${NEBULA_CLUSTER_NAME} \
    4. --set nebula.storageClassName="${STORAGE_CLASS_NAME}"
  6. 查看Nebula Graph集群创建状态。

    1. kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"

    返回示例:

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

扩缩容集群

用户可通过定义Nebula Graph中不同服务对应的replicas的值扩缩容Nebuala Graph集群。

例如,扩容Nebula Graph集群中Storage的副本数为5(原始值为2),命令如下:

  1. helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \
  2. --namespace="${NEBULA_CLUSTER_NAMESPACE}" \
  3. --set nameOverride=${NEBULA_CLUSTER_NAME} \
  4. --set nebula.storageClassName="${STORAGE_CLASS_NAME}" \
  5. --set nebula.storaged.replicas=5

同理,将Nebula Graph集群中服务对应的replicas的值设置成小于原始值,即可实现集群服务的缩容。

Caution

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

用户可点击nebula-cluster/values.yaml查看Nebula Cluster集群Chart的更多配置。有关文件中配置项的解释,参考下文Nebula Graph集群Chart配置参数说明

删除集群

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

  1. helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}"

后续操作

连接Nebula Graph数据库

Nebula Graph集群Chart配置参数说明

参数默认值描述
nameOverridenil覆盖集群Chart的名称。
nebula.versionv2.5.1Nebula Graph的版本。
nebula.imagePullPolicyIfNotPresentNebula Graph镜像的拉取策略。关于拉取策略详情,请参考Image pull policy
nebula.storageClassNamenil持久存储卷的类型,默认使用StorageClass的名字。
nebula.schedulerNamedefault-schedulerNebula Graph集群的调度器。
nebula.reference{“name”: “statefulsets.apps”, “version”: “v1”}为Nebula Graph引用的工作负载。
nebula.podLabels{}Nebula Graph服务Pod的标签。
nebula.podAnnotations{}Nebula Graph服务的注解。
nebula.graphd.imagevesoft/nebula-graphdGraphd容器镜像名称。使用 nebula.version中的值作为版本。
nebula.graphd.replicas2Graphd服务的副本数。
nebula.graphd.env[]Graphd服务的环境变量。
nebula.graphd.resources{“resources”:{“requests”:{“cpu”:”500m”,”memory”:”500Mi”},”limits”:{“cpu”:”1”,”memory”:”1Gi”}}}Graphd资源配置。
nebula.graphd.storage1GiGraphd服务的存储大小值。
nebula.metad.imagevesoft/nebula-metadMetad容器镜像名称。使用 nebula.version中的值作为版本。
nebula.metad.replicas3Metad服务的副本数。
nebula.metad.env[]Metad服务的环境变量。
nebula.metad.resources{“resources”:{“requests”:{“cpu”:”500m”,”memory”:”500Mi”},”limits”:{“cpu”:”1”,”memory”:”1Gi”}}}Metad服务的资源配置。
nebula.metad.storage1GiGraphd服务的存储大小值。
nebula.storaged.imagevesoft/nebula-storagedStoraged容器镜像名称。使用 nebula.version中的值作为版本。
nebula.storaged.replicas3Storaged服务的副本数。
nebula.storaged.env[]Storaged服务的环境变量。
nebula.storaged.resources{“resources”:{“requests”:{“cpu”:”500m”,”memory”:”500Mi”},”limits”:{“cpu”:”1”,”memory”:”1Gi”}}}Storaged服务的资源配置。
nebula.storaged.storage1GiStoraged服务的存储空间值。
imagePullSecrets[]拉取镜像的Secret。

最后更新: September 28, 2021