Install Resoto with Kubernetes
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
Prerequisites​
- Helm (version 3 or above)
- Kubernetes cluster (kind or minikube should work as well)
- At least 2 CPU cores and 8 GB of RAM
Resoto performs CPU-intensive graph operations. In a production setup, we recommend at least four cores and 16 gigabytes of RAM. See Configuring Resoto Worker for more information.
Installing Resoto​
Prepare ArangoDB operator​
If you don't have ArangoDB, you can use the operator to install it. See more info here.
You can use the following commands to install the operator:
$ helm repo add arangodb https://arangodb.github.io/kube-arangodb
$ helm repo update
$ helm install kube-arangodb-crd arangodb/kube-arangodb-crd
These instructions were tested with version 1.2.15 of the operator.
Install Helm Chart​
- Default Installation
- Customized Installation
Add the Resoto Helm chart repository and install the chart.
$ helm repo add someengineering https://helm.some.engineering
$ helm repo update
$ helm install resoto someengineering/resoto --set image.tag=2.4.7
It is possible to adjust the configuration of Resoto installation using a Helm values file.
Please find the list of all possible configuration values in the someengineering/helm-chart
values documentation..
To override any value, please create the file resoto-values.yaml
and define the values there.
resotoworker:
volumeMounts:
- mountPath: /home/resoto/.aws
name: aws-credentials
volumes:
- name: aws-credentials
secret:
secretName: resoto-home
Add the Resoto Helm chart repository and install the chart with the configuration defined in the resoto-values.yaml
file.
$ helm repo add someengineering https://helm.some.engineering
$ helm repo update
$ helm install resoto someengineering/resoto --set image.tag=2.4.7 -f resoto-values.yaml
And just like that, you have Resoto running in a Kubernetes cluster! A collect run will begin automatically. This first collect usually takes less than 3 minutes.
Launching the Resoto Command-Line Interface​
The resh
command is used to interact with resotocore
.
We need to first make sure that the deployment is available:
$ kubectl wait --for=condition=available deployment/resoto-resotocore
Then, simply execute the following to access the Resoto Shell interface:
$ kubectl exec -it service/resoto-resotocore -- resh
Accessing Credentials​
The Helm chart stack generates credentials that are used by Resoto's components.
These credentials are stored in Kubernetes Secrets as Base64-encoded strings:
Secret | Description | Output Command |
---|---|---|
arango-user | The ArangoDB user and password | kubectl get secret arango-user -o jsonpath="{.data.password}" \| base64 --decode |
resoto-psk | The pre-shared key used for communication between components | kubectl get secret resoto-psk -o jsonpath="{.data.psk}" \| base64 --decode |