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.
Utilize the Run instructions to install the NSM infrastructure, and then type:
make helm-install-endpoint helm-install-client
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.
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.
First verify that the icmp-responder example Pods are all up and running:
kubectl get pods | grep icmp-responder
To see the icmp-responder example in action, you can run:
curl -s https://raw.githubusercontent.com/networkservicemesh/networkservicemesh/master/scripts/nsc_ping_all.sh | bash