Blog
  • AI Gateway
  • AI Security
  • AIOps
  • API Security
  • API Gateway
|
    • API Management
    • API Development
    • API Design
    • Automation
    • Service Mesh
    • Insomnia
    • View All Blogs
  1. Home
  2. Blog
  3. Engineering
  4. Staying Agile on VMs and Kubernetes With Service Mesh
Engineering
July 8, 2021
4 min read

Staying Agile on VMs and Kubernetes With Service Mesh

Ned Harris
Topics
Service MeshKubernetes
Share on Social

More on this topic

Videos

Progressive Delivery in Kubernetes Without Service Meshes

Webinars

Tech Talk - Service Mesh and GitOps Beyond Kubernetes

See Kong in action

Accelerate deployments, reduce vulnerabilities, and gain real-time visibility. 

Get a Demo

Over the past ten years, Clubhouse and other innovative startups built software quickly. They started from scratch and blew past their incumbents. But the fact of the matter is that speed is no longer a differentiator. Everyone can move quickly. We've seen it as Facebook and Twitter quickly duplicated Clubhouse's "innovative" functionality.

Today, it’s all about agility—taking the momentum that you’ve already built up. Agility makes it easier for companies to quickly replicate innovations in the market and adopt them as their own.

By aligning around a few key principles, you too can stay agile:

  1. Don't throw away or duplicate code. The benefit is a shift to innovation.
  2. Bring along old applications. That way, you can inherit policy, security and best practices.
  3. Maintain connectivity across the heterogeneous. This will result in simplified application maintenance.

A service mesh like Kuma or Kong Mesh can help you remain agile and scale by providing end-to-end service connectivity across architectures and modern protocols to connect clouds to virtual machines. So whether you're working at a retailer trying to connect their old monolithic-based inventory or fulfillment systems or a bank that can't seem to move off of those decades-old servers, it's critical to stay agile across environments.

Let's see how with an example.

Example: Connecting a Legacy Service to a Modern Architecture

In my example, I have containerized apps in my Kubernetes environment. Many of these were scooped out from legacy monoliths. Unfortunately, it hasn't been possible or sensible to transition all of my applications yet.

Specifically, the current problem is with my VM-based natural language processor service. Not being able to connect this natural processing language service has stopped my whole solution from working.

In an enterprise with many legacy systems, this could go beyond VMs. It could be a rack server or a bunch of servers in a data center.

The preferable thing to do with a service mesh is to get a data plane proxy on that service, but that's not possible right now due to internal politics. So getting something installed on this machine is probably not going to happen today. I'm going to keep trying to get access, but for now, this needs to get done today.

In this scenario, where we don't have access to the VM-based natural language processor, we can do something called an external service in the mesh, which will give us the proxy. Doing this is a common first step into getting connectivity going across services to which you have limited access.

Kong Connectivity Example: Service Mesh VMs

In the below screenshot, you can see my environment. I have the Apollo service (my GraphQL), a blogging service, a user service and Postgres. I'm just missing that natural language processing service to get my application working.

K9s Environment 2

Check the VM Service Connection

I can test that in Insomnia. If I go over to run this, we time out in 15 seconds because it’s a hard dependency.

Insomnia Test a POST request for GraphQL

Access VM Service with Service Mesh

In the Apollo service below, we can see it's asking for the natural language processing service. So how do we get access to this kind of external service and still use our service mesh?

Service Mesh VM connection example

One thing that we can do is build this into our deployment. In my Kubernetes definition, I have my blog service. I have some environment variables and a value for NLP, which is just a URL. It’s this NLP EXT service, and it’s coming to port 3000. And that’s what’s failing because the connectivity issue isn't resolved yet.

Service Mesh Deploy YAML File

In my service mesh, I'll build an external service policy that’s essentially going to point to that external service outside of the service mesh and give me the ability to proxy to it and meet it halfway. So I could still apply policies and get visibility. But, still, it won't be the same benefit of putting a data plane proxy onto that server that would pull in the service mesh to enforce policy completely.

Nonetheless, it does give some advantages. For instance, I could extend my mutual TLS policy beyond or at least cover that first half.

Service Mesh Extend MutualTLS Policy to VMs

I'll go ahead and apply this.

Apply the extend service mesh to VMs YAML file

That created an external service that will now be accessible by my application through the service mesh.

K9s Environment Service Mesh Can Access VM Service

I'll do a nslookup to check. It's now going through my DNS because I have a DNS layer. So I'm basically resolving to it since I built that service.

nslookup

Test VM Service Connection Again

