使用 Helm 部署 Nebula Graph 集群¶
历史版本兼容性
1.x 版本的 Nebula Operator 不兼容 3.x 以下版本的 Nebula Graph。
前提条件¶
创建 Nebula Graph 集群¶
-
添加 Nebula Operator chart 仓库至 Helm(如已创添加,略过前面 1 至 2 步,从第 3 步开始执行)。
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts
-
更新 Helm 仓库,拉取最新仓库资源。
helm repo update
-
配置 Helm 的环境变量。
export NEBULA_CLUSTER_NAME=nebula # Nebula Graph 集群的名字。 export NEBULA_CLUSTER_NAMESPACE=nebula # Nebula Graph 集群所处的命名空间的名字。 export STORAGE_CLASS_NAME=gp2 # Nebula Graph 集群的 StorageClass。
-
为 Nebula Graph 集群创建命名空间(如已创建,略过此步)。
kubectl create namespace "${NEBULA_CLUSTER_NAMESPACE}"
-
创建 Nebula Graph 集群。
helm install "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \ --namespace="${NEBULA_CLUSTER_NAMESPACE}" \ --set nameOverride=${NEBULA_CLUSTER_NAME} \ --set nebula.storageClassName="${STORAGE_CLASS_NAME}"
-
查看 Nebula Graph 集群创建状态。
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
扩缩容集群¶
Enterpriseonly
- 仅支持通过 v1.1.0 及以上版本的 Nebula Operator 扩缩容企业版的 Nebula Graph 集群。
- 不支持扩缩容社区版的 Nebula Graph 集群。
用户可通过定义 Nebula Graph 中不同服务对应的replicas
的值扩缩容 Nebuala Graph 集群。
例如,扩容 Nebula Graph 集群中 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
同理,将 Nebula Graph 集群中服务对应的replicas
的值设置成小于原始值,即可实现集群服务的缩容。
Caution
目前仅支持对 Nebula Graph 集群中的 Graph 服务和 Storage 服务进行扩缩容,不支持扩缩容 Meta 服务。
用户可点击 nebula-cluster/values.yaml 查看 Nebula Cluster 集群 Chart 的更多配置。有关文件中配置项的解释,参考下文 Nebula Graph 集群 Chart 配置参数说明。
删除集群¶
使用 Helm 删除集群的命令如下:
helm uninstall "${NEBULA_CLUSTER_NAME}" --namespace="${NEBULA_CLUSTER_NAMESPACE}"
或者使用真实值删除集群,例如:
helm uninstall nebula --namespace=nebula
后续操作¶
Nebula Graph 集群 Chart 配置参数说明¶
参数 | 默认值 | 描述 |
---|---|---|
nameOverride |
nil |
覆盖集群 Chart 的名称。 |
nebula.version |
v3.1.3 |
Nebula Graph 的版本。 |
nebula.imagePullPolicy |
IfNotPresent |
Nebula Graph 镜像的拉取策略。关于拉取策略详情,请参考 Image pull policy。 |
nebula.storageClassName |
nil |
持久存储卷的类型,默认使用 StorageClass 的名字。 |
nebula.schedulerName |
default-scheduler |
Nebula Graph 集群的调度器。 |
nebula.reference |
{"name": "statefulsets.apps", "version": "v1"} |
为 Nebula Graph 引用的工作负载。 |
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。 |
最后更新:
March 7, 2023