-
Notifications
You must be signed in to change notification settings - Fork 447
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
4bc997e
commit a82c373
Showing
1 changed file
with
1 addition
and
172 deletions.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,172 +1 @@ | ||
GraphStore Charts | ||
================= | ||
|
||
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/graphscope)](https://artifacthub.io/packages/helm/graphscope/graphscope-store) | ||
|
||
[GraphScope Store](https://github.com/alibaba/GraphScope/tree/main/interactive_engine/groot/src/main) is a new disk-based row-oriented multi-versioned persistent graph store. | ||
|
||
|
||
## TL;DR | ||
|
||
```bash | ||
$ helm repo add graphscope https://graphscope.oss-cn-beijing.aliyuncs.com/charts/ | ||
$ helm install my-release graphscope/graphscope-store | ||
``` | ||
|
||
## Introduction | ||
|
||
This chart bootstraps a [GraphScope Store](https://github.com/alibaba/GraphScope/tree/main/interactive_engine/groot/src/main) cluster deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. | ||
|
||
## Prerequisites | ||
|
||
- Kubernetes 1.12+ | ||
- Helm 3.1.0 | ||
- PersistentVolume(PV) provisioner support in the underlying infrastructure | ||
|
||
## Installing the Chart | ||
|
||
To install the chart with the release name `my-release`: | ||
|
||
```bash | ||
$ helm repo add graphscope https://graphscope.oss-cn-beijing.aliyuncs.com/charts/ | ||
$ helm install my-release graphscope/graphscope-store | ||
``` | ||
|
||
These commands deploy GraphScope Store on the Kubernetes cluster in the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation. | ||
|
||
> **Tip**: List all releases using `helm list` | ||
## Get GraphScope Store Endpoint | ||
|
||
Note that it may take a few minutes for pulling image at first time, you can watch the status by running `helm test` many times. | ||
|
||
```bash | ||
# After installation, you can check service availability by: | ||
$ helm test my-release | ||
|
||
# Default, with kubernetes `NodePort` service type, you can get service endpoint by: | ||
$ export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath="{.items[0].status.addresses[0].address}") | ||
$ export GRPC_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[0].nodePort}" services my-release-graphscope-store-frontend) | ||
$ export GREMLIN_PORT=$(kubectl get --namespace default -o jsonpath="{.spec.ports[1].nodePort}" services my-release-graphscope-store-frontend) | ||
$ echo "GRPC endpoint is: ${NODE_IP}:${GRPC_PORT}" | ||
$ echo "GREMLIN endpoint is: ${NODE_IP}:${GREMLIN_PORT}" | ||
``` | ||
|
||
## Uninstalling the Chart | ||
|
||
To uninstall/delete the `my-release` deployment: | ||
|
||
```bash | ||
$ helm delete my-release | ||
``` | ||
|
||
The command removes all the Kubernetes components associated with the chart and deletes the release. | ||
|
||
> **Note**: The PersistentVolume remains even after the release was uninstalled. To delete the PV manually: | ||
```bash | ||
$ kubectl delete pvc -l app.kubernetes.io/instance=my-release | ||
``` | ||
|
||
|
||
## Parameters | ||
|
||
Here we give a list of most frequently used parameters. | ||
|
||
### Common parameters | ||
|
||
| Name | Description | Value | | ||
|---|---|---| | ||
| image.registry | Docker image registry | registry.cn-hongkong.aliyuncs.com | | ||
| image.repository | Docker image repository | graphscope/graphscope-store | | ||
| image.tag | Docker image tag | "" | | ||
| image.pullPolicy | Docker image pull policy | IfNotPresent | | ||
| image.pullSecrets | Docker-registry secrets | [] | | ||
| clusterDomain | Default Kubernetes cluster domain | cluster.local | | ||
| commonLabels | Labels to add to all deployed objects | {} | | ||
| commonAnnotations | Annotations to add to all deployed objects | {} | | ||
| javaOpts | Java options | "" | | ||
| auth.username | Username | "" | | ||
| auth.password | Password | "" | | ||
| rpcMaxBytesMb | GRPC maximum message size | 4 | | ||
| kafkaProducerCustomConfigs | Kafka producer max request size | "max.request.size:1048576000" | | ||
|
||
|
||
### Statefulset parameters | ||
|
||
| Name | Description | Value | | ||
|---|---|---| | ||
| store.replicaCount | Number of nodes | 2 | | ||
| frontend.replicaCount | Number of nodes | 1 | | ||
| frontend.service.type| Kubernetes Service type| NodePort | | ||
| ingestor.replicaCount | Number of nodes | 1 | | ||
| coordinator.replicaCount | Number of nodes | 1 | | ||
|
||
### Kafka chart parameters | ||
|
||
| Name | Description | Value | | ||
|---|---|---| | ||
| kafka.enabled | Switch to enable or disable the Kafka helm chart | true | | ||
| kafka.replicaCount | Number of Kafka nodes | 1 | | ||
| externalKafka.servers | Server or list of external Kafka servers to use | [] | | ||
|
||
## Configuration | ||
|
||
See [*Customizing the Chart Before Installing*](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](https://github.com/alibaba/GraphScope/blob/main/charts/graphscope-store/values.yaml), or run these configuration commands: | ||
|
||
```bash | ||
$ helm show values graphscope/graphscope-store | ||
``` | ||
|
||
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, | ||
|
||
```bash | ||
$ helm install my-release \ | ||
--set image.tag=latest graphscope/graphscope-store | ||
``` | ||
|
||
Add multiple extra config to the component which is defined in the configmap by | ||
`--set extraConfig="k1=v1;k2=v2"`. Note we use `;` to seperate config items. For example, | ||
|
||
```bash | ||
$ helm install my-release \ | ||
--set extraConfig="k1=v1;k2=v2" graphscope/graphscope-store | ||
``` | ||
|
||
|
||
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, | ||
|
||
```bash | ||
$ helm install my-release -f values.yaml graphscope/graphscope-store | ||
``` | ||
|
||
> **Tip**: You can use the default [values.yaml](values.yaml) | ||
|
||
## Persistence | ||
|
||
The [GraphScope Store](https://github.com/alibaba/GraphScope/tree/main/interactive_engine/src/v2/src/main) image stores the GraphScope Store data at the `/var/lib/graphscope-store` and configurations at the `/etc/groot/groot.config`, and coordinator meta information at the `/etc/groot/my.meta` path of the container. | ||
|
||
The chart mounts a [Persistent Volume](https://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning by default. An existing PersistentVolumeClaim can also be defined for this purpose. | ||
|
||
|
||
## Pod affinity | ||
|
||
This chart allows you to set your custom affinity using the `XXX.affinity` parameter(s). Find more information about Pod affinity in the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity). | ||
|
||
|
||
## Troubleshooting | ||
|
||
The java part use `logback` as logging library, and rust part use `log4rs` as logging library. | ||
Both of them supports reload configuration periodically. | ||
Inside the image, you could find | ||
- the configuration for `logback` in `/usr/local/groot/conf/logback.xml` | ||
- the configuration for `log4rs` in `/usr/local/groot/conf/log4rs.yml` | ||
|
||
The application will apply the latest log configuration after at most 30 seconds, if these config files are modified. | ||
## Upgrading | ||
|
||
```bash | ||
$ helm upgrade my-release graphscope/graphscope-store | ||
``` | ||
See [*helm upgrade*](https://helm.sh/docs/helm/helm_upgrade/) for command documentation. | ||
GraphScope store chart's variant that put all components within one pod. |