部署 NebulaGraph Operator¶
用户可使用 Helm 工具部署 NebulaGraph Operator。
背景信息¶
NebulaGraph Operator 为用户管理NebulaGraph集群,使用户无需在生产环境中手动安装、扩展、升级和卸载 NebulaGraph,减轻用户管理不同应用版本的负担。
前提条件¶
安装 NebulaGraph Operator 前,用户需要安装以下软件并确保安装版本的正确性。
软件 | 版本要求 |
---|---|
Kubernetes | >= 1.16 |
Helm | >= 3.2.0 |
CoreDNS | >= 1.6.0 |
Note
操作步骤¶
安装 NebulaGraph Operator¶
-
添加 NebulaGraph Operator Helm 仓库。
helm repo add nebula-operator https://vesoft-inc.github.io/nebula-operator/charts
-
拉取最新的 Operator Helm 仓库。
helm repo update
参考 Helm 仓库获取更多
helm repo
相关信息。 -
创建命名空间用于安装 NebulaGraph Operator。
kubectl create namespace <namespace_name>
例如,创建
nebula-operator-system
命名空间。nebula-operator chart 中的所有资源都会安装在该命名空间下。kubectl create namespace nebula-operator-system
-
安装 NebulaGraph Operator。
helm install nebula-operator nebula-operator/nebula-operator --namespace=<namespace_name> --version=${chart_version}
例如,安装1.7.2版的 Operator 命令如下。
helm install nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.7.2
1.7.2
为 nebula-operator chart 的版本,不指定--version
时默认使用最新版的 chart。执行helm search repo -l nebula-operator
查看 chart 版本。
用户可在执行安装 NebulaGraph Operator chart 命令时自定义 Operator 的配置。更多信息,查看下文自定义配置 Chart。
自定义配置 Chart¶
执行helm install [NAME] [CHART] [flags]
命令安装 Chart 时,可指定 Chart 配置。更多信息,参考安装前自定义 Chart。
在 nebula-operator chart 配置文件中查看相关的配置选项。
或者通过命令helm show values nebula-operator/nebula-operator
查看可配置的选项,如下所示。
[abby@master ~]$ helm show values nebula-operator/nebula-operator
image:
nebulaOperator:
image: vesoft/nebula-operator:v1.7.2
imagePullPolicy: Always
kubeRBACProxy:
image: bitnami/kube-rbac-proxy:0.14.2
imagePullPolicy: Always
kubeScheduler:
image: registry.k8s.io/kube-scheduler:v1.24.11
imagePullPolicy: Always
imagePullSecrets: []
kubernetesClusterDomain: ""
controllerManager:
create: true
replicas: 2
env: []
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
admissionWebhook:
create: false
scheduler:
create: true
schedulerName: nebula-scheduler
replicas: 2
env: []
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
...
部分参数描述如下:
参数 | 默认值 | 描述 |
---|---|---|
image.nebulaOperator.image |
vesoft/nebula-operator:v1.7.2 |
NebulaGraph Operator 的镜像,版本为1.7.2。 |
image.nebulaOperator.imagePullPolicy |
IfNotPresent |
镜像拉取策略。 |
imagePullSecrets |
- | 镜像拉取密钥。 |
kubernetesClusterDomain |
cluster.local |
集群域名。 |
controllerManager.create |
true |
是否启用 controller-manager。 |
controllerManager.replicas |
2 |
controller-manager 副本数。 |
admissionWebhook.create |
false |
是否启用 Admission Webhook。默认关闭,如需开启,需设置为true 并且需要安装 cert-manager。 |
shceduler.create |
true |
是否启用 Scheduler。 |
shceduler.schedulerName |
nebula-scheduler |
调度器名称。 |
shceduler.replicas |
2 |
nebula-scheduler 副本数。 |
以下示例为在安装 NebulaGraph Operator 时,指定 NebulaGraph Operator 的 AdmissionWebhook 机制为开启状态(默认关闭 AdmissionWebhook):
helm install nebula-operator nebula-operator/nebula-operator --namespace=<nebula-operator-system> --set admissionWebhook.create=true
更新 NebulaGraph Operator¶
-
拉取最新的 Helm 仓库。
helm repo update
-
通过
--set
传递配置参数,更新 NebulaGraph Operator。--set
:通过命令行的方式新增或覆盖指定项。有关可以更新的配置项,查看上文自定义配置 Chart。
例如,更新 NebulaGraph Operator 的 AdmissionWebhook 机制为开启状态。
helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.7.2 --set admissionWebhook.create=true
更多信息,参考 Helm 升级。
升级 NebulaGraph Operator¶
历史版本兼容性
- 不支持升级 0.9.0 及以下版本的 NebulaGraph Operator 至 1.x 版本。
- 1.x 版本的 NebulaGraph Operator 不兼容 3.x 以下版本的 NebulaGraph。
-
拉取最新的 Helm 仓库。
helm repo update
-
升级 NebulaGraph Operator 至 1.7.2 版本。
helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=<namespace_name> --version=1.7.2
示例:
helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.7.2
输出:
Release "nebula-operator" has been upgraded. Happy Helming! NAME: nebula-operator LAST DEPLOYED: Tue Nov 16 02:21:08 2021 NAMESPACE: nebula-operator-system STATUS: deployed REVISION: 3 TEST SUITE: None NOTES: NebulaGraph Operator installed!
-
拉取最新的 CRD 配置文件。
Note
升级 Operator 后,需要同时升级相应的 CRD 配置,否则NebulaGraph集群创建会失败。有关 CRD 的配置,参见 apps.nebula-graph.io_nebulaclusters.yaml。
-
下载 NebulaGraph Operator chart 至本地。
helm pull nebula-operator/nebula-operator --version=1.7.2
--version
: 升级版本号。如不指定,则默认为最新版本。
-
执行
tar -zxvf
解压安装包。例如:解压 1.7.2 chart 包至
/tmp
路径下。tar -zxvf nebula-operator-1.7.2.tgz -C /tmp
-C /tmp
: 如不指定,则默认解压至当前路径。
-
-
在
nebula-operator
目录下升级 CRD 配置文件。kubectl apply -f crds/nebulacluster.yaml
输出:
customresourcedefinition.apiextensions.k8s.io/nebulaclusters.apps.nebula-graph.io configured
卸载 NebulaGraph Operator¶
-
卸载 NebulaGraph Operator chart。
helm uninstall nebula-operator --namespace=<nebula-operator-system>
-
删除 CRD。
kubectl delete crd nebulaclusters.apps.nebula-graph.io
后续操作¶
- 使用 NebulaGraph Operator 自动化部署NebulaGraph集群。更多信息,请参考使用 Kubectl 部署NebulaGraph集群或者使用 Helm 部署NebulaGraph集群。