You are viewing documentation for the Kairos release v3.0.14. For the latest release, click here.

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)