Launching Neo4j cluster on GKE and properly exposing it for external services

Hey awesome people!

I'm trying to use Neo4j on Google Cloud platform preferably launching a GKE cluster from the marketplace. Which I can do successfully but I'm confused when it comes to connecting my external application to Neo4j cluster.

I've read the guidelines and some discussion here by the community like; Launching Neo4j on Google Kubernetes Marketplace

I know there would be many ways to expose your pods to the external world and use bolt+routing with it. But I'M NOT GOOD WITH CLOUD technologies and I don't want to learn everything about how to manage Kubernetes.

As @david.allan has said that they left all the configuration to organizations. But what I and some other people like me just want to connect to a Neo4j cluster and don't have specialized knowledge to configure everything properly, would really appreciate that if you could provide 1 or 2 recommended ways/guides for the complete process. So, I as a developer could focus on application development and not learning gcloud platform.

Some question which might sound pretty stupid but I'm confused;
like where I have to upload the license?
what type of service object/or something I create to expose each pod in GKE?
using bolt+routing which pod should I connect?

I may sound selfish but I think this is the place to ask for this or someone already did this and I don't know how to find it.

Would really appreciate the help.

For how to set up bolt+routing external to Kubernetes, check the "Possible Solutions" heading in this article. It would be useful to read the whole article though, so you understand what's at play.

There is no license file in Neo4j, and so there is nowhere to upload a license, you don't need to worry about that.

Please note that running databases inside of Kubernetes is a bit advanced; if you're not so familiar with kubernetes administration you are likely better off using virtual machines or another approach, as they can be easier to manage. Some amount of gcloud platform learning will be necessary.

Thank you for your response. I followed this tutorial and also learned about google cloud platform.
But I still cannot get the hang of port spreading. I'm trying the following after installation and following the basic configurations;

  1. List all the pods
$ kubectl get pods
NAME                         READY   STATUS      RESTARTS   AGE
neo-cluster-deployer-qwkb7   0/1     Completed   0          20d
neo-cluster-neo4j-core-0     1/1     Running     0          20d
neo-cluster-neo4j-core-1     1/1     Running     0          20d
neo-cluster-neo4j-core-2     1/1     Running     0          20d

Considering neo-cluster-neo4j-core-0 as leader node, I'm trying to expose as follows;
kubectl expose pod neo-cluster-neo4j-core-0 --port=7687 --name=neo-leader-pod

But the IP address I get from this is not working with the connection. I've tried connecting to this node using bolt and bolt+routing protocole.
Could you please guide me what can I try next.

I'm not sure what it means that the connection is not working, more information is needed to help in this case.

Please be aware from the text of the article that the leader in the cluster can change, and exposing a pod as "neo-leader-pod" may be brittle, because depending on cluster operations it won't be the leader forever.

I'm also not sure what's going on with your connection because of the networking in between. It's best to open a new thread with exactly what you did, and what the result was, and what you expect to see if someone might be able to help.

Maybe I'm doing it wrong. For now I've moved my application to same network but later I'll give it a fresh try and can open a new thread if that doesn't work.