KubeBlocks
BlogsKubeBlocks Cloud
⌘K
​
Overview
Quickstart

Operations

Lifecycle Management
Vertical Scaling
Horizontal Scaling
Volume Expansion
Manage Kafka Services
Decommission Kafka Replica

Monitoring

Observability for Kafka Clusters

tpl

    KubeBlocks uses a declarative approach for managing Kafka Clusters. Below is an example configuration for deploying a Kafka Cluster with 3 components

    Apply the following YAML configuration to deploy the cluster:

    apiVersion: apps.kubeblocks.io/v1
    kind: Cluster
    metadata:
      name: kafka-separated-cluster
      namespace: demo
    spec:
      terminationPolicy: Delete
      clusterDef: kafka
      topology: separated_monitor
      componentSpecs:
        - name: kafka-broker
          replicas: 1
          resources:
            limits:
              cpu: "0.5"
              memory: "0.5Gi"
            requests:
              cpu: "0.5"
              memory: "0.5Gi"
          env:
            - name: KB_KAFKA_BROKER_HEAP
              value: "-XshowSettings:vm -XX:MaxRAMPercentage=100 -Ddepth=64"
            - name: KB_KAFKA_CONTROLLER_HEAP
              value: "-XshowSettings:vm -XX:MaxRAMPercentage=100 -Ddepth=64"
            - name: KB_BROKER_DIRECT_POD_ACCESS
              value: "true"
          volumeClaimTemplates:
            - name: data
              spec:
                storageClassName: ""
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 20Gi
            - name: metadata
              spec:
                storageClassName: ""
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 1Gi
        - name: kafka-controller
          replicas: 1
          resources:
            limits:
              cpu: "0.5"
              memory: "0.5Gi"
            requests:
              cpu: "0.5"
              memory: "0.5Gi"
          volumeClaimTemplates:
            - name: metadata
              spec:
                storageClassName: ""
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 1Gi
        - name: kafka-exporter
          replicas: 1
          resources:
            limits:
              cpu: "0.5"
              memory: "1Gi"
            requests:
              cpu: "0.1"
              memory: "0.2Gi"
    
    NOTE

    These three components will be created strictly in controller->broker->exporter order as defined in ClusterDefinition.

    © 2025 ApeCloud PTE. Ltd.