By default K3S comes only with local-path 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:
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 on your server. To do so you may run:
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. It has two providers, I have chose NFS Subdir External Provisioner.
Add the helm repo
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
    Then we need to actually install the provider
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