Skip to main content
Meshery provides comprehensive multi-cluster Kubernetes management capabilities, enabling you to operate infrastructure across multiple clusters, clouds, and on-premises environments from a unified interface. Gain visibility, control, and consistency across your entire Kubernetes landscape.

Overview

Managing multiple Kubernetes clusters introduces complexity in configuration, deployment, and observability. Meshery simplifies multi-cluster operations by providing:
  • Unified Dashboard: Single view of all connected Kubernetes clusters
  • Multi-cluster Deployment: Deploy workloads to multiple clusters simultaneously
  • Cross-cluster Discovery: Discover and inventory resources across all clusters
  • Consistent Configuration: Apply consistent policies and configurations
  • Environment Grouping: Organize clusters into logical environments

Any Kubernetes

Works with any Kubernetes distribution: EKS, GKE, AKS, OpenShift, Rancher, and more

Multi-cloud

Manage clusters across AWS, Azure, GCP, and on-premises

Real-time Sync

MeshSync continuously discovers and synchronizes cluster state

Unified View

Single dashboard for all cluster resources and configurations

Connecting Clusters

Adding Kubernetes Contexts

Connect Kubernetes clusters to Meshery by uploading kubeconfig files:
1

Navigate to Connections

Go to the Connections page in Meshery
2

Upload Kubeconfig

Click “Import Config” and upload your kubeconfig file
3

Select Contexts

Choose which contexts from the kubeconfig to connect
4

Verify Connection

Meshery validates connectivity and displays connection status
5

Deploy Operator

Optionally deploy Meshery Operator and MeshSync for enhanced features
Using mesheryctl:
# Connect current kubectl context
mesheryctl system context create <context-name>

# Connect from specific kubeconfig
mesheryctl system context create <context-name> --kubeconfig ~/.kube/config

# List connected contexts
mesheryctl system context list

# Switch active context
mesheryctl system context switch <context-name>

Connection States

Meshery tracks the following connection states:
  • Registered: Context is registered but not yet connected
  • Connected: Active connection established to the cluster
  • Discovered: MeshSync has discovered cluster resources
  • Ignored: Context is registered but intentionally not connected
  • Errored: Connection attempt failed or lost connectivity

Cluster Discovery

MeshSync

MeshSync is Meshery’s cluster discovery and synchronization engine:

Continuous Discovery

Automatically discovers all Kubernetes resources in connected clusters

State Synchronization

Keeps Meshery’s view synchronized with actual cluster state

Change Detection

Detects and reports changes to cluster resources in real-time

Resource Inventory

Maintains inventory of all resources across all clusters
Deploying MeshSync:
# Deploy MeshSync to a context
mesheryctl system channel deploy meshsync --context <context-name>

# Check MeshSync status
mesheryctl system status

# View MeshSync logs
kubectl logs -n meshery -l app=meshsync

Resource Discovery

MeshSync discovers and inventories:
  • Core Resources: Pods, Services, Deployments, StatefulSets, DaemonSets
  • Storage: PersistentVolumes, PersistentVolumeClaims, StorageClasses
  • Networking: Ingresses, NetworkPolicies, Services
  • Configuration: ConfigMaps, Secrets
  • RBAC: Roles, RoleBindings, ServiceAccounts
  • Custom Resources: All CRDs and their instances
  • Service Mesh Resources: Istio, Linkerd, Consul resources

Environments

Grouping Clusters

Environments allow you to group related clusters and connections:
1

Create Environment

Navigate to Environments and click “Create Environment”
2

Add Description

Name your environment (e.g., “Production”, “Development”, “Edge Clusters”)
3

Assign Connections

Select which Kubernetes contexts belong to this environment
4

Configure Credentials

Add any required credentials for the environment
5

Use for Deployment

Select the environment as a deployment target for designs

Environment Use Cases

Group clusters by region for geographic distribution: us-east, us-west, eu-central
Separate development, staging, and production environments
Organize clusters by team ownership or application domain
Group edge clusters separately from central data center clusters

Multi-cluster Deployments

Deploying to Multiple Clusters

Deploy the same configuration to multiple clusters simultaneously:
1

Prepare Design

Create or select a design to deploy
2

Validate Design

Run validation to ensure design correctness
3

Select Clusters

Choose multiple Kubernetes contexts or an entire environment as target
4

Configure Options

Set deployment options (namespace, skip CRDs, etc.)
5

Deploy

