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
- 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.
- 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
- Kľúčové postupy a konfiguračné kroky:
- 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. - Vytvorenie dedikovaného PVC: Pre oddelenie dát od konfigurácie bol vytvorený nový
PersistentVolumeClaimurčený výhradne pre spracovávané súbory. - Úprava existujúceho n8n Deploymentu: Pomocou príkazu
kubectl edit deployment my-n8n -n n8nbola upravená konfigurácia bežiacej n8n inštancie. - Pridanie Volume Mount: Do definície n8n kontajnera bola pridaná sekcia
volumeMountspre pripojenie nového úložiska do súborového systému kontajnera na cestu/data_input. - Pridanie Volume: Do definície podu bola pridaná sekcia
volumes, ktorá prepojila vyššie definovanývolumeMounts novovytvoreným PVC (n8n-data-pvc). - Overenie: Po automatickom reštarte podu bolo pripojenie overené vstupom do kontajnera (
kubectl exec) a vypísaním obsahu adresára/data_input. -
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
- YAML definícia pre dátové PVC (
- 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.
- Problém: Pôvodné úložisko n8n bolo pripojené na interný adresár aplikácie
- 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.