Create and manage multi-Kubernetes clusters with Linkerd using KinD, kubectl, Helm, Step, and Linkerd-SMI. Try it now!

SRE/Kubernetes Admin
Adonai Costa

First of ALL 🎈 # Welcome! 💚
Really Thanks to my friends of Buoyant and Linkerd project - Catherine Paganini, Jason and Bill Morgan and Flynn, without you, we can't reach multiclusters in mesh ( because others meshs, are slipslop )
This repository was written in 2022/December, and the binaries and paths may be updated, [contact me](mailto:adonai.costa@gmailcom) if you need help! But try to understand the steps ;-)
The idea here is to show how easy it is to create and maintain multiclusters with a service mesh that actually works. Until now, this demand was a hype and now it arrives as a real need, given that there is indeed unavailability in public or private clouds.
After researching a lot, I understood that linkerd proved to be capable of performing this task with ease, traceability, security, and observability. Other service meshes present countless limitations that prevent us from implementing, maintaining, or even being able to perform a simple troubleshoot.
Install the tools that will make you eager to create clusters in mesh.
kind: https://kind.sigs.k8s.io/docs/user/quick-start/#installation
kubectl: https://kubernetes.io/docs/tasks/tools/
helm: https://helm.sh/docs/intro/install/
step: https://smallstep.com/docs/step-cli/installation
linkerd: https://github.com/linkerd/linkerd2/releases/tag/stable-2.12.3
linkerd-smi: https://github.com/linkerd/linkerd-smi/releases/tag/v0.2.0
Let's go!
KinD, which everyone already knows, creates Kubernetes clusters on your personal machine for tests and validations. Very useful so you don't mess up your productive environment.
kubectl and Helm need no introduction.
step is a utility that facilitates the creation of certificates that we are going to use.
The linkerd binary, obviously, was developed by the grace of God and my friends at Buoyant to create, update, and interact with the finest service mesh in the world.
And finally, linkerd-smi is the add-on/extension used to create custom resources like TrafficSplit, which can even interact with flagger for automatic canary-type deployment rollouts.
I will demonstrate here the local multi-Cluster function using these tools.
Creating the kind-demo and kind-demo3 clusters, YES, YOU CAN! Go! Go! Go!
❯ cat << EOF >> kind.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: demo
networking:
apiServerAddress: 192.168.1.61 # PUT YOUR IP ADDRESSS OF YOUR MACHINE HERE DUMMIE! ;-)
podSubnet: "10.244.0.0/16"
serviceSubnet: "10.96.0.0/12"
nodes:
- role: control-plane
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
- role: worker
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
- role: worker
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
EOF
kind create cluster --config kind.yaml
Creating cluster "demo" ...
✓ Ensuring node image (kindest/node:v1.24.7) 🖼
✓ Preparing nodes 📦 📦 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
✓ Joining worker nodes 🚜
Set kubectl context to "kind-demo"
You can now use your cluster with:
kubectl cluster-info --context kind-demo
Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
❯
❯
❯ cat << EOF >> kind3.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: demo3
networking:
apiServerAddress: 192.168.1.61 # PUT YOUR IP ADDRESSS OF YOUR MACHINE, HERE DUMMIE! ;-)
podSubnet: "10.245.0.0/16"
serviceSubnet: "10.97.0.0/12"
nodes:
- role: control-plane
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
- role: worker
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
- role: worker
image: kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315
EOF
kind create cluster --config kind3.yaml
Creating cluster "demo3" ...
✓ Ensuring node image (kindest/node:v1.24.7) 🖼
✓ Preparing nodes 📦 📦 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
✓ Joining worker nodes 🚜
Set kubectl context to "kind-demo3"
You can now use your cluster with:
kubectl cluster-info --context kind-demo3
Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂
Newsletter Getup.
Atualizações sobre Kubernetes e Software Supply Chain Security todos os meses.
Operating Kubernetes in production for more than 13 years. With Quor, this experience extends to software supply chain security as well.
GET UP
© Getup · 2026

