Edge & IoT Deployments

k3s runs a full cluster on a Raspberry Pi or edge gateway, managed centrally from the cloud.

The edge is where k3s truly shines. A single small device can run a complete, self-healing cluster close to where the data is produced.

A typical edge pattern

  • Each site runs a single-node k3s on a Raspberry Pi, gateway, or mini-PC.
  • Apps are deployed the same way everywhere with GitOps or auto-deploying manifests.
  • A central system pushes updates and collects health from all sites.
k3s running at edge and IoT sites managed from the cloudCentral managementGitOps + monitoringRaspberry Pik3s nodeapp PodsEdge gatewayk3s nodeapp PodsRetail storek3s nodeapp Podseach site: single-node k3s, low resource use
One small k3s node per location, all driven from a single control point.

Example

Example · bash
# Provision an edge Pi in one line, with a chosen node name
curl -sfL https://get.k3s.io | \
  INSTALL_K3S_EXEC="--node-name store-42" sh -

# Bake the app in so it deploys on first boot
sudo cp store-app.yaml \
  /var/lib/rancher/k3s/server/manifests/

When to use it

  • A retail chain runs a k3s agent on each store's local server, managed by a central k3s cluster in the cloud via the Rancher management plane.
  • A smart factory deploys k3s on an NVIDIA Jetson device to run GPU-accelerated defect-detection pods directly on the production line.
  • An autonomous vehicle fleet uses k3s on in-car compute units to orchestrate sensor-fusion and safety pods with strict latency requirements.

More examples

Install k3s on ARM64 edge device

Installs k3s on an ARM64 edge device and labels it with the site identifier for workload targeting.

Example · bash
curl -sfL https://get.k3s.io | \
  INSTALL_K3S_EXEC='--node-name edge-store-42 \
  --node-label site=store-42 \
  --write-kubeconfig-mode 644' sh -
kubectl get nodes --show-labels

Pin workload to edge node

Uses nodeSelector to target a specific edge node and adds a toleration so the pod runs even under disk pressure.

Example · yaml
spec:
  nodeSelector:
    site: store-42
  tolerations:
  - key: node.kubernetes.io/disk-pressure
    operator: Exists
    effect: NoSchedule

Limit pod resource footprint

Sets tight resource boundaries for a sensor-processing pod to leave headroom for the k3s agent on constrained IoT hardware.

Example · yaml
containers:
- name: sensor-proc
  image: factory/sensor:v3
  resources:
    requests:
      cpu: '50m'
      memory: '32Mi'
    limits:
      cpu: '200m'
      memory: '64Mi'

Discussion

  • Be the first to comment on this lesson.