Kubernetes
How to setup Indexer on Kubernetes
Pre-requisites
1. Clone the "storetheindex" repo to a Linux machine
2. Checkout the latest stable release
3. Compile the binaries
4. Initalize the "storetheindex" to generate libp2p keys
5. Verify that PeerID
and Privkey
are part of the config
6. We will use these keys for the Kubernetes config later
Deployment
Create a separate tenant for the Indexer node to avoid and conflicts with existing applications. Download the base manifest from the repo and edit the based manifests to your needs. Once all the customization is complete, you can deploy the manifest using Kustomization
.
Docker Image
We recommend running only a stable release version of the docker image. You should use the same image tag used to generate the libp2p keys in the prerequisites. All docker images for the Indexer node can be found in the docker hub.
You can also build your own local image if you do not wish to use the docker hub image.
Clone the "storetheindex" repo to a Linux machine
Checkout the latest stable release
Make the local image
Libp2p Keys
The libp2p keys generated in the prerequisites have be provided to the indexer StatefulSet
. Without the keys, indexer pod will keep failing to start. There are 2 methods to provide these keys.
Edit the indexer-config.yaml manifest and add the keys directly to the config
Use a Kubernetes secret to mount the keys inside the pods. We recommend using the secret for security purposes and flexibility
Resources
The base manifest does not contain any resource definition in the indexer StatefulSet
. We recommend adding these definition to the StatefulSet.
Currently, a 5 TiB volume is requested by the manifest and this should be changed as per the initial requirement calculations. It is also recommended to add suitable storageClassName with high IOPS to avoid using a default storageClass.
Ingress
The Indexer node will have to expose ingestion and finder services to the internet. The details of the ports can fe found in indexer-service.yaml
Indexer Config
The default indexer-config.yaml should be edited to make the required adjustments in the indexer config before deployment. Some of these configuration like valuestore
can only be changed during the initialization and would require a complete reset (data loss) to change.
Last updated