Get kind (or check for another installation methods)

# brew install kind

and create local k8s cluster with 1 node for control-plane and 3 worker nodes.

cat > k8s-multinode-config.yaml <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
- role: worker
EOF
❯ kind create cluster --name k8s-local-multinode --config k8s-multinode-config.yaml

and voila:

❯ kind get clusters
k8s-local-multinode
❯ k get nodes
NAME                      STATUS   ROLES           AGE   VERSION
k8s-local-multinode-control-plane   Ready    control-plane   3h    v1.29.2
k8s-local-multinode-worker          Ready    <none>          3h    v1.29.2
k8s-local-multinode-worker2         Ready    <none>          3h    v1.29.2
k8s-local-multinode-worker3         Ready    <none>          3h    v1.29.2

Links: