klimax is now marina. Same tool, new name since v0.3. Existing install? Migrate with marina migrate →
Documentation menu

marina vs. other tools

marina isn't trying to replace your Docker runtime — it's a purpose-built multi-cluster kind lab. Here's how it lines up against the usual macOS options, and why it's designed to run alongside them.

The short version

marina is the only one of these focused on running many kind clusters at once with pure L3 routing (real pod and LoadBalancer IPs), MetalLB in every cluster, and a hostname for every LoadBalancer Service across all of them. The others are great Docker/Kubernetes runtimes, but they're single-cluster and route via port-mapping.

Capability matrix

Aspect marina Rancher Desktop Colima OrbStack
Primary purpose Multi-cluster kind lab Docker/k3s desktop Docker/containerd Docker/K8s/VMs
Multiple clusters at once ✓ (up to 99) — — —
Kubernetes flavor kind (any version) k3s k3s (optional) k3s
Host→pod/Service routing Pure L3, no SNAT port-mapped port-mapped custom stack
MetalLB in every cluster ✓ — — —
Built-in registry mirrors ✓ (docker/quay/gcr) configurable — —
Coexists with other tools ✓ ✓ ✓ ✓
Usable as a plain Docker host ✓ how ✓ ✓ ✓
Zero-config hostnames for Kubernetes Services ✓ <svc>.<ns>.<cluster>.demo.internal, every cluster — how — — ✓ *.k8s.orb.local, one cluster
Zero-config hostnames for plain Docker containers — — — ✓ *.orb.local
Linux VMs beyond the container host — one VM only, but it’s a full Ubuntu you can use: marina shell — — ✓
Graphical interface Marina UI (read-mostly companion) ✓ full GUI — ✓ full GUI
Corporate proxy & custom CA support ✓ built in ✓ manual ✓

marina is open source under the MIT license. For the others, capabilities — not pricing or licensing — are what matter when you're deciding what to run, so that's what the matrix compares.

Designed to coexist

Lima mirrors every guest TCP port to 127.0.0.1 on the host. That's a convenience in isolation, but two Lima-based tools that both manage kind clusters will race to mirror the same API-server port (e.g. 7001) to 127.0.0.1 — and the kubeconfigs end up pointing at the wrong cluster.

marina avoids this by default: network.disablePortMirroring is true out of the box. With mirroring off, marina kubeconfigs use the VM's direct lima0 IP instead of 127.0.0.1, and every other Lima tool keeps mirroring its own ports unaffected — no configuration needed. Set it to false only if you run a single marina VM and prefer stable 127.0.0.1 kubeconfigs:

$ marina config edit          # set network.disablePortMirroring: false
$ marina destroy && marina up # VM-level setting; needs a fresh VM
❄

For OrbStack, Docker Desktop, and Podman Desktop there's nothing to configure either — each uses its own VM/bridge and coexists with marina out of the box. See how this works.

When to pick marina

  • You want several kind clusters at once — multi-team, multi-env, chaos testing.
  • You need pods and LoadBalancers reachable by real IP, without port-forward — and by name, under demo.internal, with no domain to own.
  • You want MetalLB and registry mirrors set up for you, in every cluster.
  • You're on Apple Silicon and want it self-contained — no separate Lima install.

When another tool fits better

If you just need one Docker runtime or a single small cluster, a general-purpose runtime — OrbStack, Colima, or Rancher Desktop — is simpler. marina earns its keep once you're juggling several clusters and want real, routable IPs across all of them.

More specifically:

If you want…Reach for
Hostnames for plain Docker containersOrbStack. *.orb.local names every container out of the box because OrbStack owns its whole network stack. marina names Kubernetes LoadBalancer Services — *.demo.internal, across every cluster — but not docker run containers.
Several Linux VMs alongside containersOrbStack. marina provisions exactly one VM. That VM is a usable Ubuntu 26.04 machine — marina shell drops you into it, and marina shell <command> runs something in it and pipes through — but marina will not create a second one, and managing a fleet of arbitrary Linux machines is not what it is for.
The fastest plain Docker engineOrbStack or Colima. They start in seconds and carry none of marina's cluster machinery. marina works fine as a Docker host, but a restart is on the order of fifteen seconds, not two.
A full GUI to manage everythingRancher Desktop or OrbStack. Marina UI is a companion for watching state, not a replacement for the CLI.
A drop-in Docker Desktop replacement for a whole teamRancher Desktop or OrbStack. marina has no installer beyond Homebrew and no policy controls.

None of these are on marina's roadmap: it is deliberately a lightweight provisioner for local Kubernetes, not a general desktop container platform. The good news is that it coexists with all of them — you can run OrbStack for day-to-day Docker and marina when you need clusters.

See also