Project: Meshery (Provisioning / Automation & Configuration)
File: nsm.md

layout: default title: Meshery Adapter for Network Service Mesh name: Meshery Adapter for Network Service Mesh component: Network Service Mesh earliest_version: v0.2.1 port: 10004/gRPC project_status: stable lab: nsm-meshery-adapter github_link: https://github.com/meshery/meshery-nsm image: /assets/img/service-meshes/nsm.svg white_image: /assets/img/service-meshes/nsm.svg permalink: extensibility/adapters/nsm redirect_from: service-meshes/adapters/nsm language: en {% assign sortedtestsgroup = site.compatibility | group_by: "meshery-component" %} {% for group in sortedtestsgroup %} {% if group.name == "meshery-nsm" %} {% assign items = group.items | sort: "meshery-component-version" | reverse %} {% for item in items %} {% if item.meshery-component-version != "edge" %} {% if item.overall-status == "passing" %} {% assign adapterversiondynamic = item.meshery-component-version %} {% break %} {% elsif item.overall-status == "failing" %} {% continue %} {% endif %} {% endif %} {% endfor %} {% endif %} {% endfor %} {% include compatibility/adapter-status.html %} {% include adapter-labs.html %} The {{page.name}} can install {{page.earliest_version}} of {{page.component}}. A number of sample applications can be installed using the {{page.name}}. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/nsm-adapter.png"> <img style="width:500px; background: white" src="{{ site.baseurl }}/assets/img/adapters/nsm/nsm-adapter.png" /> </a> Click on (+) and choose the {{page.earliest_version}} of the {{page.component}}. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/nsm-install.png"> <img style="width:500px; background: white" src="{{ site.baseurl }}/assets/img/adapters/nsm/nsm-install.png" /> </a> The ({{ page.name }}) includes a handful of sample applications. These applications represent different network services orchestrated by {{page.component}}. Use Meshery to deploy any of these sample applications: Watch this presentation to see the Hello NSM Application in-action: <iframe width="560" height="315" src="https://www.youtube.com/embed/4xKixsDTtdM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> See on YouTube: A simple example that connects a vpp based Pod to a Network Service using memif. The simplest possible case for {{page.component}} is to have is connecting a Client via a vWire to another Pod that is providing a Network Service. Network Service Mesh allows flexibility in the choice of mechanisms used to provide that vWire to a workload. The icmp responder example does this with kernel interfaces. The vpp-icmp-responder provides and consumes the same 'icmp-responder' Network Service, but has Client's and Endpoint's that use a high speed memory interfaces to achieve performance unavailable via kernel interfaces. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/vpp-icmp-responder-example.svg"> <img style="width:500px; background: white" src="{{ site.baseurl

/> </a> Working process This will install two Deployments: | Name | Description | | : | : | | vpp-icmp-responder-nsc | The Clients (four replicas) | | vpp-icmp-responder-nse | The Endpoints (two replicas) | And cause each Client to get a vWire connecting it to one of the Endpoints. Network Service Mesh handles the Network Service Discovery and Routing, as well as the vWire 'Connection Handling' for setting all of this up. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/vpp-icmp-responder-example-2.svg"> <img style="width:500px; background: white" src="{{ site.baseurl }}/assets/img/adapters/nsm/vpp-icmp-responder-example-2.svg" /> </a> In order to make this case more interesting, Endpoint1 and Endpoint2 are deployed on two separate Nodes using PodAntiAffinity, so that the Network Service Mesh has to demonstrate the ability to string vWires between Clients and Endpoints on the same Node and Clients and Endpoints on different Nodes. Verification First verify that the vpp-icmp-responder example Pods are all up and running: <pre class="codeblock-pre"> <div class="codeblock"><div class="clipboardjs"> $ kubectl get pods | grep vpp-icmp-responder </div></div> </pre> To see the vpp-icmp-responder example in action, you can run: <pre class="codeblock-pre"> <div class="codeblock"><div class="clipboardjs"> $ curl -s https://raw.githubusercontent.com/networkservicemesh/networkservicemesh/master/scripts/nscpingall.sh | bash </div></div> </pre> The simplest possible case for Network Service Mesh is to have is connecting a Client via a vWire to another Pod that is providing a Network Service. We call this case the icmp-responder example, because it allows the client to ping the IP address of the Endpoint over the vWire. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/vpp-icmp-responder-example.svg"> <img style="width:500px; background: white" src="{{ site.baseurl }}/assets/img/adapters/nsm/vpp-icmp-responder-example.svg" /> </a> Outcomes This will install two Deployments: | Name | Description | | :-- | :-- | | icmp-responder-nsc | The Clients, four replicas | | icmp-responder-nse | The Endpoints, two replicas | And cause each Client to get a vWire connecting it to one of the Endpoints. Network Service Mesh handles the Network Service Discovery and Routing, as well as the vWire 'Connection Handling' for setting all of this up. <a href="{{ site.baseurl }}/assets/img/adapters/nsm/icmp-responder-example-2.svg"> <img style="width:500px; background: white" src="{{ site.baseurl }}/assets/img/adapters/nsm/icmp-responder-example-2.svg" /> </a> In order to make this case more interesting, Endpoint1 and Endpoint2 are deployed on two separate Nodes using PodAntiAffinity, so that the Network Service Mesh has to demonstrate the ability to string vWires between Clients and Endpoints on the same Node and Clients and Endpoints on different Nodes. Verification Verify that the icmp-responder example Pods are all up and running: <pre class="codeblock-pre"> <div class="codeblock"><div class="clipboardjs"> $ kubectl get pods | grep icmp-responder </div></div> </pre> To see the icmp-responder example in action, you may run: <pre class="codeblock-pre"> <div class="codeblock"><div class="clipboardjs"> $ curl -s https://raw.githubusercontent.com/networkservicemesh/networkservicemesh/master/scripts/nscpingall.sh | bash </div></div> </pre> Examine and how adapters fit in as a component. Learn more about .