Build
Table of contents
Prerequisites
Make sure you have the following dependencies to run NSM:
In addition, to build NSM you will need:
- Go 1.13 or later
- Docker
- GNU make
Build
You can build all of the containers needed for NSM, including a bunch of handle Network Service Endpoints (NSEs) and NSCs (Network Service Clients) that are useful for testing, but not part of the core with:
make k8s-build
And if you are using the Kind machinery to run your K8s cluster (described a bit further down), you really want to use the following:
make k8s-save
because make k8s-save
will build your containers and save them in scripts/vagrant/images
where they can be loaded by the Kins K8s cluster.
You can also selectively rebuild any component, say the nsmd
, with make k8s-nsmd-save
After installing you can verify it with helm version
.
Install
Network Service Mesh provides a handy Kind setup for running a small K8s cluster. Once you’ve done make k8s-save
, you can deploy to it with:
make k8s-save # build and save the NSM docker containers
make kind-start # start up an nsm cluster named kind
export KUBECONFIG="$(kind get kubeconfig-path --name="nsm")" # Point kubectl at your kind instance
make k8s-load-images # load NSM docker containers into kind
make helm-init # initialize helm
make helm-install-nsm # install the nsm infrastructure
Run
- icmp-responder - A simple example that connects an App Pod Client to a Network Service.
bash make helm-install-icmp-responder
- vpp-icmp-responder - A simple example that connects a vpp based Pod to a Network Service using memif.
bash make helm-install-vpp-icmp-responder
- vpn - An example that simulates an App Pod Client connecting to a Network Service implemented as a chain simulating a VPN Use Case
bash make helm-install-vpn
Verify
You can check to see things are working properly by typing:
make k8s-check
which will try pinging from NSCs to NSEs.
Uninstall
You can remove the effects of helm-install-% with:
make helm-delete-%
Table of contents