Frequently Asked Questions

General FAQs

Question: What is Meshery?

Answer: Meshery is a self-service engineering platform that enables collaborative design and operation of cloud and cloud native infrastructure.

Question: Why was Meshery created?

Answer: As an open source, vendor neutral project, Meshery was created out of the necessity to enable platform engineers, site reliability engineers, DevSecOps teams - all engineers to collaborate in the management of their infrastucture and workloads. Meshery was created as an extensible platform to serve a broad set of modern application management needs.

Question: What does Meshery do?

Answer: Collaborative infrastructure management. Meshery enables you to design and operate cloud native infrastructure visually, collaboratively, with confidence, and in partnership with your teammates.

Question: Is Meshery an open source project?

Answer: Yes, Meshery is a Cloud Native Computing Foundation (CNCF) project and is licensed under Apache v2. As an internal developer platform, Meshery is highly extensible, offering multiple forms of extension points within which users and partners can customize and extend Meshery's functionality.

Question: Why should I use Meshery?

Answer: Meshery is a powerful tool for managing ​Kubernetes infrastructure. It seamlessly integrates with different hundreds of tools and offers extensibility through many different extension points. With Meshery, you can easily discover your environment, collaboratively manage multiple Kubernetes clusters, connect your Git and Helm repos, and analyze app and infra performance.

User FAQs

Question: What is mesheryctl?
Answer: A command line interface to manage Meshery. `mesheryctl` can manage any number of Meshery deployments.
Question: How do I install Meshery?

Answer: Meshery runs on a number of platforms. You are encouraged to use mesheryctl to configure and control Meshery deployments. Install `mesheryctl` using any of these options:

Question: What architecture does Meshery have?

Answer: An extensible architecture. There are several components, languages and they have different purposes. See Meshery's Architecture.

Question: What is the difference between make server and mesheryctl system start? Do they both run Meshery on my local machine?
Answer: Yes, both of them do run Meshery on your local machine. `make server` builds Meshery from source and runs it on your local OS, while `mesheryctl system start` runs Meshery as a set of containers in Docker or in Kubernetes on your local machine.
Question: What systems can I deploy Meshery onto?
Answer: Many. See Meshery's Compatibility Matrix.
Question: What systems does Meshery manage?

Answer: Many. See Meshery's Integrations

Question: Why is Meshery Server only receiving MeshSync updates from one of my Kubernetes Clusters?

Answer: In order to receive MeshSync updates, Meshery Server subscribes for updates Meshery Broker. In other words, Meshery Server connects to the `meshery-broker` service port in order to subscribe for streaming MeshSync updates. By default, the Meshery Broker service is deployed as type Kubernetes Service type LoadBalancer, which requires that your Kubernetes cluster provides an external IP address to the Meshery Broker service, exposing it external to the Kubernetes cluster.

If you're running Kubernetes in Docker Desktop, an external IP address of localhost is assigned. If you're running Minikube, and execute minikube tunnel to gain access to Meshery Broker's service, you will find that both Meshery Broker service endpoints (from two different clusters) are sharing the same localhost:4222 address and port number. This port sharing causes conflict and Meshery Server is only able to connect to one of the Meshery Brokers.

Few ways to solve this problem:

  • Use an external cloud provider which provides you with the LoadBalancer having an external IP address other than localhost.
  • Use Kind cluster with MetalLB configuration
Question: Why does the dashboard not show the infrastructure provisioned or discovered by Meshery?

This issue is typically caused by either lack of connectivity between Meshery Server and Meshery Broker or by database corruption. Use the following troubleshooting steps to resolve this issue:

Lack of Connectivity

  1. Confirm that the Meshery Broker service is exposed from your cluster using kubectl get svc -n meshery and that an hostname or IP address is displayed in the External Address column. Meshery Server should be able to reach this address.
  2. It is possible that MeshSync is not healthy and not sending cluster updates, check for MeshSync status by navigating to Settings in Meshery UI and clicking on the MeshSync connection.
  3. If MeshSync is healthy, check the status of Meshery Broker by clicking on the NATS connection.

If either is the case, Meshery Operator will make sure MeshSync and Meshery Broker deployments are again healthy, wait for some time, otherwise try redeploying Meshery Operator.

Database Corruption

If MeshSync, Meshery Broker and Meshery Operator are healthy, then perhaps, there is corruption in the Meshery Database. Use the following troubleshooting steps to resolve this issue:

  • Try clearing the database by clicking on the `Flush MeshSync` button associated with the corresponding cluster.
  • If you don't see the specific entities in Meshery UI, you may choose to reset Meshery's database. This option is in the Reset System Tab in Settings page.

Note: You can also verify health of your system using mesheryctl system check

Contributing FAQs

Question: Getting an error while running make server on Windows? Answer:

On Windows, set up the project on Ubuntu WSL2 and you will be able to run the Meshery UI and the server. For more information please visit Setting up Meshery Development Environment on Windows.

Discussion Forum

Don't find an answer to your question here? Ask on the Discussion Forum.