// This module is included in:
//
// overview/assembly-configuration-points.adoc

[id="configuration-points-node_pools_{context}"]
= Kafka node pools configuration

[role="_abstract"]
A node pool refers to a distinct group of Kafka nodes within a Kafka cluster.
By using node pools, nodes can have different configuration within the same Kafka cluster.
Configuration options not specified in the node pool are inherited from the Kafka configuration.

You can deploy a Kafka cluster with one or more node pools.
The node pool configuration includes mandatory and optional settings.
Configuration for replicas, roles, and storage is mandatory.

If you are using KRaft mode, you can specify roles that all nodes in the node pool operate as brokers, controllers, or both.
Controller and dual roles are specific to KRaft.
If you are using Kafka clusters that use ZooKeeper for cluster management, you can use node pools that are configured with broker roles only. 

[discrete]
== Example YAML showing node pool configuration
[source,shell,subs="+attributes"]
----
apiVersion: {KafkaNodePoolApiVersion}
kind: KafkaNodePool
metadata:
  name: pool-a
  labels:
    strimzi.io/cluster: my-cluster
spec:
  replicas: 3
  roles:
    - broker
  storage:
    type: jbod
    volumes:
      - id: 0
        type: persistent-claim
        size: 100Gi
        deleteClaim: false
---- 