Distributions

Distributions refer to the Kubernetes distribution that is running a cluster. The Distribution is responsible for providing the Kubernetes API and the underlying components that are used to run the Kubernetes cluster.

Kind

The Kind distribution is a close-to-native Kubernetes distribution that runs on Docker containers. It is built by the official Kubernetes SIG Testing group. Kind is the default distribution used by KSail.

Kind does not support LoadBalancer service by default, but the cloud-provider-kind project aims to solve this. KSail spins up a container that runs the cloud-provider-kind service, which ensures any Kubernetes service of type LoadBalancer is accessible from the host machine. On Windows and MacOS, you can access the services of type LoadBalancer using localhost and the port number that is mapped to the host by the Envoy container kindccm-*. It will map a port per service to the host machine.

K3d

The K3d distribution is a lightweight Kubernetes distribution that is designed for resource-constrained environments. It is built on top of the K3s distribution.

K3d supports services of type LoadBalancer by default. You need to map the ports for the services of type LoadBalancer to the host machine via the k3d.yaml configuration file. This is done by specifying the ports field in the k3d.yaml file. The ports will be mapped to the host machine when the cluster is created.