A service mesh playground to faciliate learning about functionality and performance of different service meshes. Meshery incorporates the collection and display of metrics from applications running in the playground.
In an effort to produce service mesh agnostic tooling, Meshery uses a common performance benchmark specification to capture and share environment information and test configuration.
-
Multi-mesh Performannce Benchmark Meshery is intended to be a vendor and project-neutral utility for uniformly benchmarking the performance of service meshes. Between service mesh and proxy projects, a number of different tools and results exist. For example, Istio's Performance and Scalability WG currently uses a couple of different tools to measure Istio performance: BluePerf and Fortio.
-
Multi-mesh Functionalty Playground A service mesh playground to faciliate learning about functionality of different service meshes. Meshery incorporates a visual interface for manipulating traffic routing rules. Sample applications will be included in Meshery.
- Docker engine (e.g. Docker for Desktop).
- Kubernetes cluster (preferably version 1.10+).
- Istio version 1.0.3+ in
istio-system
namespace along with the Istio ingress gateway.
-
You can deploy Meshery to an existing kubernetes cluster using the provided yaml file into any namespace of your choice. For now let us deploy it to a namespace
meshery
:kubectl create ns meshery kubectl -n meshery apply -f deployment_yamls/k8s # additional step for running on Istio kubectl -n meshery apply -f deployment_yamls/istio.yaml
If you want to use a different namespace, please change the name of the namespace in the
ClusterRoleBinding
section appropriately. -
Meshery can be deployed either on/off your existing service mesh.
-
If deployed on the same Kubernetes cluster as the mesh, you dont have to provide a kubeconfig file.
-
please review the yaml and make necessary changes as needed for your cluster.
- We have a docker-compose.yaml file which can be used to spin up the services quickly
- There a few requirements for running all the Meshery services on your local
-
SSO, which uses Twitter and/or Github
-
Add an entry for
meshery-saas
in your/etc/hosts
file to point to 127.0.0.1 and save the file -
After setting up SSO, store the respective key and secret as variables in the shell as shown below.
- for Twitter:
TWITTERKEY="PASTE TWITTER KEY"
TWITTERSECRET="PASTE TWITTER SECRET"
- for Github:
GITHUBKEY="PASTE GITHUB KEY"
GITHUBSECRET="PASTE GITHUB SECRET"
Note: you can use Twitter and/or Github
Now that the environment variables are setup, we can start the containers by running:
docker-compose up
Please add a
-d
flag to the above command if you want to run it in the background.
-
- Now you should be able to access Meshery in your browser at
http://localhost:8080/play
- Create an app in the Twitter developer console: https://developer.twitter.com/en/apps after logging in.
- Fill appropriate details in the presented form
- Remember to enable to
Sign in with Twitter
- For the callback url, please use this value:
http://meshery-saas:9876/auth/twitter/callback
- Remember to enable to
- After creating the app you will be able to grab the API key and secret from the
Keys and tokens
section of the app.
- Create an OAuth app in the Github developer settings: https://github.com/settings/developers after logging in.
- Fill appropriate details in the presented form
- For the callback url, please use this value:
http://meshery-saas:9876/auth/github/callback
- For the callback url, please use this value:
- After creating the app you will be able to grab the Client ID and Secret from the app page.
coming soon for Linkerd
This repository and site are available as open source under the terms of the Apache 2.0 License.
Layer5.io is a service mesh community, serving as a repository for information pertaining to the surrounding technology ecosystem (service meshes, api gateways, edge proxies, ingress and egress controllers) of microservice management in cloud native environments.