aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2021-12-26-nfs-k3s.md
diff options
context:
space:
mode:
authorGabriel Arakaki Giovanini <mail@gabrielgio.me>2022-06-21 21:39:04 +0200
committerGabriel Arakaki Giovanini <mail@gabrielgio.me>2022-06-21 21:43:28 +0200
commit93ad4d03b9d87d6177514de27bb94d9230da82e6 (patch)
tree89da96ae3a43b34ec0db13f57a657c099e24a15d /content/posts/2021-12-26-nfs-k3s.md
parentacf5f44cba664debef95e1275dd26c5679e6e357 (diff)
downloadgabrielgio.me-93ad4d03b9d87d6177514de27bb94d9230da82e6.tar.gz
gabrielgio.me-93ad4d03b9d87d6177514de27bb94d9230da82e6.tar.bz2
gabrielgio.me-93ad4d03b9d87d6177514de27bb94d9230da82e6.zip
ref: Move from orgmode to markdown
I'll never ever again move away from markdown. fix: Move to http ... until I add a certificate
Diffstat (limited to 'content/posts/2021-12-26-nfs-k3s.md')
-rw-r--r--content/posts/2021-12-26-nfs-k3s.md62
1 files changed, 62 insertions, 0 deletions
diff --git a/content/posts/2021-12-26-nfs-k3s.md b/content/posts/2021-12-26-nfs-k3s.md
new file mode 100644
index 0000000..e9988c7
--- /dev/null
+++ b/content/posts/2021-12-26-nfs-k3s.md
@@ -0,0 +1,62 @@
+---
+title: "Enable NFS on K3S"
+date: 2021-12-26
+tags: ['kubernetes', 'linux', 'helm', 'k3s']
+---
+
+By default [K3S](https://k3s.io/) comes only with
+[local-path](https://github.com/rancher/local-path-provisioner) storage
+class, and if you are running with more than one node in your cluster
+you may want to use a more \"distributed\" solution. For may case I
+opted for NFS.
+
+To check the current storage class you can run:
+
+``` bash
+k3s kubectl get storageclasses
+```
+
+And it will print something like:
+
+ NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
+ local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 154d
+
+To start adding First you need to install
+[helm](https://github.com/helm/helm) on your server. To do so you may
+run:
+
+``` bash
+curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
+```
+
+**Be careful when running scripts directly into bash always check the
+source** **Sometimes is also recommended to do not pipe directly to
+bash**
+
+Once it is installed we need to add the [NFS storage
+classes](https://kubernetes.io/docs/concepts/storage/storage-classes/#nfs).
+It has two providers, I have chose [NFS Subdir External
+Provisioner](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner).
+
+Add the helm repo
+
+``` bash
+helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
+```
+
+Then we need to actually install the provider
+
+``` bash
+helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
+ --set nfs.server=x.x.x.x \
+ --set nfs.path=/exported/path
+```
+
+Set the `nfs.server` and `nfs.path` accordingly with your setup.
+
+After that if we run `k3s kubectl get storageclasses` it will now print
+another NFS provider:
+
+ NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
+ local-path (default) rancher.io/local-path Delete WaitForFirstConsumer false 154d
+ nfs-client cluster.local/nfs-subdir-external-provisioner Delete Immediate true 76m