Quick Start¶
Run the dtk
script in the repo root. If you supply no arguments, the script will use KVM to provision and configure a cluster based on the config.yaml
file in the project root resulting in a three node Alma Linux cluster consisting of one controller and two workers. See the Configuration section for details.
I recommend you run first with just the --check-compatibility
option to check the versions of the CLIs used by the scripts (curl, etc.) against the tested versions. E.g.:
./dtk --check-compatibility
The tools / components checked by the script are:
Component | Purpose | Only for Virtual Box? | Only for KVM? |
---|---|---|---|
openssl |
SSL Connectivity to guests. | - | - |
openssh |
SSL Connectivity to guests. | - | - |
genisoimage |
Builds an ISO to configure VirtualBox. | Yes | - |
Virtual Box (vboxmanage) | Provisions VirtualBox VMs. | Yes | - |
Host operating system | I run Ubuntu but there's really nothing specific to any given Linux as long as Bash is available. | - | - |
kubectl |
Connect to the provisioned cluster to run clustr commands. | - | - |
curl |
Download binaries. | - | - |
helm |
Install Add-Ons (e.g.: CoreDNS.) | - | - |
yq |
Parse the configuration yaml file. | - | - |
virt-install |
Provision KVM VMs. | - | Yes |
virsh |
Provision KVM VMs. | - | Yes |
qemu-img |
Provision KVM VMs. | - | Yes |
You may need to install tools and there will likely be differences between the versions tested by the project, and what you've installed. You have to decide whether the differences are material. Slight version differences may not matter, but for sure you need all the listed tools. In keeping with the project philosophy of not modifying your desktop - you must install the tools listed in order to use this project - the project seeks to not alter your desktop OS.
Once the cluster comes up, the script will display a message telling you how to set your KUBECONFIG
environment variable in order to access the cluster. It will also display a message showing how to SSH into each node. (There's also a helper script sshto
that you can use for that.)