Správa Helm repozitárov a nasadenie n8n aplikácie

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

title: "Správa Helm repozitárov a nasadenie n8n aplikácie"
slug: "helm-sprava-repozitarov-nasadenie-n8n"
technologies: ["Helm", "Kubernetes", "n8n", "OCI", "YAML"]
tags: ["helm", "n8n", "kubernetes", "deployment", "automation", "oci-registry", "cheatsheet"]
date_solved: "2025-08-19"

Projekt/Téma: Kompletný životný cyklus správy n8n aplikácie v Kubernetes pomocou Helm, vrátane inštalácie, upgradu, odinštalácie a diagnostiky.

1. Cieľ / Problém na vyriešenie: Nasadiť a spravovať automatizačnú platformu n8n v k3s/Kubernetes clusteri pomocou Helm chartu. Cieľom je dosiahnuť opakovateľné a konfigurovateľné nasadenie, ktoré zahŕňa perzistentné úložisko, správne nastavenie sieťových služieb a možnosť jednoduchej aktualizácie aplikácie a jej konfigurácie.

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

  • helm: Nástroj na správu Kubernetes aplikácií (chartov).
  • OCI (Open Container Initiative): Štandard pre distribúciu chartov. Namiesto tradičných Helm repozitárov sa používa OCI registry (napr. ghcr.io alebo iné kontajnerové registre).
  • kubectl: Na overenie stavu Kubernetes objektov vytvorených Helmom.
  • YAML: Formát pre konfiguračné súbory (values.yaml).

3. Kľúčové postupy a konfiguračné kroky:

  1. Inštalácia (Prvé nasadenie): Použitie príkazu helm install na nasadenie nového "release" (inštancie) n8n.
    • Používa sa OCI adresa chartu (oci://...).
    • Parameter -f špecifikuje cestu k vlastnému values.yaml súboru s konfiguráciou.
    • Parameter -n (alebo --namespace) definuje cieľový menný priestor.
    • Parameter --create-namespace zabezpečí vytvorenie menného priestoru, ak neexistuje.
  2. Upgrade (Aktualizácia): Použitie príkazu helm upgrade na aplikovanie zmien v values.yaml alebo na aktualizáciu na novšiu verziu chartu. Príkaz má takmer identickú syntax ako install, čo umožňuje konzistentnosť.
  3. Odinštalácia: Použitie príkazu helm uninstall na odstránenie všetkých Kubernetes zdrojov asociovaných s daným "release". Je dôležité špecifikovať aj menný priestor.
  4. Diagnostika a Inšpekcia:
    • helm list: Zobrazí všetky nasadené "releases".
    • helm get values: Získa aktuálne aplikované hodnoty pre daný "release".
    • helm show values: Zobrazí predvolené hodnoty (values.yaml) priamo z chartu.
    • helm template: Vygeneruje finálne Kubernetes manifesty bez toho, aby ich reálne nasadil. To je extrémne užitočné pre ladenie a overenie, ako sa hodnoty z values.yaml premietnu do výsledných objektov (napr. PersistentVolumeClaim).

4. Výsledné kódy a skripty:

  • Inštalácia n8n z OCI repozitára:
    # 'my-n8n' je názov release, oci://... je cesta k chartu
    helm install my-n8n oci://8gears.container-registry.com/library/n8n --version 1.0.0 -f /opt/k3s/n8n-values.yaml --namespace n8n --create-namespace
  • Upgrade existujúceho n8n release:
    # Názov 'my-n8n' a namespace 'n8n' musia zodpovedať existujúcemu release
    helm upgrade my-n8n oci://8gears.container-registry.com/library/n8n --version 1.0.0 -f /opt/k3s/n8n-values.yaml --namespace n8n
  • Odinštalácia n8n:
    helm uninstall my-n8n --namespace n8n
  • Diagnostické príkazy:

    # Zobrazenie defaultných hodnôt chartu
    helm show values oci://8gears.container-registry.com/library/n8n --version 1.0.0
    
    # Zobrazenie hodnôt aplikovaných na bežiaci release
    helm get values my-n8n -n n8n
    
    # "Suchý beh" - vygenerovanie manifestov bez nasadenia
    helm template my-n8n oci://8gears.container-registry.com/library/n8n --version 1.0.0 -f /opt/k3s/n8n-values.yaml --namespace n8n

5. Zistené problémy a riešenia (Gotchas):

  • Problém: Po helm uninstall zostal v clusteri PersistentVolumeClaim (PVC).
    • Riešenie: Toto je štandardné správanie Helmu na ochranu dát. PVC je potrebné zmazať manuálne pomocou kubectl delete pvc pvc-name -n namespace , ak si ste istí, že dáta už nepotrebujete.
  • Problém: Zmena v values.yaml sa neprejavila po helm upgrade.
    • Riešenie: Overte, či ste v príkaze helm upgrade použili správnu cestu k values.yaml súboru. Pomocou helm get values my-n8n -n n8n si môžete overiť, aké hodnoty sú reálne v clusteri nasadené. Niekedy je tiež potrebný manuálny reštart podov ( kubectl rollout restart deployment/... ), ak chart neimplementuje automatické prebratie zmien (napr. zo ConfigMap) .
  • Problém: Ako zistiť, aké všetky možnosti konfigurácie (values) chart ponúka?

    • Riešenie: Príkaz helm show values chart-name je najlepší spôsob. Vypíše celý obsah predvoleného values.yaml súboru s komentármi, ktoré vysvetľujú jednotlivé parametre.

6. Finálny výsledok / Záver: Používanie Helm na správu aplikácií ako n8n dramaticky zvyšuje efektivitu a spoľahlivosť. Kľúčom k úspechu je pochopenie životného cyklu (install, upgrade, uninstall) a využívanie diagnostických nástrojov (get/show values, template) na overenie konfigurácie pred a po nasadení. Prechod na OCI registry zjednodušuje distribúciu a správu verzií chartov.

Vyriešené: 19. 8. 2025