Install Neo4j cluster servers

Getting everything to work in Kubernetes requires that certain K8s objects have specific names that are referenced elsewhere. Each Neo4j instance is a Helm “release” and has a release name. Release name must consist of lowercase alphanumeric characters, - or ., and must start and end with an alphanumeric character.

The following example installations use server-1, server-2, and server-3 as release names for the cluster members.

  1. Install each server individually using the deployment server-<num>.values.yaml file created in Create Helm deployment values files and the neo4j/neo4j Helm chart.

    1. Create a neo4j namespace and configure it to be used in the current context:

      kubectl create namespace neo4j
      kubectl config set-context --current --namespace=neo4j
    2. Install server-1:

      helm install server-1 neo4j/neo4j --namespace neo4j -f server-1.values.yaml
      Example output
      NAME: server-1
      LAST DEPLOYED: Wed Oct 26 11:50:41 2022
      NAMESPACE: neo4j
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      Thank you for installing neo4j.
      
      Your release "server-1" has been installed in namespace "neo4j".
      
      The neo4j user's password has been set to "my-password".
      
      This release creates a single member of a Neo4j cluster. It will not become ready until it is able to form a working Neo4j cluster by joining other Neo4j servers. To create a working cluster at least 3 servers are required.
      
      Once you have a working Neo4j cluster, you can access the Neo4j browser using the IP address of the my-cluster-lb-neo4j service
      eg. http://[SERVICE_IP]:7474
      
      Graphs are everywhere!
    3. Install server-2:

      helm install server-2 neo4j/neo4j --namespace neo4j -f server-2.values.yaml
      Example output
      NAME: server-2
      LAST DEPLOYED: Wed Oct 26 11:51:27 2022
      NAMESPACE: neo4j
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      Thank you for installing neo4j.
      
      Your release "server-2" has been installed in namespace "neo4j".
      
      The neo4j user's password has been set to "my-password".
      
      This release creates a single member of a Neo4j cluster. It will not become ready until it is able to form a working Neo4j cluster by joining other Neo4j servers. To create a working cluster at least 3 servers are required.
      
      Once you have a working Neo4j cluster, you can access the Neo4j browser using the IP address of the my-cluster-lb-neo4j service
      eg. http://[SERVICE_IP]:7474
      
      Graphs are everywhere!
    4. Install server-3:

      helm install server-3 neo4j/neo4j --namespace neo4j -f server-3.values.yaml
      Example output
      NAME: server-3
      LAST DEPLOYED: Wed Oct 26 11:52:02 2022
      NAMESPACE: neo4j
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      Thank you for installing neo4j.
      
      Your release "server-3" has been installed in namespace "neo4j".
      
      The neo4j user's password has been set to "my-password".
      
      This release creates a single member of a Neo4j cluster. It will not become ready until it is able to form a working Neo4j cluster by joining other Neo4j servers. To create a working cluster at least 3 servers are required.
      
      Once you have a working Neo4j cluster, you can access the Neo4j browser using the IP address of the my-cluster-lb-neo4j service
      eg. http://[SERVICE_IP]:7474
      
      Graphs are everywhere!

      If you have not passed a password for the neo4j user, the Neo4j Helm chart has automatically generated one for you. The password is the same for all cluster members.

      You can find it in the Helm install outputs. Make a note of it.

  2. Verify that the installed servers have formed a cluster. See the next section Verify the Neo4j cluster formation.