iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 24
0
AI & Data

看圖說故事,讓 Neo4j 重新詮釋你的資料庫系列 第 24

以 Kubernetes 部署 Neo4j 因果叢集

上一篇文章有簡單分享過 Neo4j 因果叢集,在實務上當然不會一台一台機器個別設定。而如果要以 Docker 來跑 Neo4j 因果叢集,官方也有相關教學,但是面對這麼多的設定檔,有沒有更方便的方式來跑呢?
目前 Neo4j 有一個實驗計畫 Neo4j Helm 尚未正式發佈,但是可以先來體驗看看,僅支援 Neo4j 4.0 以上的企業版。

如果對 Neo4j in Docker 還不熟悉,可以先參考之前的文章 以 Docker 執行 Neo4j 資料庫
再進入 Neo4j Helm 之前,會先簡介 Kubernetes 和 Helm。

簡介 Kubernetes

俗稱 K8S,可以幫助我們管理微服務,自動化地部署及管理多台機器上的 Docker Container。
它可以省去手動部署多個 Container 到多台機器的麻煩,並且可以同時監控多個 Container 狀態,做故障重啟,或自動擴展。

此外 K8S 可以很方便的移植,無論是自架伺服器,或是託管於雲端例如 AWS 的 EKSGCP 的 GKEAzure 的 AKS

要在本機端體驗 K8S 可以下載 minikube

接著啟動 minukube cluster,並在瀏覽器打開 dashboard

minikube start
minikube dashboard

關於 K8S 已經有許多邦友的分享非常豐富,請自行參考囉
https://ithelp.ithome.com.tw/articles/10192401

簡介 Helm

K8S 的服務對應到許多的 yaml 設定檔,那麼一旦系統龐大且複雜,就會需要同時管理、版控、更新很多設定檔,仍然是一項困難的工作。
所以 Helm 就出現了!它是是一個集中管理設定檔的工具,會把 K8S 服務中各種元件裡的 yaml 統一打包成一個叫做 Chart 的集合,然後透過參數同時管理與設定這些 yaml 檔案。

Helm 的安裝請參考
https://helm.sh/docs/intro/install/

Helm 的概念基礎教學,可參考
https://medium.com/@C.W.Hu/kubernetes-helm-chart-tutorial-fbdad62a8b61

Neo4j Helm

Neo4j Helm 就是把整個 Neo4j 因果叢集的設定全部打包成了 Helm Chart,你不再需要個別去設定機器,只要簡單幾行指令,就可以部署一個可擴展的 Neo4j 因果叢集,可以很快自訂 Core、Replica 數量。

首先下載 Neo4j Helm Chart

下載到本地端後,可以先直接以整個 zip 檔案部署

helm install mycluster --set core.numberOfServers=3,readReplica.numberOfServers=3,acceptLicenseAgreement=yes,neo4jPassword=mySecretPassword neo4j-4.1.1-1.tgz

或是解壓縮後進到資料夾內執行 Helm 會有更多彈性

helm install mycluster --set core.standalone=true,acceptLicenseAgreement=yes,neo4jPassword=mySecretPassword .

會看到類似的畫面

Neo4j Helm install

馬上查詢一下所有 Pods,就會看到 Docker Container 正在建立

kubectl get pods

Neo4j Helm running status

而如果要更改 Core、Replica 的數量,只要修改 values.yaml 即可,不過官方的 values.xml 裡面 acceptLicenseAgreement 是 "no",這樣 Neo4j 是跑不起來的,跑企業版一定要設定為 yes,然後執行

helm install mycluster -f values.yaml .

而在 deployment 資料夾底下,則是 Neo4j 官方預先給的各種部署情境可以供參考實作,例如

helm install mygraph -f deployment-scenarios/quickstart-standalone.yaml .

K8S dashboard for Neo4j

以上是今天的分享,謝謝大家~


上一篇
Neo4j 高可用性與因果叢集
下一篇
Neo4j Aura 雲端資料庫服務
系列文
看圖說故事,讓 Neo4j 重新詮釋你的資料庫30

尚未有邦友留言

立即登入留言