A Helm chart for ksqlDB on Kubernetes
This chart bootstraps a ksqlDB.
ksqlDB is an event streaming database purpose-built to help developers create stream processing applications on top of Apache Kafka.
- Docker Desktop for Mac 3.5.2
- Kubernetes v1.21.2
- Helm v3.6.3
- Confluent Platform 6.2.0
Add the chart repository, if not done before:
helm repo add rhcharts https://ricardo-aires.github.io/helm-charts/
By default this chart is set to use the umbrella chart kstack, but can be run against an external Kafka, Schema Registry and Kafka Connect by passing:
helm install --set kafka.enabled=false --set kafka.bootstrapServers=PLAINTEXT://kstack-kafka-headless.default:9092 --set schema-registry.enabled=false --set schema-registry.url=kstack-schema-registry.default:8081 --set kafka-connect.enabled=false --set kafka-connect.url=kstack-kafka-connect.default:8083 ktool rhcharts/ksqldb
NAME: ktool
LAST DEPLOYED: Tue Mar 23 18:35:37 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
** Please be patient while the ksqldb chart is being deployed in release ktool **
This chart bootstraps a ksqldb that can be accessed from within your cluster:
ktool-ksqldb.default:8088
$
These commands deploy ksqlDB on the Kubernetes cluster in the default configuration. The Parameters section lists the parameters that can be configured during installation.
One can run the:
- helm list command to list releases installed
- helm status to display the status of the named release
- helm test to run tests for a release
To uninstall the ktool
deployment run:
helm uninstall ktool
The command removes all the Kubernetes components associated with the chart and deletes the release.
You can specify each parameter using the --set key=value[,key=value]
argument to helm install
.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
helm install ktool -f my-values.yaml rhcharts/ksqldb
A default values.yaml is available and should be checked for more advanced usage.
By default the confluentinc/ksqldb-server is in use.
Parameter | Description | Default |
---|---|---|
image.registry |
Registry used to distribute the Docker Image. | docker.io |
image.repository |
Docker Image of ksqlDB. | confluentinc/ksqldb-server |
image.tag |
Docker Image Tag of ksqlDB. | 0.18.0 |
One can easily change the image.tag
to use another version. When using a local/proxy docker registry we must change image.registry
as well.
For more information, see Headless Deployment.
To enable headless mode in this chart, simply pass the name of a ConfiMap containing the sql script file:
Parameter | Description | Default |
---|---|---|
queriesFileCM |
Name of the ConfigMap that stores the queries.sql script with all the ksql queries for a given use case |
nil |
By default the Service will expose the pods in the port 8088
, port
.
Regarding the management of Resources for Containers the next defaults regarding requests and limits are set:
Parameter | Description | Default |
---|---|---|
resources.limits.cpu |
a container cannot use more CPU than the configured limit | 1 |
resources.limits.memory |
a container cannot use more Memory than the configured limit | 1400Mi |
resources.requests.cpu |
a container is guaranteed to be allocated as much CPU as it requests | 250m |
resources.requests.memory |
a container is guaranteed to be allocated as much Memory as it requests | 512Mi |
In terms of the JVM the next default is set:
Parameter | Description | Default |
---|---|---|
heapOpts |
The JVM Heap Options for Kafka Broker. | "-XX:MaxRAMPercentage=75.0 -XX:InitialRAMPercentage=50.0" |
Check the values.yaml
for more advance configuration such as: