Hadron Quickstart

Deploy an immutable Kubernetes cluster with Hadron by Kairos, faster than a coffee break.

Ready to launch your Kubernetes cluster with ease? Hadron by Kairos makes it simple: download the ISO, start a virtual machine (VM), and follow a few guided steps. Whether you use Linux, Windows, or macOS, you’ll have a cluster running in no time.

Prerequisites

To run Hadron Trusted Boot, you’ll need virtualization software that can run or emulate the amd64 architecture. In this guide, we’ll be using:

Prefer to watch a video?

Download an ISO

Click the following link to download: kairos-hadron-0.0.1-standard-amd64-generic-v3.6.1-beta2-k3sv1.34.2+k3s1.iso

Create a Virtual Machine (VM)

  1. Click New to create a virtual machine.
  2. Fill in the VM details:
    • Name: Hadron
    • ISO Image: /FULL/PATH/kairos-hadron-0.0.1-standard-amd64-generic-v3.6.1-beta2-k3sv1.34.2+k3s1.iso
    • OS: Linux
    • OS Distribution: Other Linux
    • OS Version: Other Linux (64-bit)
  3. Configure the VM resources:
    • Base Memory: 2048 MB (enough for this quickstart; for applications, consider 4 or 8 GB)
    • Number of CPUs: 1 (increase if your host has spare capacity)
    • Disk Size: 8 GB (sufficient for this quickstart; increase if you plan to deploy more workloads)
    • Use EFI: disabled
  4. In the VM list, select the Hadron VM and click Settings.
  5. Go to System and adjust the Boot Order (BIOS only) so Hard Disk is first and Optical comes after.
  6. Go to Network and configure:
    • Attached to: Bridged Adapter
  7. Click OK to save your changes.
  8. With the Hadron VM selected, click Start.
  1. Create a new VM.
  2. Assign the downloaded ISO to the CD-ROM and set it as the boot media.
  3. Configure the VM hardware according to the requirements.
  4. Start the VM.

Installing the OS

  1. After the machine boots, give it a bit until you see the designated machine IP and head to your browser and type http://IP:8080

  2. Add the following configuration to the web installer

    #cloud-config
    users:
    - name: kairos
      passwd: kairos
      groups: [admin]
    k3s:
      enabled: true
    
  3. In the device field, type “auto”

  4. Check on “Restart after installation”

  5. If the installation went correctly, the machine will eventually restart

First Boot

After the reboot you will again see the GRUB boot menu. This time the options don’t include any installation; instead, you can start the system in either active, passive (fallback), or rescue mode.

We will learn more about these options in the next steps. For now, just select the first option that only says Kairos and press Enter. If you don’t touch anything, the system will boot automatically after a few seconds.

After the system finishes booting, you will see a login prompt. Log in with the user kairos and the password you set during the installation.

SSH into the system

We can use the same IP we used to install the system to ssh in:

ssh kairos@IP

Now enter the password you set during the installation.

Check Your Running Cluster

After logging in, you can check the status of the cluster with the kubectl tool. First switch to the root user with the following command:

sudo su -

Start by displaying the nodes in the system:

kubectl get nodes

You should see the k3s control-plane node listed, which is the machine you just provisioned.

NAME     STATUS   ROLES           AGE    VERSION
kairos   Ready    control-plane   164m   v1.34.2+k3s1

If you display the pods within the kube-system namespace:

kubectl get pods -n kube-system

You should see the coredns and local-path-provisioner pods running. For example:

NAME                                      READY   STATUS      RESTARTS   AGE
coredns-7f496c8d7d-mjmkp                  1/1     Running     0          170m
helm-install-traefik-crd-mqdfk            0/1     Completed   0          170m
helm-install-traefik-sr9b5                0/1     Completed   2          170m
local-path-provisioner-578895bd58-k667m   1/1     Running     0          170m
metrics-server-7b9c9c4b9c-kjdfn           1/1     Running     0          170m
svclb-traefik-fbdc293e-scdm4              2/2     Running     0          170m
traefik-6f5f87584-kjcdr                   1/1     Running     0          170m

Conclusion

Congratulations 🎉 You have successfully deployed a Kubernetes cluster using Kairos Hadron 🚀 You can now start deploying your applications and services on your new cluster.

Please refer to the K3s documentation to learn more about the Kubernetes distribution that Kairos uses in the standard images.

What’s Next?

If you’re new to Kairos, follow these in order to learn the full workflow: extend the image, upgrade atomically, then harden the system.

Extend Hadron using a Dockerfile Upgrade & rollback (atomic upgrades) Trusted Boot (Secure Boot + Meassured Boot) quickstart

Deep dive docs

If you’re already comfortable with Kairos and want details, jump straight to the reference docs.

Cloud-config reference

Frequently Asked Questions (FAQs)

How do I configure the system?

You can configure the system by editing the cloud-config file. The cloud-config file is located at /oem/90_custom.yaml. You can edit this file to add users, SSH keys, and other configurations. See the Cloud Config documentation for more information.

What is a Kairos flavor?

A Kairos flavor is a specific version of Kairos that is built on top of a specific Linux distribution. For example, the Alpine Kairos flavor is built on top of Alpine Linux. You can choose the flavor that best suits your needs. Once Hadron is stable, it will become the default flavor, but all the other flavors continue to be supported.

Can I use Kairos without Kubernetes?

Yes, absolutely! You can use Kairos as a standalone Linux distribution without Kubernetes. Just download the Kairos Core artifacts if you don’t want to use Kubernetes, or configure the Standard artifacts with the k3s option disabled.

Can I use a different Kubernetes distribution with Kairos?

Yes, you can download the standard image with k0s. Both k3s and k0s are equally supported by the Kairos team.