docs/content/en/installation/compatibility-matrix/_index.md
Use this page to choose the Meshery installation path that matches your environment. Meshery itself runs on Docker or Kubernetes. mesheryctl is the common control point for installing, configuring, and operating Meshery across those targets.
{{% alert color="info" title="What is actually required?" %}} Docker is enough to run Meshery locally and use many of its features. A Kubernetes cluster is required for most infrastructure lifecycle management features, including deploying and operating Cloud-based resources through Meshery. See the Feature dependency matrix below for specifics. {{% /alert %}}
| Installation path | Runs on | Required dependencies | Kubernetes required | Best for |
|---|---|---|---|---|
mesheryctl only | macOS, Linux, Windows | mesheryctl installed via Bash, Homebrew, Scoop, or direct download | No | Installing, upgrading, and managing Meshery deployments |
Docker deployment (mesheryctl system start -p docker) | macOS, Linux, Windows | mesheryctl, Docker Engine or Docker Desktop, Docker Compose | No, to start Meshery. Yes, to manage Kubernetes infrastructure through Meshery. | Local evaluation and single-host deployments |
Kubernetes deployment (mesheryctl system start) | Any environment that can reach a cluster | mesheryctl, kubectl, access to an active Kubernetes cluster | Yes | Full Meshery management workflows on Kubernetes |
| Helm deployment | Any environment that can reach a cluster | Helm v3, kubectl, access to an active Kubernetes cluster | Yes | Teams standardizing on Helm-based installation |
| Docker Extension | Docker Desktop | Docker Desktop, Kubernetes enabled in Docker Desktop, Docker Extension support | Yes | Docker Desktop users who want the shortest local setup |
| GitHub Codespaces | GitHub Codespaces | mesheryctl, Minikube, kubectl, enough Codespaces CPU and memory to run Minikube | Yes | Browser-based evaluation and contributor environments |
| Environment | Supported installation paths | Hard dependencies | Recommended additions | Notes |
|---|---|---|---|---|
| Linux or macOS | mesheryctl, Docker, Kubernetes, Helm | mesheryctl for standard installs | Docker Desktop or Docker Engine, kubectl, Helm | This is the most direct path for local Docker and Kubernetes workflows. |
| Windows | mesheryctl, Docker, Docker Extension, Kubernetes | mesheryctl; Docker Desktop for container-based installs | WSL2, Kubernetes enabled in Docker Desktop, kubectl | Meshery supports Windows workflows, but Docker-backed paths are generally the smoothest option. |
| Docker Desktop | Docker deployment, Docker Extension | Docker Desktop with Compose support | Kubernetes enabled when you want cluster-backed features | Best fit for local development and evaluation on laptops. |
| Remote or managed Kubernetes cluster | Kubernetes deployment, Helm | Reachable cluster, valid kubeconfig, kubectl | LoadBalancer, Ingress, or port-forward access to Meshery | Good fit for shared team environments and production-style installs. See also Upgrading Meshery. |
| GitHub Codespaces | Kubernetes deployment in Minikube | Codespace with enough resources, Minikube, kubectl, mesheryctl | VS Code desktop or browser-based Codespaces access | Useful when you do not want to manage a local cluster. |
| Capability | Docker host only | Reachable Kubernetes cluster |
|---|---|---|
| Start Meshery locally and open the UI | Yes | Optional |
Run mesheryctl system check --preflight | Yes | Optional |
| Use performance management features | Yes | Yes |
| Deploy and manage Kubernetes infrastructure | No | Yes |
| Use Meshery Operator and MeshSync and cluster-backed adapters | No | Yes |
| Use the Docker Extension workflow | No | Yes, through Docker Desktop Kubernetes |
kubectl to the lifecycle of the cluster you target and keep it within the Kubernetes version skew policy.Meshery publishes stable and edge release channels. Use the release channel that matches how quickly your environment adopts new Kubernetes minors. See Build & Release (CI) for how these channels are produced and Upgrading Meshery for changing deployed components over time.
| Release channel | Intended use | Kubernetes guidance |
|---|---|---|
stable | Production environments and conservative upgrades | Use for environments that stay on maintained platform releases and adopt Kubernetes upgrades through planned release management. |
edge | Early validation, development, and upcoming-platform testing | Use when validating Meshery against newly introduced platform releases before they become part of your normal stable rollout. |
Stable and edge artifacts are published separately in Meshery's build and release process, so cluster compatibility validation should be considered together with your selected release channel, your upgrade path, and the current test status.
Validate your environment before installing Meshery:
{{< code code="mesheryctl system check --preflight" >}}
For a deeper walkthrough of what these checks validate, see Running system checks using Meshery CLI and the mesheryctl system check reference.
If you plan to use Docker, verify that the Docker Engine and Compose plugin are available:
{{< code code="docker version && docker compose version" >}}
If you plan to use Kubernetes, verify that your current context points to the target cluster:
{{< code code="kubectl config current-context" >}}
For rollout planning after initial installation, continue with Upgrading Meshery.