Axual Kafka
Axual Kafka is a Helm chart designed to deploy and manage a Strimzi-based Axual Kafka cluster with Kraft (Kafka Raft) mode for easy scalability and high performance. This chart simplifies the provisioning of Kafka clusters and related resources, making it highly customizable to suit diverse use cases.
Features
-
Kafka Kraft Support: Leverage Kafka’s built-in Raft protocol, eliminating the need for Zookeeper in your deployments.
-
Highly Configurable:
-
Support for custom Kafka and Zookeeper metrics.
-
Advanced logging configurations (inline or external).
-
Optional Cruise Control for Kafka optimization.
-
Simple authorization with support for super users.
-
-
Observability:
-
Built-in Prometheus metrics for Kafka and Zookeeper.
-
Pre-configured Prometheus rules and alerts.
-
Integration with JMX Prometheus Exporter for fine-grained monitoring.
-
-
Template Expansion:
-
Ability to extend Kafka or Zookeeper configurations using native Helm templating.
-
-
SSL & Security:
-
Cluster CA and client CA management.
-
SSL/TLS configuration for secure Kafka communication.
-
Prerequisites
Before using this chart, ensure the following are in place:
-
Helm: Version 3 or above.
-
Kubernetes Cluster: v1.22+ for compatibility with custom resource definitions (CRDs).
-
Strimzi Operator: The Kafka Custom Resource and related operations are managed by Strimzi. Install the Strimzi operator in your Kubernetes cluster.
Installation
Log into the Axual Harbor Registry
helm registry login -u [your-user] registry.axual.io/axual-charts
Install Strimzi Operator
Check the versions you need from the Strimzi downloads page: https://strimzi.io/downloads/.
helm upgrade --install strimzi strimzi/strimzi-kafka-operator \
--version=0.43.0 \
--namespace kafka \
--set watchAnyNamespace=true \
--set kafka.image.registry=registry.axual.io \
--set kafka.image.repository=axual/streaming/strimzi \
--set image.imagePullSecrets='axualdockercred'
Configuration
The chart includes a wide range of configuration options available in the values.yaml
. Below are all the configurable parameters:
General Settings
Parameter | Description | Default |
---|---|---|
|
Fully override the full resource names |
|
|
Override the base name of the chart |
|
Axual Settings
Parameter | Description | Default |
---|---|---|
|
Enable Axual SSL Principal Builder |
|
|
Add chained super users to the SSL Principal Builder |
|
|
List of additional chained super users |
|
Kafka Settings
Parameter | Description | Default |
---|---|---|
|
Enable Kafka deployment |
|
|
Kafka version |
|
|
Use Kafka Raft (KRaft) mode ( |
|
|
Enable Kafka NodePools for the deployment |
|
|
Enable rack awareness |
|
|
Kubernetes topology key for rack awareness |
|
|
Enable Kafka metrics for Prometheus |
|
|
Kafka logging type: |
|
|
External logging configuration (only used if |
See |
|
Inline logger configuration |
|
|
Enable the Kafka Exporter for metrics |
|
|
Specification for the Kafka Exporter |
Defaults from Strimzi |
|
List of superusers for Kafka authorization |
|
|
List of Kafka listeners defined per your requirements |
|
|
Kafka configuration properties |
See below: |
|
Automatically create topics |
|
|
Replication factor for offsets topic |
|
|
Replication factor for transaction state |
|
|
Minimum in-sync replicas for transaction state |
|
|
Default replication factor for topics |
|
|
Minimum in-sync replicas for producing |
|
|
Allow everyone when ACL is not found |
|
|
Generate a Clients Certificate Authority |
|
|
Generate a Cluster Certificate Authority |
|
|
Config for the Kafka Entity Operator |
|
|
Enable Cruise Control for dynamic optimization |
|
|
Enable JMX Prometheus metrics for Cruise Control |
|
|
Additional specifications for Cruise Control |
|
|
Additional |
|
|
Additional Kafka spec values |
|
Zookeeper Settings (Not Needed if KRaft is Enabled)
Parameter | Description | Default |
---|---|---|
|
Enable Zookeeper for Kafka |
|
|
Number of Zookeeper replicas |
|
|
Persistent storage size for Zookeeper |
|
|
Enable Prometheus metrics for Zookeeper |
|
|
Logging type for Zookeeper: |
|
Monitoring & Observability
Parameter | Description | Default |
---|---|---|
|
Enable PodMonitor for Kafka |
|
|
Labels for the Kafka PodMonitor |
|
|
Scrape timeout for Kafka Prometheus metrics |
|
|
Scrape interval for Kafka Prometheus metrics |
|
|
Enable PodMonitor for Kafka Entity Operator |
|
|
Labels for the Entity Operator PodMonitor |
|
|
Scrape timeout for Entity Operator Prometheus metrics |
|
|
Scrape interval for Entity Operator Prometheus metrics |
|
|
Enable Prometheus Rules for Kafka alerts |
|
|
Enable Prometheus Rules for Zookeeper alerts |
|
|
Labels for Prometheus Rules |
|
Values Examples
Observability & Prometheus Alerts
The chart configures Prometheus alerts for Kafka and Zookeeper. Example of configured alerts:
-
KafkaRunningOutOfSpace: Indicates low disk space on Kafka brokers.
-
UnderReplicatedPartitions: Triggers when Kafka partitions are under-replicated.
-
OfflinePartitions: Alerts when certain Kafka partitions do not have an active leader.
For additional information, refer to the official Strimzi documentation: https://strimzi.io/documentation/.