Pripojenie n8n v k3s k externému NAS úložisku cez NFS

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

title: "Pripojenie n8n v k3s k externému NAS úložisku cez NFS"
slug: "k3s-n8n-connect-nfs-nas"
technologies: ["Kubernetes (k3s)", "n8n", "NFS", "PersistentVolumeClaim (PVC)", "kubectl"]
tags: ["kubernetes", "k3s", "n8n", "storage", "nfs", "nas", "pvc", "infraštruktúra"]
date_solved: "2025-08-17"

Projekt/Téma: Pripojenie n8n v k3s k externému NAS úložisku cez NFS

  1. Cieľ / Problém na vyriešenie: Cieľom bolo umožniť aplikácii n8n, bežiacej v k3s klastri, čítať a zapisovať súbory na externom NAS úložisku. To bolo nevyhnutné pre vytvorenie workflow, ktorý by spracovával lokálne súbory.
  2. Použité technológie a nástroje:
    • Orchestrácia: Kubernetes (k3s)
    • Aplikácia: n8n
    • Sieťový protokol: NFS (Network File System)
    • Kubernetes objekty: PersistentVolumeClaim (PVC), Deployment
    • Nástroj príkazového riadku: kubectl
    • Kubernetes komponent: nfs-subdir-external-provisioner
  3. Kľúčové postupy a konfiguračné kroky:
  4. Overenie existencie NFS provisionera: Zistilo sa, že v klastri už beží nfs-subdir-external-provisioner, ktorý umožňuje dynamické vytváranie úložiska na NASe.
  5. Vytvorenie dedikovaného PVC: Pre oddelenie dát od konfigurácie bol vytvorený nový PersistentVolumeClaim určený výhradne pre spracovávané súbory.
  6. Úprava existujúceho n8n Deploymentu: Pomocou príkazu kubectl edit deployment my-n8n -n n8n bola upravená konfigurácia bežiacej n8n inštancie.
  7. Pridanie Volume Mount: Do definície n8n kontajnera bola pridaná sekcia volumeMounts pre pripojenie nového úložiska do súborového systému kontajnera na cestu /data_input.
  8. Pridanie Volume: Do definície podu bola pridaná sekcia volumes, ktorá prepojila vyššie definovaný volumeMount s novovytvoreným PVC (n8n-data-pvc).
  9. Overenie: Po automatickom reštarte podu bolo pripojenie overené vstupom do kontajnera (kubectl exec) a vypísaním obsahu adresára /data_input.
  10. Výsledné kódy a skripty:

    • YAML definícia pre dátové PVC (n8n-data-pvc.yaml):
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
      name: n8n-data-pvc
      namespace: n8n
      spec:
      storageClassName: nfs-client
      accessModes:
      - ReadWriteMany
      resources:
      requests:
        storage: 200Gi
    • Snippet pre úpravu n8n Deploymentu:
      
      # V sekcii spec.template.spec.containers.volumeMounts pridať:
    • name: nas-input-data mountPath: /data_input

    V sekcii spec.template.spec.volumes pridať:

    • name: nas-input-data persistentVolumeClaim: claimName: n8n-data-pvc
  11. Zistené problémy a riešenia (Gotchas):
    • Problém: Pôvodné úložisko n8n bolo pripojené na interný adresár aplikácie /home/node/.n8n. Sledovanie tohto adresára by spôsobovalo nekonečné slučky (workflow by reagoval na vlastné zmeny) a miešanie systémových súborov s dátami.
    • Riešenie: Vytvorenie druhého, úplne oddeleného PVC a jeho pripojenie do neutrálneho adresára (/data_input). Tým sa dosiahlo čisté oddelenie aplikačných dát od používateľských dát.
  12. Finálny výsledok / Záver: Aplikácia n8n má úspešne pripojené dva oddelené adresáre z NASu: jeden pre svoju internú konfiguráciu a druhý (na ceste /data_input), ktorý je bezpečne pripravený na spracovávanie súborov.
Vyriešené: 17. 8. 2025