Oprava chýbajúcej 'cgroup' podpory pre K3s na Raspberry Pi OS

Vytvorené: 24. 8. 2025 08:44 Aktualizované: 27. 8. 2025 13:14
Vyriešené
Obsah článku

title: "Oprava chýbajúcej 'cgroup' podpory pre K3s na Raspberry Pi OS"
slug: "k3s-raspberry-pi-cgroup-memory-fix"
technologies: ["K3s", "Kubernetes", "Raspberry Pi OS", "Linux Kernel"]
tags: ["k3s", "raspberry-pi", "kubernetes", "troubleshooting", "kernel", "cgroups"]
date_solved: "2025-08-21"

Projekt/Téma: Oprava chýbajúcej cgroup podpory pre K3s na Raspberry Pi OS

  1. Cieľ / Problém na vyriešenie: Inštalácia K3s agenta na Raspberry Pi zlyháva, služba k3s-agent.service sa nespustí. Inštalačný log hlási chybu Failed to find memory cgroup. Cieľom je správne nakonfigurovať OS, aby K3s mohol fungovať.

  2. Použité technológie a nástroje:

    • Kontajnerová orchestrácia: K3s
    • OS: Raspberry Pi OS (novšie verzie)
    • Konfigurácia: Bootloader parametre jadra
  3. Kľúčové postupy a konfiguračné kroky:

    1. Pripojiť SD kartu s nainštalovaným OS do hostiteľského PC.
    2. Pripojiť (mount) boot partíciu.
    3. Nájsť a otvoriť na úpravu súbor s parametrami jadra.
    4. Na koniec jediného riadku v súbore pridať (oddelené medzerou) nasledujúce parametre: cgroup_enable=memory cgroup_memory=1.
    5. Uložiť súbor, odpojiť kartu a spustiť Raspberry Pi.
  4. Výsledné kódy a skripty: Príklad príkazu na pridanie parametrov do správneho súboru (cesta sa môže líšiť podľa mountpointu):

    echo " cgroup_enable=memory cgroup_memory=1" | sudo tee -a /media/sido/bootfs/firmware/cmdline.txt
  5. Zistené problémy a riešenia (Gotchas):

    • Problém: k3s-agent potrebuje pre svoju funkciu (limitovanie zdrojov kontajnerov) zapnuté cgroups pre pamäť, ktoré na defaultnej inštalácii RPi OS nie sú aktívne.
    • Riešenie: Aktivácia cgroups pridaním parametrov cgroup_enable=memory cgroup_memory=1 do bootovacieho súboru jadra.
    • Kľúčový Gotcha: Na novších verziách Raspberry Pi OS (vytvorených napr. cez rpi-imager) sa zmenilo umiestnenie konfiguračného súboru. Úprava /boot/cmdline.txt nemá žiadny efekt. Správny súbor na úpravu je /boot/firmware/cmdline.txt.
  6. Finálny výsledok / Záver: Po reštarte s upravenými parametrami jadra systém správne aktivuje memory cgroups, čo umožní úspešné spustenie služby k3s-agent.service a pripojenie uzla do Kubernetes klastra.

Vyriešené: 21. 8. 2025