Performance · measured 2026-10-29

Fast at production scale:
50,000 pods on 470 nodes,
first rows in 3 seconds.

The size of a large production cluster. We started KubeDrive and four other Kubernetes clients cold against the same clusters and timed what you see on screen. Same Mac, same kubeconfig, median of five runs.

3.0 suntil the first of 50,000 pods are on screen
10.4 suntil all 50,000 are listed; kubectl get pods -A takes 27 s
428 MBof memory with all 50,000 pods open, the whole process tree

Side by side

50,000 pods on 470 nodes: a large production cluster.

First rows

From launch to the first pod rows on screen. Less is better.
  • KubeDrive3.0 s
  • Headlamp6.4 s
  • kubectl get pods -A25.5 s
  • k9s26.4 s
  • FreelensNo list within 150 s—

Full list

Until the client shows all 50,000 pods. Less is better.
  • KubeDrive10.4 s
  • k9s26.4 s
  • kubectl get pods -A27 s
  • HeadlampNo object count—
  • FreelensNo list within 150 s—

Memory

Memory of the whole process tree with the list open. Less is better.
  • KubeDrive428 MB
  • Freelens530 MB
  • Headlamp590 MB
  • k9s2.6 GB

Aptakube's free plan opens clusters of up to 5 nodes, so it sits out the 470-node run. k9s and kubectl print everything at once, so their first rows are the full list. Feature by feature: KubeDrive next to each client.

For platform teams

Ready for the clusters your company runs.

Nothing to install in the cluster

No agent, no operator, nothing for security to review on the cluster side. KubeDrive uses the kubeconfig, SSO and RBAC you already have.

Cluster data stays on the laptop

KubeDrive talks to your API servers directly with your credentials. Cluster data never reaches our servers.

Safe on production by default

Production contexts are protected from the first launch: a red frame, and every change asks for the object's name. How it works

Light on work laptops

428 MB with 50,000 pods open on 470 nodes, where k9s takes 2.6 GB on the same cluster.

AI agents under control

Agents see only the clusters you share, and every change they propose waits for your Allow.

Why it is fast

Not a browser tab around kubectl: a native app with a Go core that does the heavy lifting before anything reaches the screen.

Tables, not objects

The API server sends the columns kubectl would print. 50,000 pods arrive as rows, not 50,000 full objects to parse.

First page first

The first batch shows at once; the rest streams in behind it while you already scroll and filter.

Its own table

Only the rows on screen exist in the page, so sorting and scrolling 50,000 pods stays smooth.

How we measured

The clusters

kind with kwok nodes: 4 nodes for 500 and 50,000 pods, 470 nodes for 50,000 pods. Colima VM, 4 CPU, 8 GB.

The method

Cold start, the client's own window recorded and read by OCR; clicks a client needs are made as soon as the item appears. Memory: the whole process tree, 30 s idle.

The machine

Your old laptop is enough. Measured on a 2018 MacBook Pro: Intel Core i7, 16 GB.

Versions

KubeDrive build of 2026-10-29, Aptakube 1.22.1, Headlamp 0.46.0, Freelens 2.0.0, k9s 0.51.0.

Scripts and raw results on GitHubRerun them on your own machine and clusters.

Running clusters this size?

The Team plan: Pro on every seat, given and taken back by email, one invoice a year. Tell us about your clusters.

Talk to us
Download for macOS
brew install --cask aleksskoz/tap/kubedrive

macOS 13 or later · Apple silicon and Intel · signed and notarized by Apple

Windows 10 1809 or later, Windows 11 · not code-signed yet: More info → Run anyway

sudo apt install ./kubedrive_0.6.3_amd64.deb

Debian 13, Ubuntu 24.04, Fedora 40 and newer · GTK 4 and WebKitGTK 6.0 come as dependencies