跳转至

部署 NebulaGraph Operator

用户可使用 Helm 工具部署 NebulaGraph Operator。

背景信息

NebulaGraph Operator 为用户管理 NebulaGraph 集群,使用户无需在生产环境中手动安装、扩展、升级和卸载 NebulaGraph,减轻用户管理不同应用版本的负担。

前提条件

安装 NebulaGraph Operator 前,用户需要安装以下软件并确保安装版本的正确性(NebulaGraph Operator 不负责处理安装这些软件过程中出现的问题)。

软件 版本要求
Kubernetes >= 1.16
Helm >= 3.2.0
CoreDNS >= 1.6.0

Note

  • 如果使用基于角色的访问控制的策略,用户需开启 RBAC(可选)。
  • CoreDNS 是一个灵活的、可扩展的 DNS 服务器,被安装在集群内作为集群内 Pods 的 DNS 服务器。NebulaGraph 集群中的每个组件通过 DNS 解析类似x.default.svc.cluster.local这样的域名相互通信。

操作步骤

安装 NebulaGraph Operator

  1. 添加 NebulaGraph Operator chart 仓库至 Helm。

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

    helm repo update
    

    参考 Helm 仓库获取更多helm repo相关信息。

  3. 安装 NebulaGraph Operator。

    helm install nebula-operator nebula-operator/nebula-operator --namespace=<namespace_name> --version=${chart_version}
    

    例如,安装1.2.0版的 Operator 命令如下。

    helm install nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.2.0
    
    • 上述命令中的nebula-operator-system为用户创建的命名空间。如果用户未创建该命名空间,可以执行kubectl create namespace nebula-operator-system进行创建。用户也可创建其他命名空间。
    • 1.2.0为 NebulaGraph Operator chart 的版本。当 Chart 中只有一个默认版本时,可不指定。执行helm search repo -l nebula-operator查看 Chart 版本。

    用户可在执行安装 NebulaGraph Operator chart 命令时自定义其配置。更多信息,查看下文自定义配置 Chart

自定义配置 Chart

执行helm show values [CHART] [flags]查看可配置的选项。

示例如下:

[abby@master ~]$ helm show values nebula-operator/nebula-operator   
image:
  nebulaOperator:
    image: vesoft/nebula-operator:v1.2.0
    imagePullPolicy: Always
  kubeRBACProxy:
    image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0
    imagePullPolicy: Always
  kubeScheduler:
    image: k8s.gcr.io/kube-scheduler:v1.18.8
    imagePullPolicy: Always

imagePullSecrets: []
kubernetesClusterDomain: ""

controllerManager:
  create: true
  replicas: 2
  env: []
  resources:
    limits:
      cpu: 200m
      memory: 200Mi
    requests:
      cpu: 100m
      memory: 100Mi

admissionWebhook:
  create: true

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.2.0 NebulaGraph Operator 的镜像,版本为1.2.0。
image.nebulaOperator.imagePullPolicy IfNotPresent 镜像拉取策略。
imagePullSecrets - 镜像拉取密钥。
kubernetesClusterDomain cluster.local 集群域名。
controllerManager.create true 是否启用 controller-manager。
controllerManager.replicas 2 controller-manager 副本数。
admissionWebhook.create true 是否启用 Admission Webhook。
shceduler.create true 是否启用 Scheduler。
shceduler.schedulerName nebula-scheduler 调度器名称。
shceduler.replicas 2 nebula-scheduler 副本数。

执行helm install [NAME] [CHART] [flags]命令安装 Chart 时,可指定 Chart 配置。更多信息,参考安装前自定义 Chart

以下示例为在安装 NebulaGraph Operator 时,指定 NebulaGraph Operator 的 AdmissionWebhook 机制为关闭状态(默认开启 AdmissionWebhook):

helm install nebula-operator nebula-operator/nebula-operator --namespace=<nebula-operator-system> --set admissionWebhook.create=false

参考 Helm 安装获取更多helm install相关信息。

更新 NebulaGraph Operator

  1. 拉取最新的 Helm 仓库。

    helm repo update
    
  2. 通过--set--values传递配置参数,更新 NebulaGraph Operator。

    • --set:通过命令行的方式对指定项进行覆盖。
    • --values (或 -f):使用 YAML 文件覆盖配置。

    有关可以更新的配置项,查看上文自定义配置 Chart

    例如,更新 NebulaGraph Operator 的 AdmissionWebhook 机制为关闭状态(默认开启 AdmissionWebhook)。

    helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.2.0 --set admissionWebhook.create=false
    

    更多信息,参考 Helm 升级

升级 NebulaGraph Operator

历史版本兼容性

  • 不支持升级 0.9.0 及以下版本的 NebulaGraph Operator 至 1.x 版本。
  • 1.x 版本的 Nebula Operator 不兼容 3.x 以下版本的 Nebula Graph。
  1. 拉取最新的 Helm 仓库。

    helm repo update
    
  2. 升级 NebulaGraph Operator 至 1.2.0 版本。

    helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=<namespace_name> --version=1.2.0
    

    示例:

    helm upgrade nebula-operator nebula-operator/nebula-operator --namespace=nebula-operator-system --version=1.2.0
    

    输出:

    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!
    
  3. 拉取最新的 CRD 配置文件。

    Note

    升级 Operator 后,需要同时升级相应的 CRD 配置,否则 NebulaGraph 集群创建会失败。有关 CRD 的配置,参见 apps.nebula-graph.io_nebulaclusters.yaml

    1. 下载 NebulaGraph Operator chart 至本地。

      helm pull nebula-operator/nebula-operator --version=1.2.0
      
      • --version: 升级版本号。如不指定,则默认为最新版本。
    2. 执行tar -zxvf解压安装包。

      例如:解压 1.2.0 chart 包至/tmp路径下。

      tar -zxvf nebula-operator-1.2.0.tgz -C /tmp
      
      • -C /tmp: 如不指定,则默认解压至当前路径。
  4. nebula-operator目录下升级 CRD 配置文件。

    kubectl apply -f crds/nebulacluster.yaml
    

    输出:

    customresourcedefinition.apiextensions.k8s.io/nebulaclusters.apps.nebula-graph.io configured
    

卸载 NebulaGraph Operator

  1. 卸载 NebulaGraph Operator chart。

    helm uninstall nebula-operator --namespace=<nebula-operator-system>
    
  2. 删除 CRD。

    kubectl delete crd nebulaclusters.apps.nebula-graph.io
    

后续操作

使用 NebulaGraph Operator 自动化部署 NebulaGraph 集群。更多信息,请参考使用 Kubectl 部署 NebulaGraph 集群或者使用 Helm 部署 NebulaGraph 集群


最后更新: February 23, 2023