webapi部署 自托管_在托管Kubernetes上部署Neo4J集群

webapi部署 自托管

我已经创建了一些视频,介绍如何将Neo4J群集和独立实例部署到托管的Kubernetes群集。 在运行数据库或任何涉及持久性的服务时,我们需要考虑更多因素,最重要的是如何实现持久性存储以及自动化过程(例如备份)。

在下面的视频中,我将通过官方Helm Chart解释如何部署具有3个节点的Neo4J集群。

我已经分叉并修改了Helm图表,使其仅使用ClusterIP Kubernetes服务,并将结果推送到此GitHub存储库下 。

当您在托管的Kubernetes环境(例如IBM Cloud Kubernetes Service)上运行示例时,存储类提供程序将为您创建持久卷,如视频所示。

自己尝试

要自己尝试一下,请运行以下步骤。 如果您首先需要访问托管的Kubernetes环境,则可以遵循本指南来访问IKS集群。 您将需要v3.x版的v3.x

 cd /tmp/  git clone https: //github.com/sdaschner/neo4j-helm  cd neo4j-helm/  helm template graphdb \ 
   --set acceptLicenseAgreement=yes \ 
   --set neo4jPassword=mySecretPassword . \ 
   > /tmp/neo4j.yaml  kubectl apply -f /tmp/neo4j.yaml 

现在,Kubernetes将提供包括卷声明的资源,您的云提供商将创建持久卷。

 kubectl get pvc  NAME                          STATUS  [...] STORAGECLASS    AGE  datadir-graphdb-neo4j-core- 0 Pending        ibmc-file-gold  13s  datadir-graphdb-neo4j-core- 1 Pending        ibmc-file-gold  13s  datadir-graphdb-neo4j-core- 2 Pending        ibmc-file-gold  13s 

一段时间后,将配置您的持久卷:

 kubectl get pvc  NAME                          STATUS  VOLUME              STORAGECLASS    AGE  datadir-graphdb-neo4j-core- 0 Bound   pvc-8c0ae307-[...]  ibmc-file-gold  2m24s  datadir-graphdb-neo4j-core- 1 Bound   pvc-9a1a6f3c-[...]  ibmc-file-gold  2m24s  datadir-graphdb-neo4j-core- 2 Bound   pvc-2f742c13-[...]  ibmc-file-gold  2m24s 

在这种情况下,有状态集提供的Neo4J Pod应该处于运行状态:

 kubectl get pods  NAME                              READY  STATUS   RESTARTS  AGE  graphdb-neo4j-core- 0 1 / 1 Running 0 4m13s  graphdb-neo4j-core- 1 1 / 1 Running 0 4m13s  graphdb-neo4j-core- 2 1 / 1 Running 0 4m13s 

测试连接

为了测试可以使用直接连接到的Neo4j接入cypher-shell命令行,在本地,通过端口转发的端口74747687 ,以及7473localhost ,或通过直接在运行吊舱执行命令:

 kubectl exec -t -i graphdb-neo4j-core- 0 /bin/bash  cypher-shell -u neo4j -p mySecretPassword 

要么:

 kubectl port-forward graphdb-neo4j-core- 0 7474 : 7474 7687 : 7687 7473 : 7473 

在新终端中:

 -u neo4j -p mySecretPassword cypher-shell -a localhost: 7687 -u neo4j -p mySecretPassword 

咖啡豆应用示例

为了测试我在上一个视频中显示的Quarkus应用程序,请运行以下命令:

 cd /tmp/  git clone https: //github.com/sdaschner/quarkus-playground --branch neo4j  cd quarkus-playground/ 

然后,您可以使用提供的Cypher脚本创建示例数据集:

 cat src/test/resources/test-data.cypher | cypher-shell \ 
   -a localhost: 7687 \ 
   -u neo4j \ 
   -p mySecretPassword \ 
   --format verbose 

然后我们可以部署我们的咖啡示例:

 kubectl apply -f deployment/ 

一旦应用程序启动并运行,您就可以在/beans//beans/special下访问端点。

为了访问该应用程序,您将需要使用Kubernetes入口,Istio网关,负载平衡器或类似方式。 出于测试目的,我们还可以转发coffee-shop-XX pod的端口8080

 kubectl port-forward coffee-shop-XX 8080 : 8080  curl localhost: 8080 /beans/ | jq . /beans/ | jq . 

翻译自: https://www.javacodegeeks.com/2020/06/deploying-a-neo4j-cluster-on-managed-kubernetes.html

webapi部署 自托管

你可能感兴趣的:(数据库,docker,kubernetes,linux,java)