Best Kafka UI tools for Strimzi (Kafka on Kubernetes)
ComparisonsThe best Kafka UI tool for Strimzi is one that signs in the way the cluster’s listeners already authenticate clients, over mTLS, SCRAM-SHA-512 or OAuth 2.0, installs into Kubernetes as one pod that mounts Strimzi’s certificate and user Secrets, works alongside the Topic and User Operators rather than against them, and adds production access on request, masking and an audit trail that names the person, all while staying out of the data path. Kpow, Kafbat UI, StreamsHub Console, AKHQ, Strimzi’s own resources with kubectl and Grafana, Lenses, Redpanda Console and Conduktor each cover part of that. Scored on the six weighted criteria explained below the rankings, Kpow ranks first with 90 out of 100, ahead of Kafbat UI at 63 and StreamsHub Console at 62; Conduktor, listed last, totals 62.
Tools compared
| Rank | Tool | Total (out of 100) | Out of the data path | mTLS, SCRAM and OAuth on Strimzi | Production access on request | Audit trail per person | Many teams, shared clusters | Runs on Kubernetes | Cost a year, one cluster (modelled) |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Kpow | 90 | One container, no external database, not a proxy | All three documented for Strimzi; OAuth needs the -strimzi image | Temporary policies, staged approvals, masking | Names the person, includes data reads | Tenants per team | Helm chart, one pod mounting Strimzi Secrets | $7,380 |
| 2 | Kafbat UI | 63 | One container | SSL and SCRAM published; no OAuth guide | RBAC, no approvals or expiry | Audit topic, no view | Roles per resource | Helm chart; UI cluster add fails on Kubernetes | $8,640 |
| 3 | StreamsHub Console | 62 | API, UI and operator, no database | Reads the listener and KafkaUser from Strimzi | OIDC roles, no approvals or masking | None documented | Roles per cluster and resource | Operator and a Console resource | $8,640 |
| 4 | AKHQ | 60 | One container | Strimzi OAuth client bundled | Regex groups, no approvals | Opt-in topic, no reads | Regex groups | Helm chart; memory reports | $8,640 |
| 5 | Strimzi resources with kubectl and Grafana | 58 | Nothing new to deploy | Defines users; reads no records | Kubernetes RBAC on resources | Kubernetes API audit, no data reads | Namespaces and ACLs | Kubernetes itself | $11,520 |
| 6 | Lenses | 54 | HQ on PostgreSQL plus an agent per cluster | SSL and SCRAM; OAuth not documented | Global masking, no approvals | In-product audit log | Group roles only | Helm charts plus PostgreSQL | $20,882 before EC2 charges |
| 7 | Redpanda Console | 51 | One container | Documented generally, nothing for Strimzi | Behind a paid Enterprise licence | Not documented | Licence-gated roles | Container and Helm chart | $8,640 plus an unpublished licence for RBAC |
| 8 | Conduktor | 62 | Console on PostgreSQL; Gateway, a proxy, for data-level controls | Java client properties; SCRAM documented | Masking exemptions, owner approvals | 70+ event types in the UI | Groups; Virtual Clusters need Gateway | Kubernetes deployments plus PostgreSQL | $32,880; $122,880 with Gateway Core and Protect |
The tools, ranked for Strimzi
Rank 1 Kpow
90 out of 100 Total
Try Kpow in the live demo No signup needed.
- Cost a year
- $4,500 per cluster with 100 users included, plus about $2,880 in operator time, so $7,380 on one cluster (modelled)
- Strimzi sign-in
- mTLS, SCRAM-SHA-512 and OAuth 2.0, documented for Strimzi
- Deployment
- One pod from a Helm chart, no external database
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- Many teams, shared clusters
- 9 out of 10
- Runs on Kubernetes
- 9 out of 10
Why these scores for Kpow
- Out of the data path 9 out of 10
- It is one container or JAR whose state lives in Kafka topics on your own cluster, and it connects as an ordinary Kafka client, so nothing sits between your applications and the brokers.
- mTLS, SCRAM and OAuth on Strimzi 9 out of 10
- Kpow’s Strimzi documentation gives working settings for mTLS from the Cluster CA and a user certificate, SCRAM-SHA-512, and OAuth 2.0 through Strimzi’s callback handler, including an identity provider with an internal CA, docked one point because OAuth needs the separate -strimzi image.
- Production access on request 9 out of 10
- Temporary policies grant time-boxed access that an admin or a change system calling the Kpow API can create, staged mutations hold any action for approval, and data policies mask fields in inspection, though masking is per resource rather than per viewer.
- Audit trail per person 9 out of 10
- Every action is recorded with the user from the identity provider and the policy that allowed it, including data inspect queries, with a seven-day view in the product, the record written to an audit topic on your own cluster, and webhooks that send it to a SIEM for long-term retention.
- Many teams, shared clusters 9 out of 10
- Tenants scope each team to its own resources on a shared cluster, and RBAC adds Allow, Deny or Stage per action.
- Runs on Kubernetes 9 out of 10
- Factor House publishes Helm charts for Kpow and Community Edition at charts.factorhouse.io, and the chart’s values take volumes, volume mounts and an env-from-Secret setting, so Strimzi’s certificate and user Secrets mount straight into one pod with no database.
On Strimzi. Kpow added Strimzi support in release 95.4 (April 2026). Its Strimzi cluster documentation covers the three mechanisms Strimzi listeners use: mTLS with the Cluster CA as truststore and the KafkaUser certificate as keystore, both mounted from Kubernetes Secrets; SCRAM-SHA-512; and OAuth 2.0 (OAUTHBEARER) through Strimzi’s JaasClientOauthLoginCallbackHandler, for an identity provider on a public CA such as Okta or Azure, or for Keycloak on Kubernetes with a self-signed or Strimzi cluster CA. The OAuth settings take the client id, secret and token endpoint from environment variables. Kpow connects to Kafka Connect clusters through the Connect REST API and to Confluent-compatible registries including Apicurio Registry, per its schema registry documentation.
Where it falls short. OAuth against Strimzi needs the factorhouse/kpow:<version>-strimzi image, which bundles Strimzi’s OAuth libraries; Docker Hub lists that build for the factorhouse/kpow image and not for kpow-ce, while mTLS and SCRAM work with standard Kafka client settings. Kpow changes topics through the Kafka Admin API and connectors through the Connect REST API, so on a topic owned by a KafkaTopic resource, or a Connect cluster with KafkaConnector resources switched on, Strimzi’s operators revert those changes, as they would from any tool; Git stays the place to change those. RBAC, masking, staged mutations and the audit log need Kpow Enterprise; Community Edition is free for 3 clusters and 10 users. The chart requests 2 CPUs and 8 GiB by default, sized for several clusters; the Helm documentation gives 1 CPU and 2 GiB as the minimum for one cluster.
Compare Kpow vs Kafbat UIKpow vs AKHQ
Rank 2 Kafbat UI
63 out of 100 Total
- Cost a year
- $0 licence, about $8,640 in operator time (modelled)
- Strimzi sign-in
- SSL and SCRAM documented generally, nothing Strimzi-specific
- Deployment
- One stateless container, Helm chart
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 6 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 4 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 6 out of 10
- Many teams, shared clusters
- 6 out of 10
- Runs on Kubernetes
- 7 out of 10
Why these scores for Kafbat UI
- Out of the data path 9 out of 10
- It is one stateless container with no database and no proxy, the same pass as Kpow.
- mTLS, SCRAM and OAuth on Strimzi 6 out of 10
- Its published guides cover SSL and SASL/SCRAM for Kafka in general, with no OAUTHBEARER guide and nothing written for Strimzi, and it does not bundle Strimzi’s OAuth callback handler, so OAuth against a Strimzi listener is configuration you verify yourself.
- Production access on request 4 out of 10
- RBAC grants actions per resource and a cluster can be set read-only, but there is no approval step, no time-boxed grant, and its masking applies the same way to every viewer.
- Audit trail per person 6 out of 10
- Its audit log names the logged-in user and records reads when the level is set to ALL, but it writes to a topic or the console with no view in the product, so reading the trail is something you build.
- Many teams, shared clusters 6 out of 10
- Roles scope permissions per resource and list the clusters they apply to, with no tenant view of a team’s own resources.
- Runs on Kubernetes 7 out of 10
- Its Helm chart is maintained and documented, but the Kafbat UI review records that adding clusters through the UI on Kubernetes returns 400 Bad Request, so cluster connections stay in static configuration.
On Strimzi. Kafbat UI’s Helm chart documentation and SSL guide cover a Kubernetes install with a truststore and keystore, and its SASL/SCRAM page covers SCRAM. Strimzi’s Secrets are mounted as ordinary files. The Kafbat UI review covers its release history and RBAC in detail.
Where it falls short. No vendor stands behind it, there is no Strimzi-specific guidance, and its masking and audit trail are things to configure and then read with tooling you build. Its modelled running cost on one cluster is 6 engineer-hours a month, $8,640 a year at $120 an hour.
StreamsHub Console
62 out of 100 Total
- Cost a year
- $0 licence, about $8,640 in operator time (modelled)
- Strimzi sign-in
- Reads the listener and KafkaUser from Strimzi's resources
- Deployment
- Operator plus a Console resource, no database; release 0.14.1
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 10 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 3 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 2 out of 10
- Many teams, shared clusters
- 5 out of 10
- Runs on Kubernetes
- 9 out of 10
Why these scores for StreamsHub Console
- Out of the data path 9 out of 10
- It runs as a REST API and a UI managed by its own operator, with no database and no proxy, and Prometheus is needed only for its metrics charts.
- mTLS, SCRAM and OAuth on Strimzi 10 out of 10
- Its Console resource names the Strimzi Kafka resource, the listener and the KafkaUser to connect as, and takes the bootstrap address from the Kafka resource, so it is the most Strimzi-native connection on this page.
- Production access on request 3 out of 10
- OIDC sign-in maps users and groups to roles that allow listed actions on topics, records, groups and rebalances per cluster, but there is no approval step, no time-boxed grant and no masking.
- Audit trail per person 2 out of 10
- Its documentation describes no audit trail of what each person read or changed.
- Many teams, shared clusters 5 out of 10
- Roles can name the clusters and resources they apply to and are assigned from OIDC group claims, which scopes what a team may do, with no tenant model that scopes what each team sees.
- Runs on Kubernetes 9 out of 10
- It installs through its own operator, from Operator Lifecycle Manager or plain manifests, and is configured with a Console custom resource that can live in Git beside the Kafka resources.
On Strimzi. StreamsHub Console is an Apache 2.0 web console for Kafka clusters managed by the Strimzi Cluster Operator, built from a Quarkus REST API, a Next.js UI and a Kubernetes operator, per its GitHub repository. It shows topics and their messages, Kafka nodes including KRaft, consumer groups with offset resets, Kafka Connect clusters and connectors, and Kafka users with their authentication type and ACLs, and it marks topics and connectors that Strimzi’s operators manage. From the cluster overview it can pause reconciliation of the Kafka resource, and its Rebalance tab lists KafkaRebalance resources so Cruise Control proposals can be managed from the UI. People sign in through an OIDC provider such as Keycloak or Dex.
Where it falls short. It is pre-1.0 software, at release 0.14.1 in September 2026, and its Console resource is still a v1alpha1 API. Topics it creates go straight into Kafka rather than becoming KafkaTopic resources, so a team using the Topic Operator still creates topics in Git. There is no approval step, no time-boxed access, no masking and no documented audit trail, and its documentation marks entering personal Kafka credentials in the console as a deprecated login method. Its modelled running cost on one cluster is 6 engineer-hours a month, $8,640 a year at $120 an hour.
Rank 4 AKHQ
60 out of 100 Total
- Cost a year
- $0 licence, about $8,640 in operator time (modelled)
- Strimzi sign-in
- Strimzi OAuth client bundled; SSL documented
- Deployment
- One stateless container, Helm chart
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 8 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 3 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 4 out of 10
- Many teams, shared clusters
- 5 out of 10
- Runs on Kubernetes
- 7 out of 10
Why these scores for AKHQ
- Out of the data path 9 out of 10
- It is one stateless container with no database and no proxy, the same pass as Kpow.
- mTLS, SCRAM and OAuth on Strimzi 8 out of 10
- AKHQ bundles Strimzi’s OAuth client libraries and documents OAuth against Strimzi brokers with a Keycloak example, and documents SSL with a keystore, a clean pass with SCRAM left to ordinary Kafka client properties.
- Production access on request 3 out of 10
- Groups bind actions to resources by regex, but there is no approval step or time-boxed grant, masking is global, and without the JWT signing secret the restriction is in the UI only.
- Audit trail per person 4 out of 10
- Audit events are opt-in to a Kafka topic, reads are not recorded, and there is no view for the trail.
- Many teams, shared clusters 5 out of 10
- Groups combine resource types with regex patterns on names and clusters, which limits what a role can reach, but there is no tenant view of a team’s own resources.
- Runs on Kubernetes 7 out of 10
- Its configuration is YAML deployed through a Helm chart, which fits a GitOps workflow, docked for the memory-growth reports at heaps up to 14 GB that the AKHQ review records with no published fix.
On Strimzi. AKHQ’s cluster configuration guide has a section on OAuth2 for brokers that requires Strimzi’s OAuth library on the brokers, sets sasl.login.callback.handler.class to Strimzi’s JaasClientOauthLoginCallbackHandler, and notes that the libraries are already in the AKHQ image. The same page shows an SSL cluster with a PKCS12 keystore and a truststore. The AKHQ review covers the rest, and also records a Red Hat developer article that deployed AKHQ on OpenShift with Helm alongside Red Hat’s AMQ Streams.
Where it falls short. There is no approval step, no time-boxed access and no view of the audit trail, and its audit events leave out reads. The memory reports in the AKHQ review mean sizing its pod is something to watch.
Compare Kpow vs AKHQAKHQ review
Rank 5 Strimzi resources with kubectl and Grafana
58 out of 100 Total
- Cost a year
- $0 licence; reading records falls to the Kafka CLI, modelled at 8 hours a month, $11,520 (modelled)
- Strimzi sign-in
- Defines users; kubectl itself reads no records
- Deployment
- Nothing new to deploy beyond Prometheus and Grafana
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 10 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 6 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 2 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 4 out of 10
- Many teams, shared clusters
- 4 out of 10
- Runs on Kubernetes
- 10 out of 10
Why these scores for Strimzi resources with kubectl and Grafana
- Out of the data path 10 out of 10
- The operators and kubectl are already running the cluster and nothing sits between clients and brokers, which makes it the best on this criterion.
- mTLS, SCRAM and OAuth on Strimzi 6 out of 10
- KafkaUser resources are where mTLS and SCRAM-SHA-512 users and their ACLs are declared, and the User Operator writes their credentials to Secrets, but kubectl does not sign in to Kafka, so reading a record means running a Kafka client with one of those credentials.
- Production access on request 2 out of 10
- Kubernetes RBAC decides who may change the custom resources, and by default only Kubernetes cluster administrators may view, create, edit or delete Strimzi resources until someone is given the strimzi-view or strimzi-admin role, but there is no time-boxed grant for production and no control over who reads records.
- Audit trail per person 4 out of 10
- The Kubernetes API server’s audit log, when an audit policy is configured, can show who changed a KafkaTopic or KafkaUser resource, but not what anyone read from a topic or which consumer group they reset with a Kafka client.
- Many teams, shared clusters 4 out of 10
- Namespaces and KafkaUser ACLs separate applications, but there is no per-team view of topics and data.
- Runs on Kubernetes 10 out of 10
- It is Kubernetes itself, managed with kubectl and GitOps, which makes it the best on this criterion.
What it covers. Strimzi manages Kafka through custom resources: Kafka and KafkaNodePool for the cluster, KafkaTopic, KafkaUser, and KafkaConnect with KafkaConnector, as its deployment documentation describes. It publishes example Prometheus metrics configuration and example Grafana dashboards, and Kafka Exporter adds consumer group lag metrics that broker JMX metrics do not provide.
Where it falls short. Strimzi’s documentation describes no web UI for Kafka data, so reading a message, searching a topic or replaying a record means a Kafka client such as the console consumer, run with credentials from a KafkaUser Secret. Dashboards show lag and broker health, not which application is behind or what is in its messages.
Rank 6 Lenses
lenses.io
54 out of 100 Total
- Cost a year
- $18,002 software on the smallest AWS Marketplace EC2 listing plus $2,880 operator time, so $20,882 before EC2 charges (modelled)
- Strimzi sign-in
- SSL and SCRAM-SHA-512 for its agent; OAuth not documented
- Deployment
- HQ on PostgreSQL plus an agent and database per cluster
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 4 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 6 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 4 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 7 out of 10
- Many teams, shared clusters
- 6 out of 10
- Runs on Kubernetes
- 6 out of 10
Why these scores for Lenses
- Out of the data path 4 out of 10
- It runs a central HQ on PostgreSQL plus an agent and an agent database beside every cluster, and HQ has no high-availability option.
- mTLS, SCRAM and OAuth on Strimzi 6 out of 10
- Its agent’s Kafka connection documents SSL with keystores and SASL with SCRAM-SHA-512, with no OAUTHBEARER connection documented and nothing written for Strimzi.
- Production access on request 4 out of 10
- Its masking is the strictest view-time model, global with no escape even for admins, but no approval step or time-boxed grant is described.
- Audit trail per person 7 out of 10
- Audit logs can be read in the product, with no need to build a consumer first.
- Many teams, shared clusters 6 out of 10
- Roles attach to groups only, never to individuals, and no scoped view per team is described.
- Runs on Kubernetes 6 out of 10
- Helm charts are published for HQ and for the agent, but each needs a PostgreSQL database you provide, which is more to run inside the cluster than a single pod.
On Strimzi. Lenses’ documentation installs HQ and its agent from Helm charts, and the agent’s Kafka connection takes SSL or SASL settings, including SCRAM-SHA-512, so it reaches a Strimzi listener with the certificate or password from a KafkaUser Secret. SQL over topics is the strongest query model on this page.
Where it falls short. The Team licence stops at 15 users on one cluster, so 25 engineers means the AWS Marketplace listing or a quoted licence, OAuth sign-in to brokers is not documented, and HQ plus an agent database per cluster is the heaviest footprint here apart from Conduktor with Gateway.
Rank 7 Redpanda Console
redpanda.com
51 out of 100 Total
- Cost a year
- $0 for the free build, about $8,640 in operator time (modelled); RBAC and SSO need an unpublished Enterprise licence
- Strimzi sign-in
- TLS, SCRAM-SHA-512 and OAUTHBEARER documented generally
- Deployment
- One stateless container, Helm chart
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 9 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 7 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 2 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 2 out of 10
- Many teams, shared clusters
- 3 out of 10
- Runs on Kubernetes
- 8 out of 10
Why these scores for Redpanda Console
- Out of the data path 9 out of 10
- It is a self-hosted container with no database.
- mTLS, SCRAM and OAuth on Strimzi 7 out of 10
- Its configuration documentation covers TLS, SCRAM-SHA-512 and OAUTHBEARER with a client id, secret and token endpoint for Kafka in general, with nothing written for Strimzi.
- Production access on request 2 out of 10
- RBAC needs a paid Redpanda Enterprise licence, and no approval step or time-boxed grant is described.
- Audit trail per person 2 out of 10
- No audit log of what each Console user did is described in the Redpanda Console review.
- Many teams, shared clusters 3 out of 10
- Role-based access is licence-gated, and no per-team view of a shared cluster is described.
- Runs on Kubernetes 8 out of 10
- It ships as one stateless container with its own Helm chart, a clean pass; the TLS and Helm upgrade problems its review records come from running it beside Redpanda’s own operator and Admin API, which a Strimzi cluster does not have.
On Strimzi. Redpanda’s Console configuration documentation takes TLS certificates and a SASL block with SCRAM-SHA-512 or OAUTHBEARER, where OAuth uses a client id, client secret and token endpoint. Console is written in Go, so Strimzi’s Java OAuth callback handler does not apply to it. The Redpanda Console review covers its Helm record.
Where it falls short. A team on Strimzi buys a Redpanda licence to get RBAC, SSO or masking, and that price is not published. Each deployment reaches one broker cluster, so a team with Strimzi clusters for development, staging and production runs three Consoles.
Rank 8 Conduktor
conduktor.io
62 out of 100 Total
- Cost a year
- 25 Console seats at $1,200 is $30,000 plus $2,880 operator time, so $32,880; Gateway Core adds $60,000 and Gateway Protect, which carries encryption and masking, a further $30,000 (modelled)
- Strimzi sign-in
- Java client properties; SCRAM documented
- Deployment
- Console on PostgreSQL 13+; data-level controls through Gateway, a proxy
- Out of the data path ×2 weight, this criterion counts 2 times toward the total
- 3 out of 10
- mTLS, SCRAM and OAuth on Strimzi ×2 weight, this criterion counts 2 times toward the total
- 7 out of 10
- Production access on request ×2 weight, this criterion counts 2 times toward the total
- 6 out of 10
- Audit trail per person ×2 weight, this criterion counts 2 times toward the total
- 8 out of 10
- Many teams, shared clusters
- 7 out of 10
- Runs on Kubernetes
- 7 out of 10
Why these scores for Conduktor
- Out of the data path 3 out of 10
- Console needs PostgreSQL 13 or later, and its encryption, data-level masking and Virtual Clusters only work when client traffic goes through Gateway, a proxy in the data path.
- mTLS, SCRAM and OAuth on Strimzi 7 out of 10
- Console takes Apache Kafka Java client properties, with SCRAM-SHA-512 as its documented example, and the Conduktor review records Strimzi among the platforms it connects to, with nothing on Strimzi’s OAuth handler.
- Production access on request 6 out of 10
- Masking can exempt users or groups, which beats every other tool here on who sees unmasked data, and cross-team access requests are approved by the owning team, but no expiring grant is described and topic creation that passes policy is a direct API call.
- Audit trail per person 8 out of 10
- Console logs produce, consume and admin requests across more than 70 event types with user, IP and timestamp, browsable in the UI and exported as CloudEvents.
- Many teams, shared clusters 7 out of 10
- Permissions are set per user or group across clusters, but a user in several groups inherits the most permissive grant, and Virtual Clusters for multi-tenancy need Gateway.
- Runs on Kubernetes 7 out of 10
- Console and Gateway each have documented Kubernetes deployments, and Console needs a PostgreSQL database alongside it.
On Strimzi. The Conduktor review records Strimzi among the platforms Console connects to, and notes that connecting it to a Strimzi-managed Kafka Connect cluster means exposing the Connect REST service and disabling KafkaConnector resources. Conduktor’s Gateway documentation describes Gateway as a Kafka proxy between client applications and brokers, which is where its encryption, masking of the data itself and virtual clusters for multi-tenancy are enforced.
Where it falls short. Console connects to Strimzi directly and needs PostgreSQL. Conduktor’s data-level controls, such as encryption, masking of the data itself and virtual clusters for multi-tenancy, run in Gateway, a Kafka proxy that client applications connect through, which puts Gateway in the data path for those clients. On AWS Marketplace, Conduktor Enterprise lists Gateway Core at $60,000 a year, Gateway Protect, the add-on for encryption and masking, at a further $30,000, and Console at $1,200 a seat for the first 100 seats.
Compare Conduktor review
What teams on Strimzi (Kafka on Kubernetes) need
Strimzi runs Kafka on Kubernetes through operators and custom resources: a team declares the cluster, its topics, its users and its Kafka Connect clusters as YAML, and the operators make the brokers match. That gives a platform team GitOps for the cluster itself. It does not give engineers a way to read the records in a topic, and Kubernetes RBAC decides who may change a custom resource, not who may read a record or reset a consumer group. Everything on this page is about what a tool adds on top of Strimzi, not about replacing it. For Kafka that is not run by an operator, see the best Kafka tools for self-managed Apache Kafka, and for the broader field of Kafka tools on any distribution, see the best Kafka management tools.
mTLS, SCRAM and OAuth on Strimzi. The first requirement is signing in the way the listeners are configured. Strimzi listeners authenticate clients with mTLS, SCRAM-SHA-512 or OAuth 2.0. The Cluster Operator keeps the Cluster CA public key in a <cluster>-cluster-ca-cert Secret, and the User Operator writes each KafkaUser’s PKCS #12 keystore and its password, or its SCRAM password, to a Secret of its own, as Strimzi’s deployment documentation describes. A tool on Kubernetes should mount those Secrets rather than hold copies, and for OAuth it needs a client that can fetch a token from the identity provider, which for Java tools is usually Strimzi’s own OAuth client library. Kpow publishes a Strimzi guide for all three mechanisms and a build that bundles the OAuth library, and AKHQ bundles the same library. StreamsHub Console takes the listener and the KafkaUser straight from Strimzi’s resources. Redpanda Console documents the three mechanisms for Kafka in general, while Kafbat UI and Lenses document SSL and SCRAM but not OAuth.
The tools differ most on OAuth 2.0, because fetching a token needs code in the client. Strimzi’s own components, Kafka Connect, MirrorMaker 2 and the HTTP Bridge, sign in with the login callback handler from Strimzi’s OAuth library, and its documentation notes that Strimzi does not decide which OAuth 2.0 flow a client uses, which depends on the authorization server and the client. A Java tool can follow Strimzi’s recipe only when that library is inside its image, which is why Kpow publishes a separate -strimzi build and AKHQ ships the library in its standard image. Recent Apache Kafka clients also include a production OAUTHBEARER implementation of their own, which fetches a token from a token endpoint with the client credentials grant, so a Java tool on a current client library has a second route that uses no Strimzi code. That route has to be tested against the token settings on the listener, and the scores on this page go to the recipes each tool documents.
mTLS on Strimzi comes with a renewal date. The cluster CA and clients CA certificates are valid for 365 days by default, and renewal starts 30 days before they expire. When the clients CA is renewed the User Operator regenerates every user certificate, and Strimzi’s documentation states that the operators do not manage client applications, which have to be using the renewed credentials before the old ones expire or they can no longer connect. A Kafka UI is one of those clients. Where its truststore and keystore are mounted from the Secrets as volumes, Kubernetes updates the mounted files after a Secret changes, except for a Secret mounted through subPath, which does not receive the update. A tool whose certificates were copied into its own configuration keeps the old ones. The renewal therefore belongs in the runbook of every tool on this page that connects over TLS. Mount the Secrets instead of copying them, and restart the tool’s pod after each renewal. Strimzi’s maintenance time windows let a team choose when the renewal itself runs, so the restart can be planned for the same window. A listener that presents a certificate from the organisation’s own CA is a separate case, because the tool then has to trust that CA, which is not the one in Strimzi’s cluster CA Secret; Strimzi’s documentation on custom listener certificates covers the configuration.
Working with the operators. The second is working with the operators rather than against them. Strimzi’s Topic Operator reverts configuration changes made outside a KafkaTopic resource for any topic that has one, and leaves topics without one alone. With the strimzi.io/use-connector-resources annotation on a Kafka Connect cluster, changes made through the Connect REST API are reverted too. The User Operator manages the ACLs, quotas and SCRAM credentials of every user it is not told to ignore, so ACL changes for those users also belong in their KafkaUser resources. The best tools to manage Kafka topics at scale and best tools to manage Kafka ACLs pages score the Topic and User Operators against the other ways of doing this. So on Strimzi a Kafka UI is mostly where engineers read data, watch consumer groups, reset offsets and act on resources that are not owned by a custom resource, while changes to operator-managed topics and connectors stay in Git. Every tool on this page is in the same position here; none of them writes KafkaTopic resources for you. StreamsHub Console at least marks which topics and connectors the operators manage.
On Kafka Connect, Strimzi’s documentation on limiting access to the Kafka Connect API states that when KafkaConnector resources are not in use, the default Kubernetes RBAC rules do not limit access to the Connect REST API, and it describes how someone with that access could point a connector at a database of their own to capture its credentials. On a Connect cluster run that way, the roles in the tool people use become the per-person control over connectors, because Kubernetes RBAC does not provide one. With KafkaConnector resources switched on, Strimzi can also restart failed connectors and tasks itself: autoRestart retries with a growing back-off and, by default, indefinitely unless maxRestarts is set. What an operator needs from a tool there is the state of each task and the stack trace of the failure, since the restart is already handled.
Strimzi’s releases also decide which Kafka versions a cluster can run. Strimzi 0.46 added Kafka 4.0 and removed support for ZooKeeper-based clusters in the same release, so every cluster on a current Strimzi runs in KRaft mode, and a UI that still reads ZooKeeper for metadata has nothing to connect to.
Production access on request. The third is the governance Kubernetes leaves open. When twenty engineers share one tool, the KafkaUser the tool connects as is the tool’s own, so per-person roles, production access that is granted on request and expires, masking of sensitive fields and an audit trail of who read or changed what have to come from the tool.
On Strimzi the credential that reads a topic is a Kubernetes Secret. By default only Kubernetes cluster administrators can view, create, edit or delete Strimzi resources until someone is given the strimzi-view or strimzi-admin role, and Kubernetes’ own good practices for Secrets say to restrict get, watch and list access to Secrets for people. An engineer who is handed a KafkaUser Secret so that they can run the console consumer holds everything in that user’s ACLs for as long as the credential is valid, because the ACLs are declared in the KafkaUser resource and nothing in them expires. Creating a KafkaUser for each engineer produces one long-lived certificate or password per person, and a Git change to give access followed by another to take it away. A tool that connects as one KafkaUser and signs people in through the identity provider keeps the Secrets out of people’s hands, and its grants can carry an end time, which a KafkaUser’s ACLs do not have.
Audit trail per person. Kubernetes has an audit log, and it has to be switched on. The Kubernetes auditing documentation states that the API server logs no events unless it is started with an audit policy file. Where a policy is in place, the log shows who changed a KafkaTopic or KafkaUser resource, and Git shows the same change as a commit. Neither record covers Kafka clients, because reading a topic, resetting a consumer group’s offsets and producing a test message are Kafka protocol requests made under the tool’s KafkaUser and never pass through the Kubernetes API. A record of which engineer made them exists only where the tool writes one, with the person’s name from the identity provider and the reads included.
Many teams, shared clusters. Kubernetes namespaces look like the boundary between teams, and Strimzi’s operators do not use them that way. A Topic Operator watches a single namespace, and so does a User Operator, by default the namespace of the Kafka cluster. The KafkaTopic and KafkaUser resources of every team on a shared cluster therefore sit together in one namespace, where a Role scoped to a team’s own namespace does not reach them. What separates teams on the cluster is the convention in Apache Kafka’s multi-tenancy guidance, topic names that begin with the team’s prefix, with each KafkaUser’s ACLs declared against the same prefix. A tool gives a team a view of its own when its scoping can follow those prefixes, which is how Kpow tenants are defined, by including or excluding topics and groups by name, prefix or suffix. Quotas work per KafkaUser as well. Strimzi sets quotas in the KafkaUser resource so that a user does not overload the brokers, and because the tool connects as one KafkaUser, a quota on that user caps what people’s searches can take from a cluster that applications share.
Out of the data path. One requirement cuts across all three: where the tool runs. A tool that runs as one more pod in the cluster and connects to the brokers the way any Kafka client does adds nothing to the path producers and consumers take. A tool whose controls are enforced by a proxy that every client connects through becomes part of that path, and it has to be sized, kept available and kept in step with every client upgrade, and a tool with a database of its own is one more stateful workload in the cluster. On Strimzi that workload would sit in the same Kubernetes cluster the operators keep reconciling, with its own storage, upgrades and failure modes. Kpow is one container with no external database, installed in your own environment and out of the data path. It connects to the listeners with the same configuration as a Kafka producer or consumer and keeps its state in topics on the same cluster, so applications keep talking to the brokers directly and there is no second stateful workload to run. Those topics have no KafkaTopic resource, and Strimzi’s Topic Operator does not interfere with topics managed outside its resources, so the operator leaves them alone once Kpow’s KafkaUser has the ACLs to create and use them. Conduktor Console also connects to the brokers directly, with a PostgreSQL database of its own; Conduktor’s data-level controls, such as encryption, masking of the data itself and virtual clusters, run in Conduktor Gateway, a Kafka proxy that client applications connect through.
Strimzi’s own account of how clients reach Kafka on Kubernetes explains what running beside the cluster means in practice. A Kafka client connects directly to the broker that leads each partition, so a Kubernetes Service can carry only the first bootstrap connection and every broker needs an address of its own. A tool that runs in the cluster uses the internal listener and its bootstrap service, and nothing new is exposed outside Kubernetes. A proxy has to solve that per-broker routing again for every application that connects through it, which makes it a component to deploy and run in its own right. Kroxylicious, the open-source Kafka proxy, describes itself as a stand-alone component deployed between the applications and the cluster, with applications connecting to it instead of to the brokers. Strimzi also creates a NetworkPolicy for every listener, which allows connections from all namespaces by default; a team that restricts a listener with networkPolicyPeers adds the tool’s pod as one more permitted peer and changes nothing for its applications.
Runs on Kubernetes. The tools here divide on whether they talk to Kubernetes at all. StreamsHub Console gets its Strimzi-native connection by reading Strimzi’s resources through the Kubernetes API, and the ClusterRole in its install files lets the console get, watch and list Kafka, KafkaTopic, KafkaUser and KafkaConnector resources, patch Kafka and KafkaRebalance resources, and list pods. Those permissions are what let it mark operator-managed topics and pause reconciliation, and a platform team reviews them like any other grant on the Kubernetes API. A tool that connects only as a Kafka client needs no Kubernetes API access. The Kpow chart’s default values set automountServiceAccountToken: false, so the pod carries no Kubernetes API credential, and they run the container as a non-root user with privilege escalation off and all capabilities dropped, three of the controls in the Kubernetes restricted Pod Security Standard. The restricted profile also requires a seccomp profile, which the chart leaves to the team’s podSecurityContext.
Who runs Kpow on Strimzi (Kafka on Kubernetes)
Two Kpow customers have described in public running their own Kafka on Kubernetes with Kpow beside it: Claritev, on Rancher Kubernetes and moving to Oracle Kubernetes Engine, and NORD/LB, on Confluent’s Kubernetes operator rather than Strimzi; the best Kafka management tools for Confluent Platform page scores the options for that setup. Each card is tagged with the rubric criteria its evidence speaks to, and the grey tags name the other things the source covers.
Which customer shows which criterion
- Production access on request
- NORD/LB
- Audit trail per person
- Claritev
- Many teams, shared clusters
- Claritev
- Runs on Kubernetes
- Claritev and NORD/LB
-
Claritev
- Runs on Kubernetes
- Many teams, shared clusters
- Audit trail per person
- Rancher to OKE migration
- Broker out of sync
- Four production clusters
Claritev’s middleware team runs its own Kafka for claims processing at millions of messages a day, with Kpow across four production clusters and two pre-production, and is moving that self-managed Kafka from Rancher Kubernetes to Oracle Kubernetes (OKE), with Factor House providing the setup instructions for running Kpow on OKE. Kpow’s role-based access separates elevated, auditable admin access for the middleware team from read-only access for developers in production. In one incident Kubernetes reported every pod healthy and Prometheus raised no alert while a cluster was degraded: “We went into Kpow and could see the brokers were out of sync. It showed us exactly which broker wasn’t running.” Dave Gale, who leads the team, puts the troubleshooting saving at about half: “It’s easily a 50 percent time saving for us.”
Source: Claritev case study
-
NORD/LB
- Runs on Kubernetes
- Production access on request
- Two-step authorization
- Debugging time
- 200+ topics
The German regional bank runs Kafka on Confluent’s Kubernetes operator, with more than 200 topics across on-prem and cloud environments, and uses Kpow beside it. Its case study describes two-step authorization, where users authenticate to Kpow and then act through technical users with scoped permissions, which let the team narrow what people can see in production. Erik Schumann of the central Kafka team: “Thanks to Kpow, we halved the time needed for debugging.”
Source: NORD/LB case study
How a team runs Strimzi (Kafka on Kubernetes) with Kpow
Installing it in the cluster. A team adds the Factor House chart repository and installs Kpow with the Helm charts, the kpow chart for Enterprise or kpow-ce for Community Edition, into the same Kubernetes cluster as the brokers or any cluster that can reach a listener. For OAuth it sets the image tag to the -strimzi build, for example factorhouse/kpow:96.5-strimzi. The chart’s values, published in the helm-charts repository, take volumes, volumeMounts and envFromSecret, which is how the Strimzi Secrets and the licence reach the pod. Kpow is designed to run as a single instance, and the chart sets one replica with autoscaling that stops at one, because only one instance may write Kpow’s internal topics on its primary cluster; teams that want a standby use the active/passive model in the deployment notes. The chart is listed on Artifact Hub under a verified publisher, where a security report from a scan of the container image is published for each chart version. A cluster with a read-only root filesystem policy enables the chart’s ephemeralTmp volume, since Snappy compression needs one writable directory. Docker Hub also lists a -rh-ubi tag, built from Red Hat’s Universal Base Image, for clusters that only admit UBI-based images; it is a separate tag from the -strimzi build.
A values file for mTLS. The Cluster Operator writes ca.p12 and ca.password to the <cluster>-cluster-ca-cert Secret, and the User Operator writes user.p12 and user.password to a Secret named after the KafkaUser. Mount both read-only, point Kpow at the files, and put the two passwords and the licence in a Secret of your own that envFromSecret loads:
image:
tag: "96.5-strimzi" # only needed for OAuth 2.0
envFromSecret: kpow-secrets # licence, SSL_TRUSTSTORE_PASSWORD, SSL_KEYSTORE_PASSWORD
env:
BOOTSTRAP: "my-cluster-kafka-bootstrap.kafka.svc:9093"
SECURITY_PROTOCOL: "SSL"
SSL_TRUSTSTORE_TYPE: "PKCS12"
SSL_TRUSTSTORE_LOCATION: "/strimzi/cluster-ca/ca.p12"
SSL_KEYSTORE_TYPE: "PKCS12"
SSL_KEYSTORE_LOCATION: "/strimzi/user/user.p12"
volumes:
- name: cluster-ca
secret:
secretName: my-cluster-cluster-ca-cert
- name: kpow-user
secret:
secretName: kpow # the KafkaUser's name
volumeMounts:
- name: cluster-ca
mountPath: /strimzi/cluster-ca
readOnly: true
- name: kpow-user
mountPath: /strimzi/user
readOnly: true
Both Secrets are mounted as whole volumes with no subPath, so when Strimzi renews the cluster CA or the user certificate the new files reach the pod, and a kubectl rollout restart of the Kpow deployment after the renewal loads them.
Signing in to the cluster. The team creates a KafkaUser for Kpow with the ACLs listed in Kpow’s minimum ACL permissions, then mounts the <cluster>-cluster-ca-cert Secret as the truststore and the KafkaUser’s Secret as the keystore for mTLS, or passes the SCRAM-SHA-512 password. Kpow creates its internal topics on the first cluster it connects to, so that KafkaUser’s ACLs include creating, reading and writing those topics, which the same page lists. For OAuth 2.0, Kpow’s Strimzi documentation sets SASL_MECHANISM=OAUTHBEARER with Strimzi’s JaasClientOauthLoginCallbackHandler and reads the client id, secret and token endpoint from environment variables, with a second recipe for Keycloak running on Kubernetes behind an internal CA.
Signing people in. Engineers sign in to Kpow through SAML, including Okta, Microsoft Entra ID and Keycloak, the same identity provider many Strimzi clusters use for broker OAuth, through OpenID Connect, or through LDAP, so access follows the company directory rather than the KafkaUser the pod connects as. The options for people’s sign-in are compared in best tools for Kafka SSO integration.
Connect and schemas. Kpow reaches a Strimzi Kafka Connect cluster through its REST service, configured as described in Kafka Connect configuration, and shows connector and task state in its Kafka Connect view. Where the Connect cluster uses KafkaConnector resources, the team reads state in Kpow and changes connectors in Git, because the operator reverts REST changes there. Where those resources are off, Kpow’s CONNECT_CREATE and CONNECT_EDIT permissions decide who may add or change a connector, which matters because Kubernetes RBAC does not limit the Connect REST API in that mode. Kpow connects to Apicurio Registry and other Confluent-compatible registries, per its schema registry documentation, so data inspect shows records decoded, and engineers filter them across topics with kJQ.
Watching lag and brokers. Kpow shows each consumer group down to partition level and resets, clears or skips offsets from the same view, and its brokers view shows broker configuration and detects under-replicated partitions. Kpow can also alter partition reassignments and elect partition leaders from the topic view, while Strimzi’s KafkaRebalance resource drives Cruise Control; the best tools to reassign Kafka partitions page compares the two approaches. Kpow’s own metrics, including consumer group lag, are exported to Prometheus, so they sit beside Strimzi’s broker metrics and Grafana dashboards. Strimzi’s own route to lag is Kafka Exporter, which its documentation says relies on data from the __consumer_offsets topic and so on consumer groups that are actively committing offsets, and which delivers lag as a Prometheus metric for a dashboard. Kpow shows the figure beside the group’s members and the offset reset, so the engineer who sees the lag can act on it under their own role.
Giving teams their own view of a shared cluster. Tenants limit which topics, groups and connectors each role can see, RBAC sets what each person may do, staged mutations hold an offset reset or topic deletion for approval, temporary policies grant production access that expires at a set time, and data policies mask sensitive fields in data inspect results on the server.
Keeping the record. The audit log records each action with the user from the identity provider, and a webhook sends those records to Slack, Microsoft Teams or any endpoint. That covers what the Kubernetes API audit log does not see: who read which topic and who reset which consumer group.
From the terminal. Engineers who already work in kubectl and k9s can use the Factor House terminal UI, in beta, for cluster health, lag, connector state and a quick look at data; it needs Kpow 96.5 or later with the API enabled. Changes made from the terminal go through the same staged approvals as the web UI. In the September 2026 product update it was described as the answer to what k9s for Kafka would look like.
Running Strimzi beside other clusters. Kpow’s documentation lists Strimzi among its Kafka providers, alongside Amazon MSK, Confluent, Aiven, Redpanda and self-managed Apache Kafka, so one instance can manage a Strimzi cluster beside the others a team runs, and a team moving workloads from a managed service to Strimzi keeps the same tool, roles and audit trail on both sides of the move; the Kafka UI tools for Amazon MSK page covers the MSK side.
No tool here leads on every criterion. OAuth against Strimzi needs Kpow’s separate -strimzi image, and like every tool here it cannot change topics or connectors that Strimzi’s operators own without those changes being reverted. It governs people working through Kpow, so applications keep their own KafkaUser credentials and ACLs. StreamsHub Console reads its connection straight from Strimzi’s resources and shows which topics the operators manage, Lenses has the stronger query model with SQL over topics, and Strimzi’s own resources need nothing new deployed at all.
Kpow live demo
See Kpow before it goes into your Kubernetes cluster
The live Kpow demo runs on two Amazon MSK clusters rather than Strimzi, and shows the same brokers, topics, consumer groups, Kafka Connect and schema registry views a team gets on Strimzi, with no signup. Switch the cluster picker to MSK Primary to see its Kafka Connect cluster.
For platform teams running Kafka with Strimzi.
Try the Kpow demoFAQ
What is the best Kafka UI for Strimzi?
On this page’s rubric, Kpow, with 90 of 100 points: it documents mTLS, SCRAM-SHA-512 and OAuth 2.0 against Strimzi listeners, installs from a Helm chart as one pod with no database, adds time-boxed production access, staged approvals, tenants and an audit log that names the person, and stays out of the data path. Kafbat UI is the highest-scoring free option, one point ahead of StreamsHub Console, the open-source console built for Strimzi-managed clusters.
Does Strimzi have a Kafka UI or console?
Strimzi’s own documentation describes no web UI for Kafka data. It manages Kafka through custom resources and kubectl, publishes example Prometheus configuration and Grafana dashboards, and offers Kafka Exporter for consumer group lag. The closest thing to a Strimzi console is StreamsHub Console, a separate Apache 2.0 project whose repository describes it as a web console for Kafka clusters managed by the Strimzi Cluster Operator; it browses topics and consumer groups, shows KafkaUser and KafkaRebalance resources and can pause reconciliation. Kpow, Kafbat UI and AKHQ connect to a Strimzi cluster as ordinary Kafka clients.
How does a Kafka UI connect to Strimzi over mTLS?
Create a KafkaUser with tls authentication, then mount the <cluster>-cluster-ca-cert Secret as the truststore and the KafkaUser’s Secret, which holds user.p12 and user.password, as the keystore. Kpow’s Strimzi documentation gives the exact settings, and AKHQ and Kafbat UI take the same values as ordinary Kafka client properties. StreamsHub Console instead names the KafkaUser in its Console resource and reads the credentials itself.
Which Kafka UI works with Strimzi’s OAuth 2.0?
Kpow documents OAuth 2.0 against Strimzi with Strimzi’s callback handler, in its -strimzi image, including an identity provider behind an internal CA. AKHQ bundles Strimzi’s OAuth client and documents a Keycloak example. Redpanda Console documents OAUTHBEARER for Kafka in general, without Strimzi-specific guidance; Kafbat UI and Lenses publish no OAUTHBEARER guide.
Will a Kafka UI conflict with Strimzi’s Topic Operator?
On topics that have a KafkaTopic resource, yes: Strimzi reverts configuration changes made outside the resource, whichever tool makes them. Topics without a KafkaTopic resource are left alone. The same applies to connectors when KafkaConnector resources are switched on. Teams use a UI such as Kpow to read data, watch consumer groups and reset offsets, and keep changes to operator-managed resources in Git.
Is there a free Kafka UI for Strimzi?
Kpow Community Edition is free on up to 3 clusters and 10 users and connects over mTLS or SCRAM-SHA-512 with standard Kafka client settings; Docker Hub lists the -strimzi build, which carries the OAuth libraries, for the Enterprise factorhouse/kpow image. Kafbat UI, AKHQ and StreamsHub Console are open source. RBAC, masking, staged approvals and the audit log need Kpow Enterprise. More free options are compared in the best free Kafka UI tools.
Can a Kafka UI manage Strimzi KafkaUser ACLs?
It can read them, and it can change ACLs for users the User Operator does not manage. Strimzi’s User Operator manages the ACLs, quotas and SCRAM credentials of every user it is not configured to ignore, so for those users the KafkaUser resource stays the place to change them. Kpow’s ACL management lists, clones, creates and deletes ACLs on the cluster, and StreamsHub Console shows each KafkaUser’s authentication type and ACLs.
How much memory does Kpow need on Kubernetes?
The Kpow Helm chart requests 2 CPUs and 8 GiB by default, with requests equal to limits for Guaranteed QoS, which is sized for an instance managing several clusters. For one Strimzi cluster the Helm documentation gives 1 CPU and 2 GiB as the suggested minimum. Kpow keeps its state in Kafka topics, so it needs no database.
Can Kpow use Keycloak on Strimzi?
Yes, in two places. Kpow’s Strimzi documentation has an OAuth 2.0 recipe for Keycloak running on Kubernetes behind a self-signed or Strimzi cluster CA, using the -strimzi image, and engineers can sign in to Kpow itself through Keycloak over SAML, so one identity provider covers both the brokers and the people.
Does a Kafka UI need to sit in the data path to govern access on Kubernetes?
No. Kpow runs as one pod, connects to the Strimzi listeners like any Kafka client and applies roles, masking, approvals and the audit trail to the people working through it, so producers and consumers keep connecting straight to the brokers. Conduktor Console also connects directly, while Conduktor’s data-level controls run in Gateway, a Kafka proxy that client applications connect through.
What happens to a Kafka UI when Strimzi renews its certificates?
Strimzi’s cluster CA and clients CA certificates are valid for 365 days by default and are renewed 30 days before they expire, and the User Operator regenerates user certificates when the clients CA is renewed. Strimzi’s documentation on certificate renewal for client applications states that its operators do not manage client applications, which must use the renewed credentials before the old ones expire. A UI that mounts the <cluster>-cluster-ca-cert Secret and its KafkaUser Secret as volumes receives the new files, unless they are mounted with subPath, and should be restarted after the renewal. A UI configured with copied certificates has to be given the new ones by hand.
Does a Kafka UI for Strimzi need access to the Kubernetes API?
Only if it reads Strimzi’s custom resources. StreamsHub Console does, and the ClusterRole in its install files lets it get, watch and list Strimzi resources, patch Kafka and KafkaRebalance resources and list pods. A UI that connects as a Kafka client reads everything through the listeners. Kpow’s Helm chart sets automountServiceAccountToken: false by default, so its pod holds no Kubernetes API token.
Does the Kubernetes audit log show who read a Kafka topic?
No. The Kubernetes API server’s audit log records requests to the Kubernetes API, and only when an audit policy is configured, so it can show who changed a KafkaTopic or KafkaUser resource. Reading records and resetting offsets are Kafka requests made by a client, which on a shared UI is the UI’s own KafkaUser. Kpow records each action, data inspect queries included, with the user from the identity provider.
How these tools were scored
Five of the six criteria start from Strimzi’s documentation or from what Kubernetes leaves open; the sixth is where the tool runs. They are listed here in order of weight. Each criterion is scored 0 to 10: 10 where a tool is the only one here doing it or clearly the best, 8 for a clean documented pass, 5 or 6 for partial support or support that needs work the reader must verify, 1 to 4 for a weak or indirect form, and 0 where it is absent.
1. Out of the data path (counts twice). The tool should run inside your own environment, reach the brokers over the same network your applications use as an ordinary Kafka client, and keep no data outside your own cluster. Scored lower: tools that need an external database of their own, and tools whose controls work only when application traffic passes through a vendor’s proxy. A self-hosted container with no external database and no proxy scores 9, a tool with a database of its own 6, one with several databases or a component on the brokers 4, and one that needs both a database and a proxy for its controls 3; 10 is kept for an option with nothing to deploy at all, here Strimzi’s own resources. This criterion is scored the same way on every Factor House page that uses it, and only its weight changes with the reader.
2. mTLS, SCRAM and OAuth on Strimzi (counts twice). Strimzi listeners authenticate clients with mTLS, SCRAM-SHA-512 or OAuth 2.0, and Strimzi keeps the certificates and passwords in Kubernetes Secrets. A tool scores well here when it documents all three against Strimzi, including how to reach an identity provider behind an internal CA, and 10 when it takes its connection straight from Strimzi’s own resources. It scores 7 when it documents all three mechanisms for Kafka in general but nothing for Strimzi, or when it takes any Apache Kafka Java client property and Factor House’s review of it records it connected to Strimzi, and 6 when it documents two of the three.
3. Production access on request (counts twice). Kubernetes RBAC controls the custom resources, not who may read production data or act on a consumer group. This criterion scores time-boxed grants, approval steps before destructive actions and masking of sensitive fields, and uses the same scores as the banking page for every tool scored there. Redpanda Console uses the score from the self-managed Apache Kafka page.
4. Audit trail per person (counts twice). The Kubernetes API audit log can show who changed a custom resource, but not who read a topic or reset an offset through a tool. This criterion scores an audit trail that names the person from the directory, covers reads as well as changes, and can be read without building a consumer first. Scores match the banking page for every tool scored there.
5. Many teams, shared clusters (counts once). A Strimzi cluster is often shared by several application teams. This criterion scores whether a tool can scope what each team sees, not only what it may do. Scores match the banking page for every tool scored there. The masking options are compared in Kafka data masking tools.
6. Runs on Kubernetes (counts once). A tool for a Strimzi team should install from a maintained Helm chart, run as one pod, take its credentials from Secrets and need nothing else in the cluster. Most tools here pass; tools with recorded Kubernetes problems or a database of their own score lower, problems recorded only when a tool runs beside another vendor’s operator do not count, and Strimzi’s own resources score 10.
Costs are modelled for one production Strimzi cluster and 25 engineers at $120 per engineer hour, using the same hours per tool class as Factor House’s other comparison pages. Tools with a licence carry the published price plus 2 hours a month to run. The open-source UIs, Kafbat UI, AKHQ, StreamsHub Console and Redpanda Console’s free build, carry 6 hours a month, $8,640 a year, to run, secure and keep current. Lenses’ Team licence stops at 15 users on one cluster, so Lenses is priced at its smallest AWS Marketplace listing, $2.055 an hour on t2.large before the EC2 charge; a team running it outside AWS gets a quoted licence instead. Strimzi’s own resources have no licence and nothing new to run, and the Kafka CLI they leave record reading to is modelled like the other tools with no access control of their own, at 8 hours a month, $11,520 a year. Kpow’s $7,380 uses the price of $4,500 per cluster a year with 100 users included. Kpow Community Edition is free for 3 clusters and 10 users, so a 25-engineer team is on Enterprise. For free options compared at any team size, see the best free Kafka UI tools.
The criteria map onto the Strimzi features in the figure below.
Every option is scored from 0 to 10 on each criterion, from the evidence and sources this page cites, and the reason for each score is on its card. The criteria are weighted: Out of the data path counts twice, mTLS, SCRAM and OAuth on Strimzi counts twice, Production access on request counts twice, Audit trail per person counts twice, Many teams, shared clusters counts once and Runs on Kubernetes counts once, for a total out of 100. Out of the data path, sign-in, production access and the per-person audit trail count twice. A team that chose Strimzi runs its own Kafka in its own Kubernetes cluster, and a tool that applications connect through, or that brings a database of its own, is one more stateful component inside that cluster to size, secure and keep available. A tool that cannot sign in over the listener's mTLS, SCRAM or OAuth configuration cannot be used at all. Kubernetes RBAC decides who may change a custom resource, not who may read a record in production or who reset a consumer group, so production access granted on request and an audit trail that names the person are the controls the platform does not already give. Shared clusters and Kubernetes fit count once, because most tools here install cleanly from a Helm chart or an operator, and per-team views add less than the per-person controls above. This page is published by Factor House, which makes Kpow. Every option is scored on the same rubric and the same sources: Kpow's per-criterion scores are set the same way as every other option's and are not adjusted, and the weights apply to every option alike. Kpow ranks first on its total of 90 out of 100. The other options follow by total. Conduktor is listed last whatever its total; on its total of 62 it would place third.