Nebula Operator 云上实践
>>>>Nebula Operator 介绍
关于 Nebula Operator 的介绍,大家可以参考之前那篇博客:
一文详解云上自动化部署集群管理工具 Nebula Operator。
本文将主要侧重于实践方向,让你能很快地入手 Nebula Operator ,体验图数据库的乐趣!
>>>>Nebula Operator 云上实践
到这里,开始进入正题,本文将使用阿里云进行 Nebula Operator 实践,其他云厂商类似。
安装工具
本次实践需要在操作电脑上安装如下基础工具:
● Kubectl,链接:https://kubernetes.io/zh/docs/tasks/tools/
● Helm,链接:https://helm.sh/zh/docs/intro/install/
● Docker,链接:https://docs.docker.com/get-docker/
以上基础工具相关的安装方法请参考对应链接。
创建云上 Kubernetes
因为 Operator 是依托于 Kubernetes 的,所以在进行 Nebula Operator 实践之前,需要先准备好 Kubernetes 环境。
首先进入到阿里云的控制台,然后进入到容器服务 Kubernetes 版,再创建一个集群。此实践选择的是 ACK 托管版,相关的创建参数请按需选择。
注意:为了方便外网访问 Kubernetes API Server ,本次实践勾选了使用 EIP 暴露 API Server,你可以根据自身情况选择是否启用,如果不开启,你需要打通操作电脑与 Kubernetes 的之间网络。其他参数请按需选择。
等待 Kubernetes 集群启动后,将集群的连接信息中公网访问中的内容复制到计算机 $HOME/.kube/config 文件中。
然后你可以使用如下命令验证下 Kubernetes 集群:
安装 Nebula Operator 依赖
在安装 Nebula Operator 之前,还需要先安装一些依赖。
安装 CertManager
链接:https://cert-manager.io/
安装 OpenKruise
链接:https://openkruise.io/
添加 Nebula Operator Charts
安装 Nebula Operator
由于阿里云上无法拉取 gcr.io 和 k8s.gcr.io 镜像,因此需要指定国内镜像,这里进行了如下替换
你可以通过如下命令查看所有可以设置的参数:
此次实践中的安装命令如下:
如果你自定义了 Kubernetes 的 Cluster Domain ,则需要修改安装命令,增加设置 kubernetesClusterDomain ,如下:
部署 Nebula Cluster
至此,Nebula Operator 已经就绪,接下来安装 Nebula Cluster 来体验图数据吧!
首先,需要获取 StorageClass ,这个将会用来设置 Nebula Cluster 所使用的存储。
从上面得知,阿里云目前支持 5 种 StorageClass 。此次实践将会使用 alicloud-disk-ssd 。其他云厂商会有对应的 StorageClass ,请按照实际情况进行选择。
注意:每个云厂商可能对于申请存储的大小有范围限制,比如阿里云对于 SSD 限制在 20 Gi 到 32,768 Gi ,在创建 Nebula Cluster 的时候需要注意下。
你可以通过如下命令查看所有可以设置的参数:
此次实践中的安装命令如下:
当然,也可以将 Storaged 实例升级到 5 个,执行命令如下:
详细的安装说明请见:使用 Helm 安装 Nebula Operator,链接:https://github.com/vesoft-inc/nebula-operator/blob/master/doc/user/nebula_cluster_helm_guide.md。
访问 Nebula Cluster
终于,Nebula Cluster 启动成功了,接下来开始访问集群吧!
Kubernetes 内部访问
首先,在 Kubernetes 中启动一个 Nebula Graph Console(链接:https://github.com/vesoft-inc/nebula-console),执行命令如下:
然后再通过刚才创建的 Nebula Graph Console 来访问集群,如下:
Kubernetes 外部访问
Kubernetes 内部的服务在集群外部要想访问,可以使用 hostPort 、 hostNetwork 、 Ingress 、 LoadBalancer 等。这里利用云厂商的便利性,直接使用 LoadBalancer 来访问集群。
注意:此方法会暴露你的 Nebula 集群,请勿在生产环境使用。
首先,将 Graphd Service 的 type 改成 LoadBalancer ,然后再查看 EXTERNAL-IP 。
现在,可以根据 EXTERNAL-IP 来访问集群了,比如此处为 x.x.x.x 。
>>>>享用时间
大功告成!
尽情地在 Nebula Graph 中驰骋吧!
如果你在飞驰过程中,感觉 Nebula Operator 尚有优化之处,来我们的 GitHub repo 提 issue:https://github.com/vesoft-inc/nebula-operator