If I test this again in Insomnia, I'm back in business. All this is just leveraging an external API to our Kubernetes environments, actually in a whole different Google project in reality. It’s running on a VM. But again, this could be a bare metal server.

Test via Insomnia the VM Service Mesh Connectivity

Conclusion

Ideally, this would buy you some time to solve the internal politics and get that data plane proxy on the service. That way, you'll get the complete benefits from the service mesh. But it doesn’t have to be an all-or-nothing proposition.

Service Mesh VM Connectivity Example Solved

In this quick example, I took this service that I didn’t control and gave the mesh a way to know about it in its DNS space. Then, it used our natural Kubernetes configurations and manifested to connect to it as business as usual.

Service connectivity is central to making your business more agile. I hope this article gave you some ideas for how to get a quick win on your journey from monolith to microservices.

Topics
Service MeshKubernetes
Share on Social
Ned Harris

Recommended posts

Using Service Mesh Within Your Kubernetes Environment

Kong Logo
EngineeringAugust 22, 2024

Container technologies are always evolving — and we're not talking Tupperware here. Over the past years, service mesh has emerged as a crucial component for managing complex, distributed systems. As organizations increasingly adopt Kubernetes fo

Kong

Farewell Ingress NGINX: Explore a Better Path Forward with Kong

Kong Logo
EngineeringNovember 14, 2025

"To prioritize the safety and security of the ecosystem, Kubernetes SIG Network and the Security Response Committee are announcing the upcoming retirement of Ingress NGINX . Best-effort maintenance will continue until March 2026. Afterward, there w

Justin Davies

10 Ways Microservices Create New Security Challenges

Kong Logo
EngineeringOctober 1, 2025

Why are Microservices Security Risks? Traditional security was simple. One perimeter. Few entry points. Clear boundaries. Microservices shattered this model. Now organizations manage hundreds of independent services. The average number of API calls

Mike Bilodeau

Kong Mesh 2.11: Reduced Privileges, Improved Support for AWS ECS

Kong Logo
Product ReleasesJune 20, 2025

We’re at it again, bringing more incremental improvements to Kong Mesh!  Built on top of Kuma, Kong Mesh brings much-needed simplicity and production-grade tooling. Kong Mesh is built for smooth operations with platform teams in mind, providing secu

Justin Davies

What Are Virtual Machines (VMs)?

Kong Logo
Learning CenterMarch 29, 2024

What are Virtual Machines (VMs)? A virtual machine (VM) is a fully-fledged, standalone operating environment running on a physical computer. Unlike the host computer it's running on, a VM is not a physical machine, thus the designation of "virtual".

Kong

Control Plane vs. Data Plane - What's the Difference?

Kong Logo
Learning CenterMarch 10, 2022

If you're diving into Kubernetes or you're getting started with a service mesh, you have likely encountered the terms "control plane" and "data plane." What do these terms mean? Do they refer to the same things in Kubernetes as they do in a service

Kong

Insights into Kubernetes Deployments with Kong Ingress Controller

Kong Logo
EngineeringFebruary 11, 2025

This blog addresses the common challenges organizations face with fragmented API management in Kubernetes environments and presents Kong Konnect combined with the Kong Ingress Controller (KIC) as a comprehensive solution.  We'll highlight the issues

Declan Keane

Ready to see Kong in action?

Get a personalized walkthrough of Kong's platform tailored to your architecture, use cases, and scale requirements.

Get a Demo
Powering the API world

Increase developer productivity, security, and performance at scale with the unified platform for API management, AI gateways, service mesh, and ingress controller.

Sign up for Kong newsletter

    • Platform
    • Kong Konnect
    • Kong Gateway
    • Kong AI Gateway
    • Kong Insomnia
    • Developer Portal
    • Gateway Manager
    • Cloud Gateway
    • Get a Demo
    • Explore More
    • Open Banking API Solutions
    • API Governance Solutions
    • Istio API Gateway Integration
    • Kubernetes API Management
    • API Gateway: Build vs Buy
    • Kong vs Postman
    • Kong vs MuleSoft
    • Kong vs Apigee
    • Documentation
    • Kong Konnect Docs
    • Kong Gateway Docs
    • Kong Mesh Docs
    • Kong AI Gateway
    • Kong Insomnia Docs
    • Kong Plugin Hub
    • Open Source
    • Kong Gateway
    • Kuma
    • Insomnia
    • Kong Community
    • Company
    • About Kong
    • Customers
    • Careers
    • Press
    • Events
    • Contact
    • Pricing
  • Terms
  • Privacy
  • Trust and Compliance
  • © Kong Inc. 2025