Deployment

Deploy with docker

You can deploy a single-node GraphScope Interactive instance on modern graph with docker

docker run -it -d -p 7687:7687 -p 10000:10000 -p 7777:7777 registry.cn-hongkong.aliyuncs.com/graphscope/interactive:latest

Now, the admin service will be listening on port 7777, the Cypher Bolt server will be listening on port 7687, and the Interactive engine will be listening on port 10000.

Deploy with helm

QuickStart

git clone https://github.com/alibaba/GraphScope.git
cd GraphScope/charts/
$ helm install {your-release-name} ./graphscope-interactive/

Now you can the endpoint via

$ kubectl describe svc {your-release-name} -graphscope-interactive-frontend | grep "Endpoints:" | awk -F' ' '{print $2}'
#192.168.0.44:8182
#192.168.0.44:7687
# the first is the gremlin endpoint(currently not supported)
# the second is the cypher endpoint

Delete the deployment via

helm delete {your-release-name}

Customizing Configuration

By default, all pods of GraphScope Interactive is deployed on the same k8s node. In such case, all pods can share the storage via k8s pvc of hostPath kind.

To offer higher throughput and query performance, we also support launching pods across multiple nodes. However, in this mode, you need a storage solution like NFS to ensure that all nodes can access the same storage.

Customize Graph Data.

By default we provide builtin modern_graph for Interactive. We also support customizing graph data by providing raw graph data via csv files. For detail about Graph Model and DataLoading, please check Interactive Data Model;

Single Node

If you just want to deploy Interactive on a single node, then you can just put all csv files into a directory, i.e. /tmp/data/.

Then you can create a PV on the node, via the following commands

# 0. Download the template pvc configuration

# 1. Customize the pvc configuration
vim pvc/pvc.yaml
#hostPath:
#  path: {} # use the directory where your raw data exists.

# 2. Create the persistent volume on the single node.
kubectl apply -f pvc.yaml

Multiple nodes

If you want to deploy Interactive on multiple nodes, then you need something like nfs to store you raw graph data, such that all k8s nodes can share the access to same files.

TODO

Customize Values.yaml

  • docker artifacts

engine:
  image:
    registry: registry.cn-hongkong.aliyuncs.com
    repository: graphscope/interactive
    tag: "v0.2.4"

# docker artifacts for frontend
frontend:
  image:
    registry: registry.cn-hongkong.aliyuncs.com
    repository: graphscope/interactive
    tag: "v0.2.4"
  • pvc

  persistence:
    ## If true, use a Persistent Volume Claim, If false, use emptyDir
    ##
    enabled: true
    ## Name of existing PVC to hold GraphScope store data
    ## NOTE: When it's set the rest of persistence parameters are ignored
    ##
    existingClaim: "graphscope-interactive-pvc"
    # existingClaim: ""
  • common

frontend:
  replicaCount: 1 # frontend num
    service:
      gremlinPort: 8182 # gremlin service port
    
executor:
  replicaCount: 1 # executor num

# hiactor config
hiactorWorkerNum: 1 # currently only support 1.
hiactorTimeout: 240000