-
Notifications
You must be signed in to change notification settings - Fork 3
/
installing.html.md.erb
96 lines (71 loc) · 5.1 KB
/
installing.html.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
title: Installing and Configuring Neo4j Enterprise for VMware Tanzu
owner: Partners
---
<strong><%= modified_date %></strong>
This topic describes how to install and configure Neo4j Enterprise for VMware Tanzu.
##<a id='install'></a> Install and Configure Neo4j on PKS
To install Neo4j Enterprise for Pivotal Platform on PKS, do the following:
1. Download the Helm charts and Docker container image archives from [Pivotal Network](https://network.pivotal.io/products/neo4j-enterprise/).
1. Extract the downloaded Helm chart package on your local machine. This should create a directory
called "neo4j"
1. Load the Docker image using:
```
docker load < causal-cluster_image.*.tgz
```
<p class="note"><strong>Note</strong>: The resulting image and tag name, you will need it below.</p>
### <a id='config'></a> Key Configuration Options
The following lists relevant configuration options for the deployment. Only the name is strictly required, but users are encouraged to consult [Neo4j’s System Requirements](https://neo4j.com/docs/operations-manual/current/installation/requirements/?ref=pivotal-pks) and to tailor CPU, memory, and disk to the anticipated workload untilized to ensure best performance.
* **name**: the name of your cluster deployment
* **coreServers**: (default: 3) the number of core servers in your cluster ([refer to Neo4j Causal Cluster architecture](https://neo4j.com/docs/operations-manual/current/clustering/introduction/?ref=pivotal-pks)).
Core Servers' main responsibility is to safeguard data. The Core Servers do so by replicating all transactions using the Raft protocol.
This setting can be set to 1, which results in a single neo4j instance ([dbms.mode=SINGLE](https://neo4j.com/docs/operations-manual/current/reference/configuration-settings/#config_dbms.mode)).
<br> <br>
Additional notes: if a single instance is chosen, it cannot be scaled up and down. A core server count of 2 is not recommended or a sensible HA cluster sizing.
* **readReplicaServers**: (default: 0) the number of Read Replicas in your cluster ([refer to Neo4j Causal Cluster architecture](https://neo4j.com/docs/operations-manual/current/clustering/introduction/?ref=pivotal-pks)). Read Replicas' main responsibility is to scale out graph workloads (Cypher queries, procedures, and so on). Read Replicas act like caches for the data that the Core Servers safeguard, but they are not simple key-value caches. In fact, Read Replicas are fully-fledged Neo4j databases capable of fulfilling arbitrary (read-only) graph queries and procedures. If coreServers is less than or equal to 2, this setting is ignored and 0 replicas result.
* **cpuRequest**: CPU units to allocate to each pod. Refer to [Managing computing resources on Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu)
* **memoryRequest**: Memory to allocate to each pod
* **cpuLimit**: CPU unit limit per pod
* **memoryLimit**: Memory limit per pod
* **volumeSize**: Disk allocation to core nodes, for example “2Gi”
### <a id='deploy'></a> Deploy
Carefully read the key configurations above, make your selections, and then
install the Helm chart with the following command, making substitutions for
your choices.
```
NAMESPACE=default
APP_NAME=my-neo4j-deploy
IMAGE=causal-cluster:3.5.7
helm install neo4j --namespace $NAMESPACE --name $APP_NAME \
--set namespace=$NAMESPACE \
--set image=$IMAGE \
--set name=$APP_NAME \
--set neo4jPassword=mySecretPassword \
--set authEnabled=true \
--set coreServers=3 \
--set readReplicaServers=1 \
--set cpuRequest=200m \
--set memoryRequest=1Gi \
--set volumeSize=2Gi \
--set volumeStorageClass=standard \
--set acceptLicenseAgreement=yes
```
### <a id='cluster'></a> Cluster Formation
After deploying Neo4j Enterprise for VMware Tanzu the cluster forms as the pods are created.
This can take up to 5 minutes, depending on a number of factors including how long it takes pods to get scheduled, and how many resources are associated with the pods.
While the cluster is forming, the Neo4j REST API and Bolt endpoints might not be available.
After a few minutes, bolt endpoints become available inside of the kubernetes cluster.
Note that by default, Neo4j services are not exposed externally. See the limitations section for more information.
### <a id='hardware'></a> Sizing
In order to ensure that Neo4j is deployable on basic/default PKS clusters, the default values for hardware requests have been made fairly low.
These default values are suitable for try-out but not for serious production/testing
workloads.
Sizing databases is ultimately something that should be done with the workload in mind.
In general, heap size and page cache sizing are the most important places to start when tuning performance.
Consult Neo4j's [Performance Tuning Documentation](https://neo4j.com/developer/guide-performance-tuning/?ref=pivotal-pks) for more information.
### <a id='uninstall'></a> Uninstalling
Given a deployed `$APP_NAME` as stated in the installation directions above, uninstalling is straightforward:
```
$ helm delete $APP_NAME
release "my-neo4j-deploy" deleted
```