...
We did an initial POC of our image and compared with other existing popular Apache Kafka docker images
Image Name | Image size (Uncompressed) | Startup total time (in seconds) | Time to start the kafka server inside container (in seconds) | Memory Used | Java version | Apache Kafka version |
---|---|---|---|---|---|---|
Proposed apache/kafka with Java 21 | 457.86 MB | 3.885 | 0.816 | 382.4 MB | 21 | 3.6.0 |
Proposed apache/kafka with Java 17 | 460.76 MB | 2.174 | 0.679 | 326 MB | 17 | 3.5.1 |
517.16 MB | 3.469 | 0.889 | 344 MB | 17 | 3.5.1 | |
876.4 MB | 3.341 | 0.701 | 390.6 MB | 11 | 7.5.0-ccs | |
(Image doesn’t support kraft and source code is not public) | 359.03 MB + 359.03 MB | 1.425 + 0.636 | 0.827 | 335 MB + 78 MB | 11 | 3.1.0 |
Note: ubuntu/kafka is smaller as it is making use of Apache Kafka:3.1.0 and Java 11. With same AK and java versions, our image size was 367MB
...
Adhering to the outlined constraints, image tagging can follow this format
<image-name>:<kafka-version>-<optional-suffix>
- For example, for 3.
...
- 7.
...
- 0 version of kafka, the image name with tagging would be
apache/kafka:3.7.0
- In case of a CVE post 3.7.0, the name of the released image will depend on the section ReleaseProcess
- apache/kafka:3.
...
- 7.1 => Docker release along with Apache Kafka minor release
- apache/kafka:3.
...
- 7.
...
- 0-1
...
- => Only docker image release, hence added a suffix
...
Compatibility, Deprecation, and Migration Plan
...