Skip to main content

Meshery Installation Guide

Meshery can be deployed on various platforms including Docker, Kubernetes, and multiple cloud providers. This guide provides detailed installation instructions for each supported platform.

Prerequisites

System Requirements

  • 2+ CPU cores
  • 4GB+ RAM
  • 10GB+ disk space

Required Software

  • Docker 20.10+ or Kubernetes 1.21+
  • kubectl (for Kubernetes deployments)
  • Helm 3.0+ (optional)
Meshery runs as a set of containers inside or outside of your Kubernetes clusters. Choose the installation method that best fits your environment.

Quick Installation

The fastest way to install Meshery is using mesheryctl, the official CLI:
1

Install mesheryctl

curl -L https://meshery.io/install | bash -
2

Start Meshery

mesheryctl system start
By default, Meshery deploys using Docker. Access the UI at:
http://localhost:9081

Platform-Specific Installation

Docker

Deploy Meshery on Docker using mesheryctl:
mesheryctl system start --platform docker
This will:
  • Download the latest Meshery images
  • Start Meshery Server on port 9081
  • Configure networking and volumes
  • Mount your kubeconfig for cluster access
Configuration:
  • Meshery Server: http://localhost:9081
  • Config directory: ~/.meshery
  • Kubeconfig: ~/.kube/config (mounted automatically)

Kubernetes

Deploy Meshery on any Kubernetes cluster:
mesheryctl system start --platform kubernetes
Meshery will be deployed in the meshery namespace with all required components.Access Meshery:
kubectl port-forward svc/meshery -n meshery 9081:9081
Then visit http://localhost:9081

Cloud Platforms

Deploy Meshery on Amazon EKS:
1

Configure kubectl for EKS

aws eks update-kubeconfig \
  --region <region> \
  --name <cluster-name>
2

Install Meshery

mesheryctl system start --platform kubernetes
Or using Helm:
helm install meshery meshery/meshery \
  --namespace meshery \
  --create-namespace
3

Expose via LoadBalancer (optional)

kubectl patch svc meshery -n meshery \
  -p '{"spec": {"type": "LoadBalancer"}}'
Get the external IP:
kubectl get svc meshery -n meshery
For production deployments, consider using AWS ALB Ingress Controller for HTTPS and domain routing.

Local Kubernetes

Deploy Meshery on Minikube:
1

Start Minikube

minikube start --cpus 4 --memory 8192
2

Install Meshery

mesheryctl system start --platform kubernetes
3

Access Meshery

minikube service meshery -n meshery

Platform Support Matrix

PlatformSupport StatusInstallation Method
Docker✅ Fully Supportedmesheryctl, Docker Compose, Docker Extension
Kubernetes✅ Fully Supportedmesheryctl, Helm, kubectl
AKS✅ Fully Supportedmesheryctl, Helm
EKS✅ Fully Supportedmesheryctl, Helm
GKE✅ Fully Supportedmesheryctl, Helm
Minikube✅ Fully Supportedmesheryctl, Helm
kind✅ Fully Supportedmesheryctl, Helm
Docker Desktop✅ Fully SupportedDocker Extension, mesheryctl
OpenShift✅ Fully Supportedmesheryctl, Helm
Rancher✅ Fully Supportedmesheryctl, Helm
macOS✅ Fully Supportedmesheryctl, Homebrew
Linux✅ Fully Supportedmesheryctl
Windows✅ Fully Supportedmesheryctl, Scoop, WSL2
Raspberry Pi🚧 In Progress-

Configuration Options

Environment Variables

Meshery can be configured using environment variables:
# Provider configuration
PROVIDER_BASE_URLS=https://cloud.layer5.io

# Port configuration
PORT=9081

# Kubeconfig location
KUBECONFIG_FOLDER=/home/appuser/.kube

# Adapter URLs (optional)
ADAPTER_URLS=meshery-istio:10000 meshery-linkerd:10001

# Event identifier
EVENT=mesheryLocal

Helm Values

Customize Helm deployments with a values.yaml file:
# values.yaml
env:
  PROVIDER_BASE_URLS: "https://cloud.layer5.io"
  
service:
  type: LoadBalancer
  port: 9081

meshery-istio:
  enabled: true
  
meshery-linkerd:
  enabled: true

resources:
  limits:
    cpu: 1000m
    memory: 1024Mi
  requests:
    cpu: 500m
    memory: 512Mi
Install with custom values:
helm install meshery meshery/meshery \
  --namespace meshery \
  --create-namespace \
  -f values.yaml

Post-Installation

Verify Installation

1

Check component status

mesheryctl system status
Or using kubectl:
kubectl get pods -n meshery
2

View logs

mesheryctl system logs
Or for specific components:
kubectl logs -n meshery deployment/meshery
3

Access Meshery UI

Open your browser to http://localhost:9081

Connect Kubernetes Cluster

After installation, connect your Kubernetes cluster:
mesheryctl system context create k8s --set
Or use the UI:
  1. Navigate to SettingsConnections
  2. Click + Connect Cluster
  3. Select your kubeconfig context
  4. Click Connect

Uninstallation

mesheryctl system stop
mesheryctl system reset

Troubleshooting

Ensure you have proper permissions:Docker: Add your user to the docker group:
sudo usermod -aG docker $USER
newgrp docker
Kubernetes: Verify cluster-admin permissions:
kubectl auth can-i '*' '*' --all-namespaces
Check resource availability:
kubectl describe pod <pod-name> -n meshery
Verify node resources:
kubectl top nodes
Ensure persistent volume claims are bound:
kubectl get pvc -n meshery
Verify service is running:
kubectl get svc meshery -n meshery
Check port forwarding:
kubectl port-forward svc/meshery -n meshery 9081:9081
Verify firewall rules allow port 9081.
Update Helm repositories:
helm repo update
Verify Helm version (3.0+ required):
helm version
Check for existing releases:
helm list -n meshery

Next Steps

Quick Start

Follow the quick start guide to connect your first cluster

Architecture

Learn about Meshery’s architecture and components

Integrations

Explore 300+ cloud native integrations

CLI Reference

Complete mesheryctl command reference

Additional Resources