Set up a KiND cluster

How to set up Dapr on a KiND cluster.

Set up a KiND cluster

Prerequisites

Note: For Windows, enable Virtualization in BIOS and install Hyper-V

Install and configure KiND

Make sure you follow one of the Installation options for KiND.

In case you are using Docker Desktop, double-check that you have performed the recommended settings (4 CPUs and 8 GiB of RAM available to Docker Engine).

Configure and create the KiND cluster

  1. Create a file named kind-cluster-config.yaml, and paste the following:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
  kubeadmConfigPatches:
  - |
    kind: InitConfiguration
    nodeRegistration:
      kubeletExtraArgs:
        node-labels: "ingress-ready=true"
  extraPortMappings:
  - containerPort: 80
    hostPort: 8081
    protocol: TCP
  - containerPort: 443
    hostPort: 8443
    protocol: TCP
- role: worker
- role: worker

This is going to request KiND to spin up a kubernetes cluster comprised of a control plane and two worker nodes. It also allows for future setup of ingresses and exposes container ports to the host machine.

  1. Run the kind create cluster providing the cluster configuration file:
kind create cluster --config kind-cluster-config.yaml

Wait until the cluster is created, the output should look like this:

Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.21.1) 🖼
 ✓ Preparing nodes 📦 📦 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
 ✓ Joining worker nodes 🚜
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Thanks for using kind! 😊

Dapr

  1. Initialize Dapr:
dapr init --kubernetes

Once Dapr finishes initializing its core components are ready to be used on the cluster.

To verify the status of these components run:

dapr status -k

the output should look like this:

  NAME                   NAMESPACE    HEALTHY  STATUS   REPLICAS  VERSION  AGE  CREATED
  dapr-sentry            dapr-system  True     Running  1         1.5.1    53s  2021-12-10 09:27.17
  dapr-operator          dapr-system  True     Running  1         1.5.1    53s  2021-12-10 09:27.17
  dapr-sidecar-injector  dapr-system  True     Running  1         1.5.1    53s  2021-12-10 09:27.17
  dapr-dashboard         dapr-system  True     Running  1         0.9.0    53s  2021-12-10 09:27.17
  dapr-placement-server  dapr-system  True     Running  1         1.5.1    52s  2021-12-10 09:27.18
  1. Forward a port to Dapr dashboard:
dapr dashboard -k -p 9999

So that you can validate that the setup finished successfully by navigating to http://localhost:9999.

Next steps