KIND (Local Environment)

Locally Testing With KIND

KIND is a tool to run local Kubernetes clusters inside Docker container nodes.

Submariner provides (via Shipyard) scripts that deploy 3 Kubernetes clusters locally - 1 broker and 2 data clusters with the Submariner dataplane components deployed on all the clusters.

Docker must be installed and running on your computer.

Deploying manually

If you wish to try out Submariner deployment manually, you can first create KIND clusters using our scripts and subctl.

Create KIND clusters

To create KIND clusters, run:

git clone
cd submariner
make clusters

This creates 3 Kubernetes clusters, cluster1, cluster2 and cluster3.

Install subctl

Download the subctl binary and make it available on your PATH.

curl -Ls | bash
export PATH=$PATH:~/.local/bin
echo export PATH=\$PATH:~/.local/bin >> ~/.profile

Use cluster1 as broker

subctl deploy-broker --kubeconfig output/kubeconfigs/kind-config-cluster1 --service-discovery

Join cluster2 and cluster3 to the broker

subctl join --kubeconfig output/kubeconfigs/kind-config-cluster2 broker-info.subm --clusterid cluster2 --disable-nat
subctl join --kubeconfig output/kubeconfigs/kind-config-cluster3 broker-info.subm --clusterid cluster3 --disable-nat

You now have a Submariner environment that you can experiment with.

Verify Deployment

To manually verify the deployment follow the steps below.

kubectl --kubeconfig output/kubeconfigs/kind-config-cluster3 create deployment nginx --image=nginx
kubectl --kubeconfig output/kubeconfigs/kind-config-cluster3 expose deployment nginx --port=80
subctl export service --namespace default nginx

Perform automated verification

You can also perform automated verifications of service discovery via the subctl verify command.

subctl verify cluster-a/auth/kubeconfig cluster-b/auth/kubeconfig --only service-discovery,connectivity --verbose