Skip to main content

Kubernetes Operator

This page explains the steps required to setup Parseable (in S3 or Local mode) on Kubernetes via Parseable Operator.

Prerequisites

  • kubectl installed and configured to point to relevant Kubernetes cluster.
  • Kubernetes version 1.20 or above.

Installation

The Parseable operator installation is done in two steps:

  • Install the Parseable Operator CRDs and the Parseable Operator itself.
  • Create a Parseable Operator CR (called Parseable Tenant) to deploy Parseable.

Install the Parseable Operator

Parseable operator can be installed via our Helm chart. The chart installs the CRDs and the Deployment for the operator.

helm repo add parseable https://charts.parseable.com
helm install parseable-operator parseable/operator --create-namespace --namespace parseable-operator

Create a Parseable Tenant

Once the Parseable Operator is installed, you can create a Parseable Tenant CR to deploy Parseable. Note that the tenant yaml used here is for a minimal Parseable setup for demo purposes. For a production setup, refer of the documentation for Parseable Tenant CR below.

kubectl apply -f https://raw.githubusercontent.com/parseablehq/operator/main/config/samples/parseable-ephemeral.yaml

Once this is applied, you should see a Parseable deployment in the default namespace. Port forward to the Parseable service to access the Parseable UI.

kubectl port-forward svc/parseable-parseable-server 8000:80

You can now access the Parseable UI at http://localhost:8000 and login with the default credentials admin/admin.

Parseable Tenant CR Fields

The Parseable Tenant CR has the following fields:

  • k8sConfig: This section defines a Kubernetes configuration. The node section (defined below) requires a reference to a Kubernetes configuration, in the nodes.k8sConfig section.
      ## Name of the Kubernetes configuration.
- name: server-k8s-config
## Image for a node type.
image: parseable/parseable:v0.4.0
## Service to be created for this Kubernetes configuration.
service:
type: ClusterIP
ports:
- protocol: TCP
port: 80
targetPort: 8000
## Volumes to be created for this Kubernetes configuration.
volumes:
- emptyDir: {}
name: stage-volume
- emptyDir: {}
name: data-volume
## Volume mounts for this Kubernetes configuration.
volumeMount:
- mountPath: /parseable/data
name: data-volume
- mountPath: /parseable/staging
name: stage-volume
## Kubernetes resource limits for this Kubernetes configuration.
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 100m
memory: 128Mi
  • parseableConfig: This section defines a Parseable configuration. The node section (defined below) requires a reference to a Parseable configuration, in the nodes.parseableConfig section.
      ## Name of the Parseable configuration.
- name: parseable-server-config
## Parseable command line arguments. Can be set to `local-store` or `s3-store`.
cliArgs:
- local-store
## Parseable environment variables.
## Refer the documentation here https://www.parseable.com/docs/env-vars
env: |-
P_ADDR=0.0.0.0:8000
P_STAGING_DIR=/parseable/staging
P_FS_DIR=./data
P_USERNAME=admin
P_PASSWORD=admin
  • nodes: This section defines the specifications of a Parseable node type. For example, an ingestion only node or a query only node. The following fields are supported:
      ## Name of the node type
- name: parseable
## Type of the node. Can be server, ingestor or querier.
type: server
## Kubernetes resource type. Can be Deployment or StatefulSet.
kind: Deployment
## Number of replicas.
replicas: 1
## Kubernetes configuration for the node. Specified above.
k8sConfig: server-k8s-config
## Parseable configuration for the node. Specified above.
parseableConfig: parseable-server-config
  • deploymentOrder: This field defines the order in which the nodes are deployed. For example, if you want to deploy a query node first and then an ingestion node, you can specify the order as an . This is useful if you want to deploy a query node first and then deploy an ingestion node that connects to the query node.

Get Updates from Parseable

Subscribe to keep up with latest news, updates and new features on Parseable