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:
  1. kind: Cluster
  2. apiVersion: kind.x-k8s.io/v1alpha4
  3. nodes:
  4. - role: control-plane
  5. kubeadmConfigPatches:
  6. - |
  7. kind: InitConfiguration
  8. nodeRegistration:
  9. kubeletExtraArgs:
  10. node-labels: "ingress-ready=true"
  11. extraPortMappings:
  12. - containerPort: 80
  13. hostPort: 8081
  14. protocol: TCP
  15. - containerPort: 443
  16. hostPort: 8443
  17. protocol: TCP
  18. - role: worker
  19. - 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:
  1. kind create cluster --config kind-cluster-config.yaml

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

  1. Creating cluster "kind" ...
  2. Ensuring node image (kindest/node:v1.21.1) 🖼
  3. Preparing nodes 📦 📦 📦
  4. Writing configuration 📜
  5. Starting control-plane 🕹️
  6. Installing CNI 🔌
  7. Installing StorageClass 💾
  8. Joining worker nodes 🚜
  9. Set kubectl context to "kind-kind"
  10. You can now use your cluster with:
  11. kubectl cluster-info --context kind-kind
  12. Thanks for using kind! 😊

Dapr

  1. Initialize Dapr:
  1. 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:

  1. dapr status -k

the output should look like this:

  1. NAME NAMESPACE HEALTHY STATUS REPLICAS VERSION AGE CREATED
  2. dapr-sentry dapr-system True Running 1 1.5.1 53s 2021-12-10 09:27.17
  3. dapr-operator dapr-system True Running 1 1.5.1 53s 2021-12-10 09:27.17
  4. dapr-sidecar-injector dapr-system True Running 1 1.5.1 53s 2021-12-10 09:27.17
  5. dapr-dashboard dapr-system True Running 1 0.9.0 53s 2021-12-10 09:27.17
  6. 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:
  1. dapr dashboard -k -p 9999

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

Next steps

Last modified December 30, 2021: Update daprdocs/content/en/operations/hosting/kubernetes/cluster/setup-kind.md (04ab8fb6)