Search code examples
kubernetesopenshiftstoragekubernetes-podopenshift-enterprise

Cannot understand the difference between gluster and gluster-block volumes


I am having hard time getting the difference between GlusterFS and gluster-block volumes

https://docs.openshift.com/container-platform/3.9/install_config/persistent_storage/persistent_storage_glusterfs.html

As you see in openshift documentation it is mentioned that Glusterfs can only be mounted by one node/client at a time. what does that mean? Does it mean that if I use kubernetes with 3 container I cannot share it with the 3 containers? Or does it mean that if I have a deployment in kubernetes and 3 pods only these 3 pods can use the volume and other deployment wont be able to use it?


Solution

  • Basing on documentation from openshift and kubernetes

    Gluster-block volumes can only be mounted by one node/client at a time which is in contrast to GlusterFS volumes which can be mounted by multiple nodes/clients

    A glusterfs volume allows a Glusterfs (an open source networked filesystem) volume to be mounted into your Pod. Unlike emptyDir, which is erased when a Pod is removed, the contents of a glusterfs volume are preserved and the volume is merely unmounted. This means that a glusterfs volume can be pre-populated with data, and that data can be “handed off” between Pods. GlusterFS can be mounted by multiple writers simultaneously.

    There is an example which provide information about how to allow containers use GlusterFS volumes


    A Pod is the basic execution unit of a Kubernetes application -> the smallest and simplest unit in the Kubernetes object model that you create or deploy. A Pod represents processes running on your Cluster.

    You can have one or more containers inside Pod. All containers share a unique IP, storage, network and any other specification applied to the pod.

    A Pod can specify a set of shared storage Volumes. All containers in the Pod can access the shared volumes, allowing those containers to share data. Volumes also allow persistent data in a Pod to survive in case one of the containers within needs to be restarted. See Volumes for more information on how Kubernetes implements shared storage in a Pod.