惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Scott Helme
Scott Helme
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Palo Alto Networks Blog
Google Online Security Blog
Google Online Security Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
WordPress大学
WordPress大学
博客园 - 聂微东
L
LINUX DO - 最新话题
月光博客
月光博客
小众软件
小众软件
T
Troy Hunt's Blog
A
Arctic Wolf
量子位
I
Intezer
大猫的无限游戏
大猫的无限游戏
T
Tailwind CSS Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
TaoSecurity Blog
TaoSecurity Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园_首页
有赞技术团队
有赞技术团队
N
News and Events Feed by Topic
美团技术团队
The Cloudflare Blog
P
Privacy International News Feed
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
N
News | PayPal Newsroom
Apple Machine Learning Research
Apple Machine Learning Research
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 热门话题
V
Vulnerabilities – Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
Hacker News: Ask HN
Hacker News: Ask HN
雷峰网
雷峰网

Learn Cloud Native

Agentgateway rate limiting for agents | Learn Cloud Native Local development with coding agents on Kubernetes using Signadot | Learn Cloud Native cuenv: one typed file for your whole project | Learn Cloud Native Preflight: AI Code Review Before You Push Anatomy of AI Agents Accessing Google Drive from Next.js Deploying to Fly.io using Dagger and Github Top Cloud-Native & Kubernetes Certifications [2026 Guide] Rapid microservices development with Signadot How to prepare for Istio certified associate exam (ICA) Global Rate Limiting in Istio with Envoy Rate Limit Service My Journey with Istio: From Incubation to Graduation Cilium Network Policy Tutorial: Secure Kubernetes Step by Step Kubernetes Networking: How kube-proxy and iptables Work Istio ServiceEntry: DNS vs. STATIC Resolution & Endpoints Explained Apply an Istio DestinationRule Globally (Mesh-Wide) Istio Rate Limiting: Configure a Local Rate Limiter in Envoy How to expose custom ports on Istio ingress gateway Portainer Tutorial: A Web UI for Kubernetes & Containers Traefik Proxy 2.x and TLS 101 Kubernetes CLI (kubectl) tips you didn't know about Setting up SSL certificates with Istio Gateway ArgoCD Best Practices You Should Know 在 OCI Ampere A1 计算实例上运行 AI Running AI On OCI Ampere A1 Instance How to Deploy Traefik Proxy Using Flux and GitOps Principles Firebase Emulators with Next.js: Local Setup Guide Running Hugo on free Ampere VM (Oracle Cloud Infrastructure) How to use kwatch to detect crashes in Kubernetes clusters Continuous profiling in Kubernetes using Pyroscope Monitoring containers with cAdvisor Creating a Kubernetes cluster in Google Cloud (LAB) Your first Kubernetes Pod and ReplicaSet (LABS) Container Lifecycle Hooks Maybe Convert Wasm Extension Config? GetIstio - CLI, training, and community Attach multiple VirtualServices to Istio Gateway Kubernetes Volumes Explained: Keep Data Beyond the Pod Send a Slack message when Docker images are updated Kubernetes Network Policy Ambassador Container Pattern Start Kubernetes Release Sidecar Container Pattern Kubernetes Init Containers Deploying multiple Istio Ingress Gateways Branch by Abstraction Pattern The Strangler Pattern Kubernetes Development Environment with Skaffold Securing Kubernetes Ingress with Ambassador and Let's Encrypt All About the Ingress Resource How to quarantine Kubernetes pods? Getting started with Kubernetes Horizontal partitioning in MongoDB Docker image tagging scheme Six things to keep in mind when working with Dockerfiles Beginners guide to Docker Beginners guide to gateways and proxies Deploy and Operate Multiple Istio Meshes in one Kubernetes Cluster Circuit Breaking in Istio Explained Build and push your Docker images using Github Actions Kubernetes and Istio service mesh workshop materials Build Netlify-like deployment for React app using Kubernetes pods Six exciting enhancements in Istio 1.4.0 Fallacies of Distributed Systems CAP Theorem Explained Master the Kubernetes CLI (kubectl) - Cheatsheet Minikube Basics and How to Get Started with Kubernetes 5 Tips to Be More Productive with Kubernetes What are sticky sessions and how to configure them with Istio? Debugging Kubernetes applications using Istio Kubernetes Ingress and Istio Gateway Resource Zero Downtime Releases using Kubernetes and Istio Traffic Mirroring with Istio Service Mesh Expose a Kubernetes service on your own custom domain
Managing service meshes with Meshery
Peter Jausovec · 2020-03-12 · via Learn Cloud Native

Meshery is a multi-service mesh management plane that offers lifecycle, configuration and performance management of service meshes and applications running on top of those meshes.

Meshery uses a common service mesh performance specification to describe and capture performance benchmarks and results. The spec contains general information about the performance test (e.g. start/end times), service mesh and proxy build numbers, Kubernetes cluster details (nodes, type of nodes, memory information) and the actual results.

One of the ideas behind Meshery is to be a vendor and project-neutral tool that can benchmark the performance of different service meshes. So, if you ever wondered which service mesh performs better - Meshery can answer those questions for you.

How to install Meshery?

You can use Brew to install mesheryctl.

brew tap layer5io/tap
brew install mesheryctl

Once Meshery is installed, you can run mesheryctl start. The start command pulls down all images needed by Meshery, runs them and opens the Meshery dashboard in your browser. There are other installation options as well (Windows) and you can even install Meshery directly on your Kubernetes cluster. For more information on the Kubernetes install, check the Meshery readme.

Note

Note: you can run docker ps to see all containers running as part of Meshery as shown in figure below

Meshery containers
Meshery containers

Dashboard

In your browser (navigate to http://localhost:9081), you will see the initial screen of Meshery. First time you run/open the dashboard you will have to pick your provider. There are two options:

  1. Local
  2. Meshery Cloud

At the time of writing both options were free, but I went with the Local provider though. Once you confirm the provider selection, you should see the dashboard as in the figure below.

Meshery dashboard
Meshery dashboard

On the main dashboard you will get the connection status information, that includes connection to your Kubernetes cluster(s) and Meshery adapters for different service meshes.

In addition to doing performance benchmarks, Meshery can also be used to install and manage different service meshes. I've tried the Linkerd and Istio installations, togther with sample applications and it worked great. You don't need to know about the istioctl nor linkerd CLIs as Meshery does that for you.

Installing Linkerd

From the sidebar on the left, you can click on service mesh (Consul, Istio, Linkerd, ...) and that gives you an option to deploy that mesh.

Linkerd management
Linkerd management

Let's try and install Linkerd:

  1. From the sidebar on the left, click Linkerd
  2. Type linkerd in the namespace text box
  3. Click the + icon on the Manage Service Mesh Lifecycle tile
  4. From the dropdown, click Latest version of Linkerd

This triggers the Linkerd installation and you should see a message in the top right corner saying "Operation executing". If you go back to your terminal and run kubectl get pods -n linkerd you will see Linkerd pods initializing.

Linkerd pods
Linkerd pods

One thing that I missed on this page is that there was no clear indication of any service meshes you might already have installed. For example, I already had Istio installed, but when I clicked on the Istio option in the sidebar, there was not indication telling me that Istio is already installed.

However, going to the Performance page and clicking the Service Mesh drop down, I did see the installed service meshes (Istio and Linkerd):

Service Mesh dropdown
Service Mesh dropdown

How about sample applications?

The next step would be to install a sample application you want to use for the performance test. A nice feature from Meshery here is that it can do that for you, so you don't have to go and search for examples and deal with YAML files or Kubernetes CLI directly.

Since I've installed Linkerd, I will go with Linkerd's Emojivoto application.

  1. Click the Linkerd option from the sidebar
  2. Enter emojivoto in the namespace text box
  3. Click the + icon on the Manage Sample Application Lifecycle
  4. Select the Emojivoto application from the menu

Just like before, this triggers the installation to your cluster and the namespace you picked from Meshery.

Same as before - it would be nice to see when the installation completes and/or some indication that application is already deployed.

I did have to fix one thing and that is the Istio ingress gateway service. Since I was running Meshery against my local cluster, the Istio ingress gateway was using the localhost "external IP", however Emojivoto application also tries to expose the web-svc service on localhost.

With the load balancer issue fixed (I removed Istio), I was able to open http://localhost and get to the Emojivoto application.

Linkerd Emojivoto application
Linkerd Emojivoto application

You can click any of the emojis to vote for them or view the leaderboard. Part of the applicaiton is a vote-bot that periodically votes for emojis. If you look at the leaderboard and refresh the page, you should see the changes.

In addition to Emojivoto, you can also deploy the Istio Book Info application, Linkerd Books Application or HTTPbin application.

Running a performance test

To run a simple performance test, click the Performance option from the sidebar. On this page you have to provide some basic information, such as the name of your test, pick the service mesh you want to use (e.g. Linkerd) and provide the URL as well as the number of concurrent requests, queries per second and the duration of the test. Finally, have an option of picking either Fortio or wkr2 as your benchmarking tool.

Note that since you're running Meshery on Docker you won't be able to use http://localhost as your target URL. However, you can get use an IP address of your comptures NIC. Run:

$ ifconfig en0
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=400<CHANNEL_IO>
        ether 98:01:a7:a0:f8:dd
        inet6 fe80::c6c:bff3:c3e9:7886%en0 prefixlen 64 secured scopeid 0x4
        inet 192.168.1.7 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=201<PERFORMNUD,DAD>
        media: autoselect
        status: active

In my case, I used http://192.168.1.7. Once you entered all the information, you can click the Run Test button to start the performance test.

Meshery - new performance test
Meshery - new performance test

When the test completes you will be presented with results and a graph.

Meshery - new performance test
Meshery - new performance test

You can also start the performance tests using the mesheryctl CLI. For example, to run a pefrormance test using Linkerd against the same URL, you could use:

mesheryctl perf --mesh linkerd --url http://192.168.1.7

The above command will auto-generate the test name and use the default values for QPS, duration and concurrent requests. You can also view all results from within the Meshery dashboard.

I also installed Istio and the Bookinfo application to run another performance test. This time I injected a delay 7 second delay to the ratings service. You can also apply service mesh configuration through Meshery - it has a couple of pre-defined configurations. This time the results looked a bit different (as it was expected with the injected delay).

Meshery - Istio with 7 second delay injected
Meshery - Istio with 7 second delay injected

Deleting a mesh or application

Just like you deployed a mesh or application you can also use Meshery to remove it from your cluster. One thing to note here is that you will have to enter the namespace where your mesh/application was deployed in. For example, if you deployed Linkerd to linkerd namespace, you have to make sure to enter linkerd in the namespace text box and then click the delete icon.

Other meshes

In addition to Linkerd, you can also install a couple of other service meshes:

The steps are similar to the Linkerd installation above - you pick the service mesh from the sidebar, click the + icon on the Manage Service Mesh Lifecycle tile and choose from available options.

There are additional options available for some of the meshes. For example, for Istio you can install it with or without mTLS as well as install the Service Mesh Interface (SMI) Istio adapter. You can also apply different configurations - for example if you installed BookInfo application, you can apply different configurations that contain traffic routing (i.e. route 50% of the traffic to v3 of Reviews) or inject a delay and similar.

Conclusion

Meshery gives you a really convenient and fast way to quickly install different service meshes and sample applications with some pre-defined configurations. I can definitely see this being useful either for people who want to try out different meshes as well as anyone who wants to see the impact each mesh has on performance.

Note that the performance tests I ran were against a Kubernetes cluster running on my laptop which is not a realistic representation of anything. If you want to get more realistic results you might want to use an actual, on-premise or cloud managed cluster to do so.