跳转至

使用Helm部署NebulaGraph集群Graph

前提条件Graph

Graph

创建NebulaGraph集群Graph

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

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

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

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

    kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}"
    
  5. 创建NebulaGraph集群。

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

    kubectl -n "${NEBULA_CLUSTER_NAMESPACE}" get pod -l "app.kubernetes.io/cluster=${NEBULA_CLUSTER_NAME}"
    
    返回示例:

    NAME                READY   STATUS    RESTARTS   AGE
    nebula-graphd-0     1/1     Running   0          5m34s
    nebula-graphd-1     1/1     Running   0          5m34s
    nebula-metad-0      1/1     Running   0          5m34s
    nebula-metad-1      1/1     Running   0          5m34s
    nebula-metad-2      1/1     Running   0          5m34s
    nebula-storaged-0   1/1     Running   0          5m34s
    nebula-storaged-1   1/1     Running   0          5m34s
    nebula-storaged-2   1/1     Running   0          5m34s
    

扩缩容集群Graph

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

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

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

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

Caution

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

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

删除集群Graph

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

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

后续操作Graph

Graph

NebulaGraph集群Chart配置参数说明Graph

参数 默认值 描述
nameOverride nil 覆盖集群Chart的名称。
nebula.version v2.6.0 NebulaGraph的版本。
nebula.imagePullPolicy IfNotPresent NebulaGraph镜像的拉取策略。关于拉取策略详情,请参考Graph。
nebula.storageClassName nil 持久存储卷的类型,默认使用StorageClass的名字。
nebula.schedulerName default-scheduler NebulaGraph集群的调度器。
nebula.reference {"name": "statefulsets.apps", "version": "v1"} 为NebulaGraph引用的工作负载。
nebula.graphd.image vesoft/nebula-graphd Graphd容器镜像名称。使用 nebula.version中的值作为版本。
nebula.graphd.replicas 2 Graphd服务的副本数。
nebula.graphd.env [] Graphd服务的环境变量。
nebula.graphd.resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}} Graphd资源配置。
nebula.graphd.logStorage 500Mi Graphd服务的日志盘大小。
nebula.graphd.podLabels {} Graphd服务Pod的标签。
nebula.graphd.podAnnotations {} Graphd服务Pod的注解。
nebula.graphd.nodeSelector {} 为Graphd pod设置节点标签以分配至指定的节点中。
nebula.graphd.tolerations {} 为Graphd pod设置容忍度。
nebula.graphd.affinity {} 为Graphd pod设置亲和性。
nebula.graphd.readinessProbe {} 为Graphd pod设置就绪探针以检测容器的状态。
nebula.graphd.sidecarContainers {} 为Graphd pod设置Sidecar Containers。
nebula.graphd.sidecarVolumes {} 为Graphd pod设置Sidecar Volumes。
nebula.metad.image vesoft/nebula-metad Metad容器镜像名称。使用 nebula.version中的值作为版本。
nebula.metad.replicas 3 Metad服务的副本数。
nebula.metad.env [] Metad服务的环境变量。
nebula.metad.resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}} Metad服务的资源配置。
nebula.metad.logStorage 500Mi Metad服务的日志盘大小。
nebula.metad.dataStorage 1Gi Metad服务的数据盘大小。
nebula.metad.podLabels {} Metad服务Pod的标签。
nebula.metad.podAnnotations {} Metad服务Pod的注解。
nebula.metad.nodeSelector {} 为Metad pod设置节点标签以分配至指定的节点中。
nebula.metad.tolerations {} 为Metad pod设置容忍度。
nebula.metad.affinity {} 为Metad pod设置亲和性。
nebula.metad.readinessProbe {} 为Metad pod设置就绪探针以检测容器的状态。
nebula.metad.sidecarContainers {} 为Metad pod设置Sidecar Containers。
nebula.metad.sidecarVolumes {} 为Metad pod设置Sidecar Volumes。
nebula.storaged.image vesoft/nebula-storaged Storaged容器镜像名称。使用 nebula.version中的值作为版本。
nebula.storaged.replicas 3 Storaged服务的副本数。
nebula.storaged.env [] Storaged服务的环境变量。
nebula.storaged.resources {"resources":{"requests":{"cpu":"500m","memory":"500Mi"},"limits":{"cpu":"1","memory":"1Gi"}}} Storaged服务的资源配置。
nebula.storaged.logStorage 500Mi Storaged服务的日志盘大小。
nebula.storaged.dataStorage 1Gi Storaged服务的数据盘大小。
nebula.storaged.podLabels {} Storaged服务Pod的标签。
nebula.storaged.podAnnotations {} Storaged服务Pod的注解。
nebula.storaged.nodeSelector {} 为Storaged pod设置节点标签以分配至指定的节点中。
nebula.storaged.tolerations {} 为Storaged pod设置容忍度。
nebula.storaged.affinity {} 为Storaged pod设置亲和性。
nebula.storaged.readinessProbe {} 为Storaged pod设置就绪探针以检测容器的状态。
nebula.storaged.sidecarContainers {} 为Storaged pod设置Sidecar Containers。
nebula.storaged.sidecarVolumes {} 为Storaged Pod设置Sidecar Volumes。
imagePullSecrets [] 拉取镜像的Secret。

最后更新: November 16, 2021
Back to top