Execute deployment across all selected clusters
6

Monitor Progress

Track deployment status for each cluster individually
mesheryctl Multi-cluster Deploy:
# Deploy to specific contexts
mesheryctl pattern deploy -f design.yaml \
  --contexts prod-us-east,prod-us-west,prod-eu

# Deploy to all contexts in an environment
mesheryctl pattern deploy -f design.yaml \
  --environment production

Deployment Strategies

Parallel Deployment

Deploy to all clusters simultaneously for speed

Rolling Deployment

Deploy to clusters sequentially to minimize risk

Canary Deployment

Deploy to subset of clusters first, then expand

Blue-Green

Maintain separate cluster sets for zero-downtime updates

Cluster Monitoring

Dashboard View

The Meshery dashboard provides unified visibility:
  • Cluster Health: Health status of all connected clusters
  • Resource Counts: Total pods, services, deployments across clusters
  • Version Information: Kubernetes version for each cluster
  • Node Statistics: Total nodes, CPU, memory across clusters
  • Mesh Detection: Service mesh installations detected

Cluster Resources

View and manage resources across clusters:
1

Navigate to Resources

Access the Cluster Resources view from the sidebar
2

Filter by Cluster

Filter resources by Kubernetes context to focus on specific clusters
3

Search Resources

Search for specific resources by name, namespace, or type
4

View Details

Click on resources to view detailed configuration and status
5

Take Actions

Delete, edit, or export resources directly from the UI

Configuration Management

Consistent Policies

Apply consistent configurations across clusters using Open Policy Agent:
  • Policy Definitions: Create OPA Rego policies for infrastructure
  • Multi-cluster Application: Apply policies to all clusters in an environment
  • Compliance Checking: Validate clusters against policy requirements
  • Drift Detection: Identify clusters that deviate from policy

Configuration Drift

Detect and remediate configuration drift:
  1. Design as Source of Truth: Store desired state as Meshery designs
  2. Continuous Comparison: Compare running state vs. desired state
  3. Drift Alerts: Receive notifications when drift is detected
  4. Remediation: Re-deploy designs to fix drift

Workspaces and Access Control

Multi-tenant Clusters

Manage multi-tenant Kubernetes environments:
  • Workspace Isolation: Isolate team access to specific namespaces/clusters
  • RBAC Integration: Leverage Kubernetes RBAC for access control
  • Credential Management: Securely manage per-team cluster credentials
  • Resource Quotas: Enforce resource limits per workspace

Team Collaboration

Collaborate across distributed infrastructure:

Shared Visibility

All team members see the same multi-cluster view

Role-based Access

Control who can view, deploy, or modify clusters

Audit Logging

Track all actions across clusters

Change History

View history of deployments and modifications

Supported Kubernetes Distributions

Meshery works with any Kubernetes-conformant distribution:
PlatformSupportNotes
Amazon EKS✅ FullAWS Elastic Kubernetes Service
Google GKE✅ FullGoogle Kubernetes Engine
Azure AKS✅ FullAzure Kubernetes Service
OpenShift✅ FullRed Hat OpenShift
Rancher✅ FullRancher Kubernetes Engine
Kind✅ FullKubernetes in Docker
Minikube✅ FullLocal development clusters
k3s✅ FullLightweight Kubernetes
MicroK8s✅ FullCanonical’s Kubernetes
Tanzu✅ FullVMware Tanzu

Best Practices

Group clusters into environments based on purpose (prod/dev), region, or team ownership for easier management.
Deploy MeshSync to all clusters to enable resource discovery, state synchronization, and change detection.
Use consistent naming conventions across clusters for namespaces, labels, and resources.
When deploying to multiple clusters, start with development/staging environments before production.
Regularly check connection status and address any errored or disconnected clusters.
Combine multi-cluster deployments with GitOps workflows for full traceability and version control.

Troubleshooting

Connection Issues

Cluster won’t connect:
  • Verify network connectivity from Meshery to cluster API server
  • Check kubeconfig credentials are valid and not expired
  • Ensure firewall rules allow access to cluster API endpoint
  • Verify Meshery has necessary RBAC permissions in the cluster
MeshSync not discovering resources:
# Check MeshSync deployment status
kubectl get deployment -n meshery meshsync

# View MeshSync logs
kubectl logs -n meshery -l app=meshsync --tail=100

# Verify MeshSync RBAC
kubectl get clusterrole meshery-operator