使用Kubectl部署Nebula Graph集群
前提条件
创建集群
本文以创建名为nebula
的集群为例,说明如何部署Nebula Graph集群。
创建名为
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: v2.5.1
service:
type: NodePort
externalTrafficPolicy: Local
storageClaim:
resources:
requests:
storage: 2Gi
storageClassName: gp2
metad:
resources:
requests:
cpu: "500m"
memory: "500Mi"
limits:
cpu: "1"
memory: "1Gi"
replicas: 1
image: vesoft/nebula-metad
version: v2.5.1
storageClaim:
resources:
requests:
storage: 2Gi
storageClassName: gp2
storaged:
resources:
requests:
cpu: "500m"
memory: "500Mi"
limits:
cpu: "1"
memory: "1Gi"
replicas: 3
image: vesoft/nebula-storaged
version: v2.5.1
storageClaim:
resources:
requests:
storage: 2Gi
storageClassName: gp2
reference:
name: statefulsets.apps
version: v1
schedulerName: default-scheduler
imagePullPolicy: IfNotPresent
参数描述如下:
参数 默认值 描述 metadata.name
- 创建的Nebula Graph集群名称。 spec.graphd.replicas
1
Graphd服务的副本数。 spec.graphd.images
vesoft/nebula-graphd
Graphd服务的容器镜像。 spec.graphd.version
v2.5.1
Graphd服务的版本号。 spec.graphd.service
- Graphd服务Service配置。 spec.graphd.storageClaim
- Graphd服务存储配置。 spec.metad.replicas
1
Metad服务的副本数。 spec.metad.images
vesoft/nebula-metad
Metad服务的容器镜像。 spec.metad.version
v2.5.1
Metad服务的版本号。 spec.metad.storageClaim
- Metad服务存储配置。 spec.storaged.replicas
3
Storaged服务的副本数。 spec.storaged.images
vesoft/nebula-storaged
Storaged服务的容器镜像。 spec.storaged.version
v2.5.1
Storaged服务的版本号。 spec.storaged.storageClaim
- Storaged服务存储配置。 spec.reference.name
- 依赖的控制器名称。 spec.schedulerName
- 调度器名称。 spec.imagePullPolicy
Nebula Graph镜像的拉取策略。关于拉取策略详情,请参考Image pull policy。 镜像拉取策略。 创建Nebula Graph集群。
kubectl create -f apps_v1alpha1_nebulacluster.yaml
返回:
nebulacluster.apps.nebula-graph.io/nebula created
查看Nebula Graph集群状态。
kubectl get nebulaclusters.apps.nebula-graph.io nebula
返回:
NAME GRAPHD-DESIRED GRAPHD-READY METAD-DESIRED METAD-READY STORAGED-DESIRED STORAGED-READY AGE
nebula-cluster 1 1 1 1 3 3 31h
扩缩容集群
用户可以通过编辑apps_v1alpha1_nebulacluster.yaml
文件中的replicas
的值进行Nebula Graph集群的扩缩容。
扩容集群
本文举例扩容Nebula Graph集群中Storage服务至5个。步骤如下:
将
apps_v1alpha1_nebulacluster.yaml
文件中storaged.replicas
的参数值从3
改为5
。storaged:
resources:
requests:
cpu: "1"
memory: "1Gi"
limits:
cpu: "1"
memory: "1Gi"
replicas: 5
image: vesoft/nebula-storaged
version: v2.5.1
storageClaim:
resources:
requests:
storage: 2Gi
storageClassName: fast-disks
执行以下命令使上述更新同步至Nebula Graph集群CR中。
kubectl apply -f apps_v1alpha1_nebulacluster.yaml
查看Storage服务的副本数。
kubectl get pods -l app.kubernetes.io/cluster=nebula
返回:
NAME READY STATUS RESTARTS AGE
nebula-graphd-0 1/1 Running 0 2m
nebula-metad-0 1/1 Running 0 2m
nebula-storaged-0 1/1 Running 0 2m
nebula-storaged-1 1/1 Running 0 2m
nebula-storaged-2 1/1 Running 0 2m
nebula-storaged-3 1/1 Running 0 5m
nebula-storaged-4 1/1 Running 0 5m
由上可看出Storage服务的副本数被扩容至5个。
缩容集群
缩容集群的原理和扩容一样,用户只需将apps_v1alpha1_nebulacluster.yaml
文件中的replicas
的值缩小。具体操作,请参考上文的扩容集群部分。
Caution
目前仅支持对Nebula Graph集群中的Graph服务和Storage服务进行扩缩容,不支持扩缩容Meta服务。
删除集群
使用Kubectl删除Nebula Graph集群的命令如下:
kubectl delete -f apps_v1alpha1_nebulacluster.yaml
后续操作
最后更新: September 24, 2021
当前内容版权归 Nebula Graph 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Nebula Graph .