-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deploy an analytics cluster using the Neo4j Helm chart #1244
Merged
Merged
Changes from 2 commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
f2f3b13
Deploy an analytics cluster using the Neo4j Helm chart
renetapopova 5ae90f0
add the new file
renetapopova 470af20
fix the analitycs type
renetapopova 29b346a
update the verification as pre the review
renetapopova d27d46e
further improvements
renetapopova 25c3307
update the description
renetapopova 1d75f6c
fix the type of the servers
renetapopova File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
168 changes: 168 additions & 0 deletions
168
modules/ROOT/pages/kubernetes/quickstart-analytics-cluster.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
:description: How to deploy a Neo4j cluster to a cloud or a local Kubernetes cluster using Neo4j Helm chart. | ||
[role=enterprise-edition] | ||
[[quick-start-analytic-cluster]] | ||
= Quickstart: Deploy a Neo4j cluster for analytic queries | ||
|
||
_The feature is available in the Neo4j Helm chart from version 5.14._ | ||
|
||
This quickstart shows how to configure and deploy a special Neo4j cluster without fault tolerance to support analytic queries. | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
Information on using Neo4j’s graph data science library in a cluster can be found in the link:https://neo4j.com/docs/graph-data-science/current/[Neo4j Graph Data Science library documentation]. | ||
|
||
The cluster is deployed to a cloud or a local Kubernetes cluster using the Neo4j Helm chart. | ||
Because the GDS library does not support fault tolerance, you can deploy a cluster with one primary server for the transaction workload and an N number of secondary servers for the GDS analytics. | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
== Prerequisites | ||
|
||
Before you can deploy a Neo4j cluster on Kubernetes, you need to have: | ||
|
||
* A Kubernetes cluster running and the `kubectl` command-line tool installed and configured to communicate with your cluster. | ||
For more information, see link:xref:kubernetes/quickstart-cluster/prerequisites.adoc[Quickstart: Deploy a cluster -> Prerequisites]. | ||
* A valid license for Neo4j Enterprise Edition. | ||
For more information, see xref:/kubernetes/plugins.adoc#install-gds-ee-bloom[Install GDS Enterprise Edition (EE) and Bloom plugins]. | ||
* The xref:kubernetes/helm-charts-setup.adoc[latest version of the Neo4j Helm chart repository]. | ||
* (Optional) A valid license for GDS Enterprise Edition. | ||
To install a licensed plugin, you must provide the license files in a Kubernetes secret. | ||
For more information, see xref:/kubernetes/plugins.adoc#install-gds-ee-bloom[Install GDS Enterprise Edition (EE) and Bloom plugins]. | ||
|
||
== Create a value YAML file for each type of server | ||
|
||
To set up a Neo4j cluster for analytic queries, you need to create a value YAML file for each type of server, primary and secondary. | ||
For example: | ||
|
||
[.tabbed-example] | ||
===== | ||
[.include-with-primary] | ||
====== | ||
|
||
Create a value YAML file for the primary server, for example, _primary-value.yaml_: | ||
|
||
[source, yaml] | ||
---- | ||
neo4j: | ||
name: analytics-cluster | ||
acceptLicenseAgreement: "yes" | ||
edition: enterprise | ||
password: my-password | ||
volumes: | ||
data: | ||
mode: defaultStorageClass | ||
|
||
# Disable the Neo4j load balancer and enable the internal service so that the servers can access each other: | ||
services: | ||
neo4j: | ||
enabled: false | ||
internals: | ||
enabled: true | ||
|
||
# Enable the analytics cluster and set the type to primary: | ||
analytics: | ||
enabled: true | ||
type: primary | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
---- | ||
====== | ||
[.include-with-secondary] | ||
====== | ||
Create a value YAML file for the secondary servers, for example, _secondary-gds.yaml_. | ||
The password must be the same as for the primary server. | ||
If you are using GDS Enterprise Edition, you also need to create a secret with the license file and mount it as the _/licenses_ volume mount. | ||
For more information on how to create a secret, see xref:/kubernetes/plugins.adoc#install-gds-ee-bloom[Install GDS Enterprise Edition (EE) and Bloom plugins]. | ||
|
||
[source, yaml] | ||
---- | ||
neo4j: | ||
name: analytics-cluster | ||
acceptLicenseAgreement: "yes" | ||
edition: enterprise | ||
password: my-password | ||
volumes: | ||
data: | ||
mode: defaultStorageClass | ||
# Define the volume mount for the license file: | ||
licenses: | ||
disableSubPathExpr: true | ||
mode: volume | ||
volume: | ||
secret: | ||
secretName: gds-license | ||
items: | ||
- key: gds.license | ||
path: gds.license | ||
|
||
# Set the environment variables to download the plugins: | ||
env: | ||
NEO4J_PLUGINS: '["graph-data-science"]' | ||
|
||
# Set the configuration for the plugins directory and the mount for the license file: | ||
config: | ||
gds.enterprise.license_file: "/licenses/gds.license" | ||
server.directories.plugins: "plugins" | ||
|
||
# Disable the Neo4j load balancer and enable the internal service so that the servers can access each other: | ||
services: | ||
neo4j: | ||
enabled: false | ||
internals: | ||
enabled: true | ||
|
||
# Enable the analytics cluster and set the type to secondary: | ||
analytics: | ||
enabled: true | ||
type: secondary | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
---- | ||
====== | ||
===== | ||
|
||
For all available options, see xref:kubernetes/configuration.adoc[Customizing a Neo4j Helm chart]. | ||
|
||
== Install the servers | ||
|
||
. Install a single Neo4j server using the _neo4j-primary.yaml_ file, created in the previous section: | ||
+ | ||
[source, bash] | ||
---- | ||
helm install primary neo4j/neo4j -f /path/to/neo4j-primary.yaml | ||
---- | ||
. Install the first secondary server using the _secondary-gds.yaml_ file, created in the previous section: | ||
+ | ||
[source, bash] | ||
---- | ||
helm install gds1 neo4j/neo4j -f /path/to/secondary-gds.yaml | ||
---- | ||
. Repeat step 2 to deploy a second secondary server. | ||
Use a different name, for example, _gds2_. | ||
|
||
|
||
== Verify the installation | ||
|
||
To verify that the cluster is deployed and running, you can install a load balancer and access Neo4j from the Neo4j Browser. | ||
|
||
. Deploy a Neo4j load balancer to the same namespace as the Neo4j cluster: | ||
+ | ||
[source, bash] | ||
---- | ||
helm install lb neo4j/neo4j-load-balancer --set neo4j.name="analytics-cluster" | ||
---- | ||
. When deployed, copy the external IP of the LoadBalancer to access Neo4j from an application outside the Kubernetes cluster. | ||
For more information, see xref:kubernetes/accessing-neo4j.adoc#access-outside-k8s[Applications accessing Neo4j from outside Kubernetes]. | ||
. In a web browser, open the Neo4j Browser at _http://EXTERNAL_IP:7474/browser_ and log in using the password you have configured in your values YAML files. | ||
. Run the following Cypher query to verify that the cluster is deployed and running: | ||
+ | ||
[source, cypher] | ||
---- | ||
SHOW SERVERS | ||
---- | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
. Run the following Cypher function to verify that the GDS library is installed: | ||
+ | ||
harshitsinghvi22 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
[source, cypher] | ||
---- | ||
RETURN gds.version() | ||
---- | ||
. Call `gds.isLicensed()` to verify that the GDS library is licensed: | ||
+ | ||
[source, cypher] | ||
---- | ||
RETURN gds.isLicensed() | ||
---- | ||
+ | ||
The returned value must be `true`. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it would be good to be specific in the title "Deploy a Neo4j Cluster for analytics (1 primary + N Secondary)" since N primary and N secondary was already possible
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought that we could expand this page similar to how this topic is presented in the Clustering chapter , and have two sections - an analytics cluster with fault-tolerance and without.