# Neo4j Considerations in Orchestration Environments (like Kubernetes)

**URL:** <https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479>\
**Category:** Community Content & Blogs\
**Created:** [March 5, 2019, 2:00pm UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479 "2019-03-05T14:00:52Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![david\_allen](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/david_allen/32/13090_2.png) [@david\_allen](https://community.neo4j.com/u/david_allen)\
**Post date:** [March 5, 2019, 2:00pm UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/1 "2019-03-05T14:00:52Z")

</div>

> **[Neo4j Considerations in Orchestration Environments](https://medium.com/neo4j/neo4j-considerations-in-orchestration-environments-584db747dca5)**
>
> Considerations for running Neo4j on Kubernetes and other Orchestration managers

---

<div class="post-metadata">

**Author:** ![david\_allen](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/david_allen/32/13090_2.png) [@david\_allen](https://community.neo4j.com/u/david_allen)\
**Post date:** [March 5, 2019, 2:01pm UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/2 "2019-03-05T14:01:42Z")

</div>

Related:

> **[How to backup Neo4j Running in Kubernetes](https://medium.com/neo4j/how-to-backup-neo4j-running-in-kubernetes-3697761f229a)**
>
> Once you’ve deployed either a single instance of Neo4j or a cluster in kubernetes, maintenance and administration needs are going to…

> **[How to Restore Neo4j Backups on Kubernetes and GKE](https://medium.com/google-cloud/how-to-restore-neo4j-backups-on-kubernetes-and-gke-6841aa1e3961)**
>
> It’s a good idea to have a backup in case things go wrong. So now something has gone wrong. How will you recover?

---

<div class="post-metadata">

**Author:** ![evdev](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/evdev/32/3825_2.png) [@evdev](https://community.neo4j.com/u/evdev)\
**Post date:** [March 8, 2019, 7:59am UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/3 "2019-03-08T07:59:23Z")

</div>

Great article! In addition to David's last post, these were some of the best quality overviews of Neo4j cluster internals/ops out there 👍

---

<div class="post-metadata">

**Author:** ![evdev](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/evdev/32/3825_2.png) [@evdev](https://community.neo4j.com/u/evdev)\
**Post date:** [March 8, 2019, 8:03am UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/4 "2019-03-08T08:03:40Z")

</div>

I'm wondering if Google’s latest GKE networking features could promote any better solutions in regards to routing with Neo4j clusters on Kubernetes.

The newer [VPC-native/Alias IP](https://cloud.google.com/vpc/docs/alias-ip) cluster options via [Network Endpoint Groups](https://cloud.google.com/load-balancing/docs/negs) (NEGs) seem to indicate that there's a revised architecture in the ingress routing setup that could be a step towards a simpler, more integrated approach to the current networking complications listed in the article.

Check out their [release page](https://cloud.google.com/blog/products/containers-kubernetes/introducing-container-native-load-balancing-on-google-kubernetes-engine) where they introduce the new concepts for "container-native" load balancing... 🤔💭

---

<div class="post-metadata">

**Author:** ![david\_allen](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/david_allen/32/13090_2.png) [@david\_allen](https://community.neo4j.com/u/david_allen)\
**Post date:** [March 8, 2019, 1:39pm UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/5 "2019-03-08T13:39:41Z")

</div>

Thanks for this suggestion! I'll check it out, and I'm not familiar with these new GKE features just yet. One of the things I'm looking for is the ability to advertise the right address within Neo4j, and also to be able to dynamically change the routing structure depending on cluster topology changes. I need to spend a bit of time researching this to see if I can combine these primitives to make that happen.

---

<div class="post-metadata">

**Author:** ![gaurav.tripathi.che1](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/gaurav.tripathi.che1/32/7443_2.png) [@gaurav.tripathi.che1](https://community.neo4j.com/u/gaurav.tripathi.che1)\
**Post date:** [February 14, 2020, 6:07am UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/6 "2020-02-14T06:07:10Z")

</div>

Hey david,  
I have deployed neo4j in my kubernetes cluster using helm chart the incubator/neo4j version. For driver I am using neo4jrestclient which is a python driver. My driver code is a seperate service in kubernetes. Now I have two questions

1. I think my driver will be able to connect to the neo4j cluster using the dns provided by the helm chart. but whether or not bolt is configured properly i dont know because it hasn't given me a bolt dns.
2. I want to access the browser from the outside. So, I was thinking of deploying neo4j-browser as a seperate service which can then connect to the neo4j cluster internally while having only itself exposed. Would that be the right way to go?

I am a beginner so please help.

Thanks.

---

<div class="post-metadata">

**Author:** ![david\_allen](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/david_allen/32/13090_2.png) [@david\_allen](https://community.neo4j.com/u/david_allen)\
**Post date:** [February 14, 2020, 11:58am UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/7 "2020-02-14T11:58:54Z")

</div>

hi @gaurav.tripathi.che1 - on your first question, you can use the same DNS to connect via either HTTP or Bolt when your application is also inside of kubernetes. If you are using a cluster, I recommend using bolt+routing or neo4j:// as the connection scheme (neo4j:// in only for version 4). Bolt is properly configured inside of kubernetes.

In terms of access for the browser from outside -- this is a lot trickier because of how bolt+routing works. There are instructions on approaches for how you can do this in the first article linked at the very top of the thread.

---

<div class="post-metadata">

**Author:** ![p2a48225](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/p2a48225/32/5021_2.png) [@p2a48225](https://community.neo4j.com/u/p2a48225)\
**Post date:** [November 21, 2020, 8:01am UTC](https://community.neo4j.com/t/neo4j-considerations-in-orchestration-environments-like-kubernetes/5479/8 "2020-11-21T08:01:42Z")

</div>

Hi David,

What would be your thought to use hostIP and hostPort; since host info can be added to external DNS; which external client can use it to resolve hostname in route table? This way implied host provision is also part of the neo4j cluster creation process; which hostname can be inject into the helm chart instead of static name/IP.

Thanks.
