Why Multi-Cluster?
Multi-cluster architectures provide:- High Availability - Distribute workloads across clusters
- Geographic Distribution - Deploy closer to users
- Environment Isolation - Separate dev, staging, and production
- Cloud Provider Diversity - Avoid vendor lock-in
- Compliance - Meet data residency requirements
Prerequisites
Before setting up multi-cluster management:- Meshery Server running and accessible
kubectlaccess to each cluster- Proper RBAC permissions on each cluster
- Network connectivity between Meshery and cluster API servers
Connecting Multiple Clusters
Auto-Discovery from Kubeconfig
Create Connections
Create Meshery connections for each context:Each command:
- Reads credentials from kubeconfig
- Registers connection with Meshery
- Deploys Meshery Operator to cluster
- Starts MeshSync for discovery
Manual Connection Creation
For clusters not in your kubeconfig:Gather Cluster Information
You’ll need:
- Cluster API server URL
- CA certificate
- Service account token or client certificate
Create Connection via UI
- Navigate to Settings → Connections
- Click Create Connection
- Select Kubernetes as connection type
- Fill in connection details:
- Name: Descriptive name (e.g., “GKE Production”)
- Server URL:
https://your-cluster.example.com:6443 - Certificate Authority: Cluster CA cert
- Token: Service account token
- Click Save and Connect
Meshery requires
cluster-admin or equivalent permissions to deploy the operator and discover resources. For production, consider creating a custom role with minimum required permissions.Organizing with Environments
Environments group clusters logically and enable environment-specific deployments:Create Environments
Define environments matching your deployment strategy:Via UI:
- Navigate to Environments
- Click Create Environment
- Configure:
- Name: production, staging, development
- Description: Purpose and scope
- Organization: Your org ID
Assign Connections
Associate connections with environments:
- Open environment settings
- Navigate to Connections tab
- Add connections:
- Production: prod-cluster-1, prod-cluster-2
- Staging: staging-cluster
- Development: dev-cluster
Cross-Cluster Deployments
Deploying to Multiple Clusters
Deploy to Production Clusters
Deploy the same design to multiple clusters:Or deploy via UI:
- Open design
- Click Deploy
- Select multiple environments/connections
- Confirm bulk deployment
Environment-Specific Configurations
Customize deployments per environment:Multi-Cloud Management
Meshery supports clusters across cloud providers:AWS EKS
Azure AKS
Google GKE
On-Premises
AWS
EKS, EC2, ECS integrations
Azure
AKS, Container Instances
Google Cloud
GKE, Cloud Run, GCE
On-Premises
Self-managed Kubernetes
Centralized Observability
MeshSync Discovery
MeshSync runs in each cluster to discover resources:- Real-time resource inventory
- Cross-cluster visibility
- Configuration drift detection
Unified Dashboard
Meshery UI provides centralized view across clusters:- Visualizer: See resources from all clusters
- Filters: Toggle cluster visibility
- Search: Find resources across infrastructure
- Health: Monitor component status
Monitoring Integration
Connect monitoring systems for each cluster:Connection Management
Connection Lifecycle
Connections have the following statuses:- DISCOVERED - Found but not registered
- REGISTERED - Registered, ready to connect
- CONNECTED - Active, syncing data
- DISCONNECTED - Previously connected, now offline
- MAINTENANCE - Temporarily disabled
- IGNORED - Discovered but deliberately ignored
- DELETED - Marked for deletion
Updating Connections
Removing Connections
Security Considerations
Credential Management
- Service Accounts: Use dedicated service accounts per cluster
- Token Rotation: Regularly rotate authentication tokens
- Least Privilege: Grant minimum required permissions
- Secret Storage: Meshery encrypts stored credentials
Network Security
- API Server Access: Ensure Meshery can reach cluster API servers
- Firewalls: Whitelist Meshery Server IP addresses
- VPN/Private Networks: Use secure networks for communication
- mTLS: Enable mutual TLS where supported
RBAC Configuration
Minimum RBAC for Meshery Operator:Troubleshooting
Connection Failures
Symptom: Connection status stuck at REGISTERED Solutions:MeshSync Not Running
Symptom: Resources not appearing in Meshery Solutions:Cross-Cluster Communication
Symptom: Unable to deploy across clusters Solutions:- Verify active connection:
mesheryctl connections list - Switch context:
mesheryctl system context switch <cluster> - Test kubectl access:
kubectl get nodes - Check environment associations
Best Practices
Naming Conventions
- Descriptive Names:
aws-eks-prod-us-west-2 - Environment Prefix:
prod-,staging-,dev- - Provider Labels: Include cloud provider
- Region Tags: Add geographic region
Organization
- Environment Isolation: Separate prod/staging/dev
- Workspace Alignment: Match teams to workspaces
- Connection Grouping: Group by cloud provider or region
Monitoring
- Health Checks: Regularly verify connection status
- Resource Limits: Monitor cluster capacity
- Sync Status: Ensure MeshSync is running
- Event Monitoring: Watch Notification Center for issues
Next Steps
- Implement Policy Engine across clusters
- Set up Team Collaboration with workspaces
- Configure Infrastructure Management
- Explore Cloud Provider Integrations