<p>I'm running a k3s single node cluster and have the <code>k3s local-path-provisioner</code> as storage. As I want to be able to <strong>add nodes in the future</strong>, I looked at minio to use on top of the local-path as storage. But I'm not sure if it's the right choice, cause I my workloads primarily use <strong>mariadb</strong> for data and I read, that an s3 compatible bucket isn't the best for database applications.</p>
<p>I hope you can help me figure this out.</p>

<p>If you don't want to use object storage then here are your options for running a local storage provisioner:</p>
<ul>
<li><p>GlusterFS StorageClass
Doesn't have lot of documentation on how to set it up. But if you know your way around GlusterFS It'll be a good option.</p>
</li>
<li><p><a href="https://github.com/rancher/local-path-provisioner/tree/master/deploy/chart" rel="nofollow noreferrer">local-path-provisioner</a>
I
t provides a way for the Kubernetes users to utilize the local storage in each node</p>
</li>
<li><p>OpenEBS -&gt; has a local volume storage engine but I think this is not designed to work on a shared volume mount and it end up tying a pod to a specific node since the data &quot;doesn't exist&quot; on the other nodes.</p>
</li>
<li><p>longhorn [recommened]</p>
<p>It creates a dedicated storage controller for each block device volume and synchronously replicates the volume across multiple replicas stored on multiple nodes.</p>
</li>
<li><p><a href="https://rook.io/" rel="nofollow noreferrer">rook</a></p>
</li>
</ul>
<p>Rook is a storage operators for Kubernetes, It supports multiple storage backends. Don't use the NFS one tho cause we hit a wall when using it with our DBs.</p>
