Confluent Platform System Requirements¶
This topic provides the hardware and software requirements for Confluent Platform.
Looking for a fully managed cloud-native service for Apache Kafka®?
Sign up for Confluent Cloud and get started for free using the Cloud quick start.
Hardware¶
The following table lists machine recommendations are for installing individual Confluent Platform components. Confluent Platform supports both ARM64 and X86 hardware architecture. ARM64 is supported in Confluent Platform 7.6.0 and later.
For consistent and optimal performance in your Confluent Platform cluster, ensure all cluster nodes have identical hardware specifications. This includes CPU type and core count, RAM capacity and speed, and storage type with matching performance characteristics like throughput and IOPS. Varying hardware among nodes can cause performance bottlenecks, uneven workload distribution, and overall cluster instability. Maintaining identical hardware across all nodes is essential for high availability and reliable performance in your Confluent Platform deployment.
Note that the recommended CPU resource is the same for all platforms. For example, if 12 CPUs is recommended for non-Kubernetes environment, the recommendation for a Kubernetes environment would also be 12 CPU units.
Component | Nodes | Storage | Memory | CPU |
---|---|---|---|---|
Control Center-Normal mode, see System Requirements | 1 | 200 GB, preferably SSDs | Minimum 8 GB RAM | 4 cores or more |
Control Center-Reduced infrastructure mode, see System Requirements | 1 | 128 GB, preferably SSDs | 8 GB RAM | 4 cores or more |
Control Center (Legacy)-Normal mode | 1 | 300 GB, preferably SSDs | 32 GB RAM (JVM default 6 GB) | 12 cores or more |
Control Center (Legacy)-Reduced infrastructure mode | 1 | 128 GB, preferably SSDs | 8 GB RAM (JVM default 4 GB) | 4 cores or more |
Broker | 3 |
|
64 GB RAM | Dual 12-core sockets |
KRaft controller | 3-5 | 64 GB SSD | 4 GB RAM | 4 cores |
Confluent Manager for Apache Flink | 2 Kubernetes pods | 10 GB (Kubernetes persistent volume) | 4 GB RAM (For managing 150 Flink applications) | 3 cores (For managing 150 Flink applications) |
Connect | 2 | Storage is only required at installation time. | 0.5 - 4 GB heap size depending on connectors | Typically not CPU-bound. More cores is better than faster cores. |
Replicator- Same as Connect for nodes, storage, memory, and CPU. (See note that follows about AWS.) | 2 | Storage is only required at installation time. | 0.5 - 4 GB heap size | More cores is better |
ksqlDB - See Capacity planning | 2 | Use SSD. Sizing depends on the number of concurrent queries and the aggregation performed. Minimum 100 GB for a basic server. | 20 GB RAM | 4 cores |
REST Proxy | 2 | Storage is only required at installation time. | 1 GB overhead plus 64 MB per producer and 16 MB per consumer | 16 cores to handle HTTP requests in parallel and background threads for consumers and producers. |
Schema Registry | 2 | Storage is only required at installation time. | 1 GB heap size | Typically not CPU-bound. More cores is better than faster cores. |
- If you want to use RAID disks, the recommendation is:
- RAID 1 and RAID 10: Preferred
- RAID 0: 2nd preferred
- RAID 5: Not recommended
Note
If deploying Confluent Platform on AWS VMs and running Replicator as a connector, be aware that VMs with burstable CPU types (T2, T3, T3a, and T4g) will not support high throughput streaming workloads. Replicator worker nodes running on these VMs experience throughput degradation due to credits expiring, making these VMs unsuitable for Confluent Platform nodes expected to run at elevated CPU levels for a sustained period of time, and supporting workloads that are above and beyond their baseline resource rates.
Software¶
Operating Systems¶
It is recommended that you run Confluent Platform across uniform OS, Confluent Platform, and Java versions.
Confluent Platform supports both X86 and ARM64 hardware architecture. ARM64 is supported in Confluent Platform 7.6.0 and later. For more information on required hardware, see Hardware.
Operating System | Linux Kernel | 8.0.x | 7.9.x | 7.8.x | 7.7.x | 7.6.x | 7.5.x | 7.4.x | 7.3.x | 7.2.x |
---|---|---|---|---|---|---|---|---|---|---|
AlmaLinux 9 | 5.14 | yes | yes | yes | no | no | no | no | no | no |
AlmaLinux 8 | 4.18 | yes | yes | yes | no | no | no | no | no | no |
Amazon Linux 2023 | 6.1 | yes | yes | yes | yes | no | no | no | no | no |
Debian 12 (bookworm) | 6.1 | yes | yes | yes | yes | no | no | no | no | no |
Debian 10 (buster) [1] | 4.19 | no | no | no | yes | yes | yes | yes | yes | yes |
RHEL 9.x | 5.14 | yes | yes | yes | yes | yes | yes | yes | no | no |
RHEL/CentOS 8.x | 4.18 | yes | yes | yes | yes | yes | yes | yes | yes | yes |
Rocky Linux 9 | 5.14 | yes | yes | yes | yes | yes | no | no | no | no |
Rocky Linux 8 | 4.18 | yes | yes | yes | yes | yes | no | no | no | no |
Ubuntu 24.04 LTS (noble) [2] | 6.8 | yes | yes | no | no | no | no | no | no | no |
Ubuntu 22.04 LTS (jammy) [2] | 5.15 | yes | yes | yes | no | no | no | no | no | no |
Ubuntu 20.04 LTS (focal) | 5.4 | yes | yes | yes | yes | yes | yes | yes | yes | yes |
Ubuntu 18.04 LTS (bionic) [1] | 4.15 | no | no | no | yes | yes | yes | yes | yes | yes |
Footnotes
[1] | (1, 2) Support for these operating systems has been removed in Confluent Platform 7.8.x because they have reached their end of life. Support for these OSs will be removed for all versions of Confluent Platform after the 7.8.x release. You should not use these OSs in a production deployment. |
[2] | (1, 2) Java 11, 17 and 21 are supported. Java 8 is not supported on this operating system. |
Additional notes about OS support:
- SELinux
Confluent Platform is supported on AlmaLinux, Amazon Linux, Debian, Oracle Linux, RHEL, CentOS, Debian, Rocky Linux and Ubuntu Operating Systems.
Confluent is not accountable for Security-Enhanced Linux (SELinux) policy development, support, or enforcement. If you experience issues running Confluent Platform with SELinux enabled on a supported Linux Operating System, contact your OS provider for assistance.
- Windows
- Windows is not currently supported for Confluent Platform. Windows 8.1 and later and Windows 2016 and later are supported by the C/C++ and .NET clients.
- macOS
- macOS 10.14 and later is supported for testing and development purposes only.
- File descriptors
- For the file descriptor requirement for Kafka, see File Descriptors and mmap.
- ulimit
- Control Center requires many open RocksDB files. Set the
ulimit
for the number of open files to a minimum value of 16384 using theulimit -n
command. For the other Confluent Platform components, specifically Schema Registry and Replicator, you can leave theulimit
as the OS default. - RHEL with TLS
When you install Confluent Platform on RHEL8 with TLS encryption, you must add DH Key Size JVM Parameters for each component. For more information, see Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms.
Set the following component-level environment variables to the argument:
- Schema Registry:
SCHEMA_REGISTRY_OPTS=-Djdk.tls.ephemeralDHKeySize=2048
- Kafka and Connect:
KAFKA_OPTS=-Djdk.tls.ephemeralDHKeySize=2048
- REST Proxy:
KAFKAREST_OPTS=-Djdk.tls.ephemeralDHKeySize=2048
- ksqlDB:
KSQL_OPTS=-Djdk.tls.ephemeralDHKeySize=2048
- Schema Registry:
- atime
The
atime
mount option impacts performance, because every read operation on a file system causes a write operation.Confluent recommends disabling the tracking of
atime
by setting thenoatime
option when you mount Kafka data disks.
Java¶
You need to separately install the correct version of Java before you start the Confluent Platform installation process.
The following table lists Java support in Confluent Platform by version. Note the following:
- Java 8 was deprecated in Confluent Platform version 7.4.x and has been removed in a Confluent Platform 8.0.
- Java 11 is now only supported for Kafka Streams and Kafka clients in Confluent Platform 8.0.x.
- Ubuntu 22.04 and 24.04 operating systems support Java versions 21, 17 and 11, but do not support Java 8 in Confluent Platform 7.8.x or later.
- The current Docker image supports Java 21. For more information, see Docker.
- Eclipse Temurin (formerly known as AdoptOpenJDK), OpenJDK, Zulu OpenJDK, and Oracle are supported with Confluent Platform.
- You should use the full JDK to help Confluent Support with troubleshooting and to provide better support if you experience issues with Confluent Platform.
Confluent Platform | Recommended | Supported |
---|---|---|
8.0.x | 21 | 21, 17 * |
7.9.x | 17 | 17, 11, 8 |
7.8.x | 17 | 17, 11, 8 |
7.7.x | 17 | 17, 11, 8 |
7.6.x | 17 | 17, 11, 8 |
7.5.x | 17 | 17, 11, 8 |
7.4.x | 17 | 17, 11, 8 |
7.3.x | 17 | 17, 11, 8 |
7.2.x | 11 | 11, 8 |
* Java 8 has been removed in Confluent Platform 8.0. Java 11 is only supported for Kafka Streams and Kafka clients.
From a security perspective, you should always use the latest released patch version because older versions may have security vulnerabilities.
Only long-term support (LTS) versions of Java are supported. For more information about Java versions, see Java Version History.
Docker¶
Optional: Docker version 1.11 or later running on a supported operating system. This is required if you are installing Confluent Platform by using the Docker images.
Network¶
Starting with Confluent Platform 7.9.1, Internet Protocol version 6 (IPv6) is supported. IPv6 support is subject to the following constraints:
- It can be enabled only on clusters using Java 11 or above.
- It can be enabled only on clusters running in KRaft mode.
To enable IPv6 for Tiered Storage, in addition to meeting the constraints listed above, you must:
- Set the JVM property:
Djava.net.preferIPv6Addresses=true
. - Set the broker configuration property:
confluent.tier.s3.ipv6.enabled=true
.
Ports¶
The table below lists the network services and ports exposed as part of Confluent Platform.
All services listed below use the TCP protocol.
All ports listed below are the default ports, and in most cases you can configure each service to listen on a different port of your choice.
Ports that are indicated to be Internal Only need to be accessible by components within Confluent Platform, not by users or clients of the platform.
When deploying Confluent Platform, ensure that your networking rules allow for the required access to the various components and services.
Component and Service | Default Port | Internal Only? |
---|---|---|
KRaft Controller | ||
|
9093 | Yes |
|
7770 | No |
Kafka Broker | ||
|
9091 | Yes |
|
9092 | No |
|
8090 | No |
|
8090 | No |
|
7771 | No |
(Standalone) REST Proxy | 8082 | No |
Confluent Control Center | 9021 | No |
Kafka Connect | ||
|
8083 | No |
|
7773 | No |
ksqlDB Server | ||
|
8088 | No |
|
7774 | No |
Schema Registry | ||
|
8081 | No |
|
7772 | No |
[*] Reserve the Jolokia ports only when you deploy Confluent Platform using Ansible.
Time synchronization requirement¶
Clock synchronization on each Kafka broker is required to ensure the full system functions
correctly. For example, secure network communication with the brokers that rely on
TLS certificate verification may fail if clocks are not synchronized. Clock synchronization
can be achieved using utilities like ntpd
that implement the Network Time Protocol (NTP).