In this article, I’ll explain how to set up Uptime Kuma on a k3s Kubernetes cluster. I’ll be using MetalLB on my k3s cluster to assign LAN IP addresses. You can check out my article explaining how to do this:

Prerequisites
Before you begin, ensure you have the following:
- A running k3s Kubernetes cluster.
- MetalLB installed and configured on your k3s cluster to assign LAN IP addresses. Refer to my MetalLB article for detailed steps.
Step 1: Create Configuration Files
First, create a directory for your Uptime Kuma configurations. Inside this directory, you will create three YAML files:
uptime-kuma-loadbalancer.yamluptime-kuma-pvc.yamluptime-kuma.yaml
1. uptime-kuma-loadbalancer.yaml
This file defines a LoadBalancer service to expose Uptime Kuma on your local network.
apiVersion: v1
kind: Service
metadata:
name: uptime-lb
spec:
selector:
app: uptime-kuma
ports:
- port: 3001
targetPort: 3001
type: LoadBalancer
loadBalancerIP: 192.168.2.210
2. uptime-kuma-pvc.yaml
This file defines a PersistentVolumeClaim to provide storage for Uptime Kuma.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: uptime-kuma-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
3. uptime-kuma.yaml
This file defines the Uptime Kuma deployment.
apiVersion: apps/v1
kind: Deployment
metadata:
name: uptime-kuma
labels:
app: uptime-kuma
spec:
replicas: 1
selector:
matchLabels:
app: uptime-kuma
template:
metadata:
labels:
app: uptime-kuma
spec:
containers:
- name: uptime-kuma
image: louislam/uptime-kuma:latest
ports:
- containerPort: 3001
volumeMounts:
- name: kuma-volume
mountPath: /app/data
volumes:
- name: kuma-volume
persistentVolumeClaim:
claimName: uptime-kuma-pvc
Step 2: Apply the Configurations
Open a terminal in the directory containing your YAML files and run the following command to apply all configurations:
kubectl apply -f ./
Step 3: Verify the Deployment
Check the status of your deployment to ensure everything is running correctly:
Kubectl get all -o wide
Accessing Uptime Kuma
Once your deployment is running, you should be able to access Uptime Kuma on your local network at http://192.168.2.210:3001.