Deckhouse Kubernetes Platform in kind

kind is a tool for running local Kubernetes clusters using container “nodes” and was primarily designed for testing Kubernetes itself, but may be used for local development or CI.

Installing Deckhouse on kind, will allow you to get a Kubernetes cluster with Deckhouse installed in less than 15 minutes. It will allow you to get acquainted with Deckhouse main features quickly.

Deckhouse will be installed in a minimal configuration, with Grafana based monitoring enabled. Some features, such as node management and control plane management will not work. To simplify, the sslip.io service is used for working with DNS.

Some providers are blocking work sslip.io and similar services. If you encounter such a problem, put the necessary domain names in the hosts file locally, or use a real domain and fix DNS names template.

Computer minimal requirements...

  • Operating system: macOS or Linux (Windows isn’t supported).
  • Installed container runtime (docker, containerd) and docker client.
    • For containers to work, at least 4 CPU and 8 GB of RAM must be allocated (Settings -> Resources in Docker Desktop).
    • The Enable privileged port mapping parameter must be enabled on macOS (Settings -> Advanced -> Enable privileged port mapping in Docker Desktop)
  • HTTPS access to the registry.deckhouse.io container image registry.

Installing

A Kubernetes cluster will be deployed and Deckhouse will be installed into a cluster using the Shell script:

  • Run the following command for installing Deckhouse Community Edition:
    bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)"
    
    bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)"
  • Or run the following command for installing Deckhouse Enterprise Edition by providing a license key:
     echo <LICENSE_KEY> | docker login -u license-token --password-stdin registry.deckhouse.io
    bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)" -- --key <LICENSE_KEY>
    
    echo <LICENSE_KEY> | docker login -u license-token --password-stdin registry.deckhouse.io bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)" -- --key <LICENSE_KEY>

After installation is complete, you will get the admin user password for accessing Grafana. Grafana will be available at the URL http://grafana.127.0.0.1.sslip.io.

Example of the output...

Waiting for the Ingress controller to be ready.........................................
Ingress controller is running.

You have installed Deckhouse Kubernetes Platform in kind!

Don't forget that the default kubectl context has been changed to 'kind-d8'.

Run 'kubectl --context kind-d8 cluster-info' to see cluster info.
Run 'kind delete cluster --name d8' to remove cluster.

Provide following credentials to access Grafana at http://grafana.127.0.0.1.sslip.io/ :

    Username: admin
    Password: LlF7X67BvgRO74LNWXHi

The information above is saved to /home/user/.kind-d8/info.txt file.

Good luck!

The user admin password for Grafana can also be found by running the command:

kubectl -n d8-system exec svc/deckhouse-leader -c deckhouse -- sh -c "deckhouse-controller module values prometheus -o json | jq -r '.internal.auth.password'"
kubectl -n d8-system exec svc/deckhouse-leader -c deckhouse -- sh -c "deckhouse-controller module values prometheus -o json | jq -r '.internal.auth.password'"