升级 NebulaGraph 集群Graph
本文介绍如何升级通过 Nebula Operator 创建的 NebulaGraph 集群。
使用限制Graph
- 只支持使用 Nebula Operator 创建的 NebulaGraph 集群。
- 只支持升级 NebulaGraph 2.5.x 至 2.6.x 版本。
- 不支持升级通过 0.8.0 版 Operator 创建的集群。
使用 Kubectl 升级 NebulaGraph 集群Graph
前提条件Graph
已创建 NebulaGraph 集群。具体步骤,参见Graph。
本文示例中待升级的 NebulaGraph 版本为 2.5.1,其 YAML 文件名为apps_v1alpha1_nebulacluster.yaml
。
操作步骤Graph
-
查看集群中服务的镜像版本。
kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c
返回:
1 vesoft/nebula-graphd:v2.5.1 1 vesoft/nebula-metad:v2.5.1 3 vesoft/nebula-storaged:v2.5.1
-
编辑
apps_v1alpha1_nebulacluster.yaml
并将所有version
的值从 v2.5.1 修改至v2.6.1。修改后的 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.6.1 //将值从 v2.5.1 修改至v2.6.1。 service: type: NodePort externalTrafficPolicy: Local logVolumeClaim: 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.6.1 //将值从 v2.5.1 修改至v2.6.1。 dataVolumeClaim: resources: requests: storage: 2Gi storageClassName: gp2 logVolumeClaim: 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.6.1 //将值从 v2.5.1 修改至v2.6.1。 dataVolumeClaim: resources: requests: storage: 2Gi storageClassName: gp2 logVolumeClaim: resources: requests: storage: 2Gi storageClassName: gp2 reference: name: statefulsets.apps version: v1 schedulerName: default-scheduler imagePullPolicy: Always
-
执行以下命令将版本升级的更新应用于集群 CR 中。
kubectl apply -f apps_v1alpha1_nebulacluster.yaml
-
等待约 2 分钟后,执行以下命令可查看到服务的镜像版本变更为v2.6.1。
kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c
返回:
1 vesoft/nebula-graphd:v2.6.1 1 vesoft/nebula-metad:v2.6.1 3 vesoft/nebula-storaged:v2.6.1
使用 Helm 升级 NebulaGraph 集群Graph
前提条件Graph
已创建 NebulaGraph 集群。具体步骤,参见Graph。
操作步骤Graph
-
更新 Helm 仓库,拉取最新的仓库资源。
helm repo update
-
配置 Helm 的环境变量。
export NEBULA_CLUSTER_NAME=nebula # NebulaGraph 集群的名字。 export NEBULA_CLUSTER_NAMESPACE=nebula # NebulaGraph 集群所处的命名空间的名字。
-
升级 NebulaGraph 集群。
例如升级至v2.6.1NebulaGraph 集群的命令如下。
helm upgrade "${NEBULA_CLUSTER_NAME}" nebula-operator/nebula-cluster \ --namespace="${NEBULA_CLUSTER_NAMESPACE}" \ --set nameOverride=${NEBULA_CLUSTER_NAME} \ --set nebula.version=v2.6.1
--set nebula.version
的值指需要升级集群的目标版本号。 -
执行以下命令查看集群状态及集群版本。
查看集群状态:
$ 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 2m nebula-graphd-1 1/1 Running 0 2m nebula-metad-0 1/1 Running 0 2m nebula-metad-1 1/1 Running 0 2m nebula-metad-2 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
查看集群版本:
$ kubectl get pods -l app.kubernetes.io/cluster=nebula -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c 1 vesoft/nebula-graphd:v2.6.1 1 vesoft/nebula-metad:v2.6.1 3 vesoft/nebula-storaged:v2.6.1
最后更新: November 24, 2021