Single Node k3s cluster

This section describe examples on how to deploy Kairos with k3s as a single-node cluster

In the example below we will use a bare metal host to provision a Kairos node in the local network with K3s.

Installation

Use the standard images which contain k3s.

Follow the Installation documentation, and use the following cloud config file with Kairos:

#cloud-config

hostname: metal-{{ trunc 4 .MachineID }}
users:
- name: kairos
  # Change to your pass here
  passwd: kairos
  ssh_authorized_keys:
  # Replace with your github user and un-comment the line below:
  # - github:mudler

k3s:
  enabled: true
  args:
  - --disable=traefik,servicelb

Notably:

  • We use the k3s block to disable traefik and servicelb (the default k3s load balancer).
  • In a single-node setup, you may wish to use a non-generated node name. This can be achieved with these options:
    k3s:
      enabled: true
      replace_args: true
      args:
      - --node-name=my-node
    
  • We use write_files to write manifests to the default k3s manifest directory (/var/lib/rancher/k3s/server/manifests/) see docs to deploy MetalLB and configure it with the 192.168.1.10-192.168.1.20 IP range. Make sure to pick up a range which doesn’t interfere with your local DHCP network.

Last modified February 23, 2024: Reduce sizes and remove warnings (0e183ae)