Skip to content

Dimense-Studio/MLV

Repository files navigation

MLV — Mac Linux Virtualization for Kubernetes

Bare-metal–like Linux virtualization on Apple Silicon. Built for serious Kubernetes developers.


🚀 Overview

MLV (Mac Linux Virtualization) is a next-generation virtualization and cluster orchestration platform for macOS on Apple Silicon (M-series), designed specifically for developers who need real Linux environments, true multi-node clusters, and advanced storage capabilities—without the limitations of existing tools.

As traditional approaches (including Asahi Linux on newer chips like M4/M5) fall short, MLV provides a native, high-performance alternative that bridges the gap between macOS and production-grade Linux infrastructure.


⚡ Why MLV?

Modern Kubernetes development on macOS is constrained:

  • Lightweight tools lack real kernel parity
  • VM solutions are isolated and not cluster-native
  • Storage systems like Longhorn fail or are unsupported
  • Multi-node simulation is inefficient or impossible
  • Hardware capabilities (e.g., Thunderbolt networking) are underutilized

MLV solves this.


🧠 Core Philosophy

MLV is built around one principle:

"Local should behave like production."

That means:

  • Real Linux distributions (not containers pretending to be VMs)
  • Real networking (not just localhost tricks)
  • Real storage layers (block devices, replication, persistence)
  • Real clustering (multi-node, multi-host, scalable)

🔥 Key Features

🖥️ Near Bare-Metal Linux VMs

  • Run full Linux server distributions (Debian, Ubuntu, etc.)
  • Optimized for Apple Silicon virtualization framework
  • Minimal overhead, maximum performance

☸️ Kubernetes-First Design

  • Native cluster provisioning (single-node → multi-node)
  • Works locally, across devices, or hybrid
  • Built for real workloads, not demos

🔗 Multi-Node Clustering

  • Create clusters across:

    • Local VMs
    • Remote MLV nodes
    • Multiple Macs via Thunderbolt networking
  • Automatic node discovery & orchestration

💾 Advanced Storage (Longhorn-Ready)

  • Multiple disk types:

    • System disks
    • Data volumes
    • Replicated storage
  • Designed to support Longhorn, solving a major limitation in other tools

🌐 Real Networking

  • WireGuard-based secure networking between nodes
  • Cross-machine cluster connectivity
  • Predictable IP addressing and routing

⚡ Thunderbolt Cluster Fabric

  • Ultra-low latency node interconnect
  • High throughput cluster communication
  • Ideal for local datacenter-like setups

🧩 Extensible Architecture

  • Modular design for:

    • VM lifecycle
    • Networking
    • Storage orchestration
    • Cluster management

🆚 Comparison

Feature MLV OrbStack VMware Fusion
Real Linux kernel ⚠️ Partial
Multi-node Kubernetes ⚠️ Manual
Longhorn support
Thunderbolt clustering
Cross-device orchestration
WireGuard networking
Bare-metal-like behavior ⚠️

🏗️ Architecture (High-Level)

+---------------------------+
|        MLV CLI / UI       |
+------------+--------------+
             |
+------------v--------------+
|     Cluster Orchestrator  |
+------------+--------------+
             |
+------+------+-------------+
|             |             |
v             v             v
VM Engine   Network      Storage
            Layer        Engine
(Virtualization)  (WireGuard)   (Volumes / Replication)

🛠️ Use Cases

  • Local Kubernetes development with production parity
  • Multi-node cluster simulation on a single machine or multiple Macs
  • Edge cluster prototyping using Thunderbolt-connected devices
  • Testing distributed storage systems (Longhorn, etc.)
  • CI/CD infrastructure prototyping locally
  • Hybrid cluster setups (local + remote nodes)

🚀 Quick Start

1. Launch MLV (macOS Native App)

MLV is a native macOS application, not a background daemon. You must start it via Xcode.

Run from Xcode

open MLV.xcodeproj
  • Select your target (MLV App)
  • Click Run (▶)

The app initializes the virtualization engine, networking (WireGuard), and cluster services.


🔐 Networking

MLV uses WireGuard to:

  • Connect nodes across machines
  • Secure cluster communication
  • Enable hybrid/local clusters seamlessly

💾 Storage

Unlike traditional macOS virtualization tools:

  • Supports multiple block devices per VM
  • Enables distributed storage systems
  • Designed for Longhorn compatibility
  • Focus on persistence and replication

🌉 Multi-Device Clustering

MLV can connect multiple Macs into a single cluster fabric:

  • Thunderbolt for high-speed local clusters
  • WireGuard for remote nodes
  • Unified cluster control plane

🧪 Current Status

⚠️ Early development (actively evolving)

Core areas in progress:

  • VM lifecycle stability
  • Cluster orchestration engine
  • Storage subsystem (Longhorn integration)
  • Networking layer optimization

🤝 Contributing

MLV is an ambitious project—and it needs contributors.

We are looking for help in:

  • Apple Virtualization Framework optimization
  • Kubernetes automation
  • Storage systems (Longhorn, CSI)
  • Networking (WireGuard, routing)
  • Distributed systems design
  • UI/UX for cluster management

How to contribute:

  1. Fork the repository
  2. Create a feature branch
  3. Submit a pull request
  4. Join discussions & propose ideas

💡 Vision

MLV aims to become:

The standard platform for Kubernetes development on macOS.

A tool where:

  • Local clusters behave like cloud clusters
  • Developers are not limited by their OS
  • Apple Silicon hardware is fully utilized
  • Distributed systems can be built and tested anywhere

📣 Call to Action

If you've ever been frustrated by:

  • Broken Kubernetes setups on macOS
  • Missing storage support
  • Lack of real clustering
  • Tools that abstract too much

MLV is for you.

Help build it.


📜 License

MIT (planned)


⭐ Support the Project

If you believe in this vision:

  • Star the repository
  • Share it with other developers
  • Contribute code or ideas

MLV — Build real clusters. Locally. Without compromise.

About

Mac linux virtualization for kubernetes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages