Michael Adam
2018-Aug-23 19:58 UTC
[Gluster-users] [Gluster-devel] Announcing Gluster for Container Storage (GCS)
On 2018-07-25 at 06:38 -0700, Vijay Bellur wrote:> Hi all,Hi Vijay, Thanks for announcing this to the public and making everyone more aware of Gluster's focus on container storage! I would like to add an additional perspective to this, giving some background about the history and origins: Integrating Gluster with kubernetes for providing persistent storage for containerized applications is not new. We have been working on this since more than two years now, and it is used by many community users and and many customers (of Red Hat) in production. The original software stack used heketi (https://github.com/heketi/heketi) as a high level service interface for gluster to facilitate the easy self-service for provisioning volumes in kubernetes. Heketi implemented some ideas that were originally part of the glusterd2 plans already in a separate, much more narrowly scoped project to get us started with these efforts in the first place, and also went beyond those original ideas. These features are now being merged into glusterd2 which will in the future replace heketi in the container storage stack. We were also working on kubernetes itself, writing the privisioners for various forms of gluster volumes in kubernets proper (https://github.com/kubernetes/kubernetes) and also the external storage repo (https://github.com/kubernetes-incubator/external-storage). Those provisioners will eventually be replaced by the mentioned csi drivers. The expertise of the original kubernetes development is now flowing into the CSI drivers. The gluster-containers repository was created and used for this original container-storage effort already. The mentioned https://github.com/gluster/gluster-kubernetes repository was not only the place for storing the deployment artefacts and tools, but it was actually intended to be the upstream home of the gluster-container-storage project. In this view, I see the GCS project announced here as a GCS version 2. The original first version, even though never officially announced that widely in a formal introduction like this, and never given a formal release or version number (let me call it version one), was the software stack described above and homed at the gluster-kubernetes repository. If you look at this project (and heketi), you see that it has a nice level of popularity. I think we should make use of this traction instead of ignoring the legacy, and turn gluster-kubernetes into the home of GCS (v2). In my view, GCS (v2) will be about: * replacing some of the components with newer, i.e. - i.e. glusterd2 instead of the heketi and glusterd1 combo - csi drivers (the new standard) instead of native kubernetes plugins * adding the operator feature, (even though we are currently also working on an operator for the current stack with heketi and traditional gluster, since this will become important in production before this v2 will be ready.) These are my 2cents on this topic. I hope someone finds them useful. I am very excited to (finally) see the broader gluster community getting more aligned behind the idea of bringing our great SDS system into the space of containers! :-) Cheers - Michael> We would like to let you know that some of us have started focusing on an > initiative called ?Gluster for Container Storage? (in short GCS). As of > now, one can already use Gluster as storage for containers by making use of > different projects available in github repositories associated with gluster > <https://github.com/gluster> & Heketi <https://github.com/heketi/heketi>. > The goal of the GCS initiative is to provide an easier integration of these > projects so that they can be consumed together as designed. We are > primarily focused on integration with Kubernetes (k8s) through this > initiative. > > Key projects for GCS include: > Glusterd2 (GD2) > > Repo: https://github.com/gluster/glusterd2 > > The challenge we have with current management layer of Gluster (glusterd) > is that it is not designed for a service oriented architecture. Heketi > overcame this limitation and made Gluster consumable in k8s by providing > all the necessary hooks needed for supporting Persistent Volume Claims. > > Glusterd2 provides a service oriented architecture for volume & cluster > management. Gd2 also intends to provide many of the Heketi functionalities > needed by Kubernetes natively. Hence we are working on merging Heketi with > gd2 and you can follow more of this action in the issues associated with > the gd2 github repository. > gluster-block > > Repo: https://github.com/gluster/gluster-block > > This project intends to expose files in a gluster volume as block devices. > Gluster-block enables supporting ReadWriteOnce (RWO) PVCs and the > corresponding workloads in Kubernetes using gluster as the underlying > storage technology. > > Gluster-block is intended to be consumed by stateful RWO applications like > databases and k8s infrastructure services like logging, metrics etc. > gluster-block is more preferred than file based Persistent Volumes in K8s > for stateful/transactional workloads as it provides better performance & > consistency guarantees. > anthill / operator > > Repo: https://github.com/gluster/anthill > > This project aims to add an operator for Gluster in Kubernetes., Since it > is relatively new, there are areas where you can contribute to make the > operator experience better (please refer to the list of issues). This > project intends to make the whole Gluster experience in k8s much smoother > by automatic management of operator tasks like installation, rolling > upgrades etc. > gluster-csi-driver > > Repo: http://github.com/gluster/gluster-csi-driver > > This project will provide CSI (Container Storage Interface) compliant > drivers for GlusterFS & gluster-block in k8s. > gluster-kubernetes > > Repo: https://github.com/gluster/gluster-kubernetes > > This project is intended to provide all the required installation and > management steps for getting gluster up and running in k8s. > GlusterFS > > Repo: https://github.com/gluster/glusterfs > > GlusterFS is the main and the core repository of Gluster. To support > storage in container world, we don?t need all the features of Gluster. > Hence, we would be focusing on a stack which would be absolutely required > in k8s. This would allow us to plan and execute tests well, and also > provide users with a setup which works without too many options to tweak. > > Notice that glusterfs default volumes would continue to work as of now, but > the translator stack which is used in GCS will be much leaner and geared to > work optimally in k8s. > Monitoring > Repo: https://github.com/gluster/gluster-prometheus > > As k8s ecosystem provides its own native monitoring mechanisms, we intend > to have this project be the placeholder for required monitoring plugins. > The scope of this project is currently WIP and we welcome your inputs to > shape the project. > > More details on this can be found at: > https://lists.gluster.org/pipermail/gluster-users/2018-July/034435.html > > Gluster-Containers > > *Repo: https://github.com/gluster/gluster-containers > <https://github.com/gluster/gluster-containers>This repository provides > container specs / Dockerfiles that can be used with a container runtime > like cri-o & docker.Note that this is not an exhaustive or final list of > projects involved with GCS. We will continue to update the project list > depending on the new requirements and priorities that we discover in this > journey.* > > *We welcome you to join this journey by looking up the repositories and > contributing to them. As always, we are happy to hear your thoughts about > this initiative and please stay tuned as we provide periodic updates about > GCS here!Regards,* > > *Vijay* > > *(on behalf of Gluster maintainers @ Red Hat)*> _______________________________________________ > Gluster-devel mailing list > Gluster-devel at gluster.org > https://lists.gluster.org/mailman/listinfo/gluster-devel-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 163 bytes Desc: not available URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180823/e0949728/attachment.sig>
Joe Julian
2018-Aug-23 20:54 UTC
[Gluster-users] [Gluster-devel] Announcing Gluster for Container Storage (GCS)
Personally, I'd like to see the glusterd service replaced by a k8s native controller (named "kluster"). I'm hoping to use this vacation I'm currently on to write up a design doc. On August 23, 2018 12:58:03 PM PDT, Michael Adam <obnox at samba.org> wrote:>On 2018-07-25 at 06:38 -0700, Vijay Bellur wrote: >> Hi all, > >Hi Vijay, > >Thanks for announcing this to the public and making everyone >more aware of Gluster's focus on container storage! > >I would like to add an additional perspective to this, >giving some background about the history and origins: > >Integrating Gluster with kubernetes for providing >persistent storage for containerized applications is >not new. We have been working on this since more than >two years now, and it is used by many community users >and and many customers (of Red Hat) in production. > >The original software stack used heketi >(https://github.com/heketi/heketi) as a high level service >interface for gluster to facilitate the easy self-service for >provisioning volumes in kubernetes. Heketi implemented some ideas >that were originally part of the glusterd2 plans already in a >separate, much more narrowly scoped project to get us started >with these efforts in the first place, and also went beyond those >original ideas. These features are now being merged into >glusterd2 which will in the future replace heketi in the >container storage stack. > >We were also working on kubernetes itself, writing the >privisioners for various forms of gluster volumes in kubernets >proper (https://github.com/kubernetes/kubernetes) and also the >external storage repo >(https://github.com/kubernetes-incubator/external-storage). >Those provisioners will eventually be replaced by the mentioned >csi drivers. The expertise of the original kubernetes >development is now flowing into the CSI drivers. > >The gluster-containers repository was created and used >for this original container-storage effort already. > >The mentioned https://github.com/gluster/gluster-kubernetes >repository was not only the place for storing the deployment >artefacts and tools, but it was actually intended to be the >upstream home of the gluster-container-storage project. > >In this view, I see the GCS project announced here >as a GCS version 2. The original first version, >even though never officially announced that widely in a formal >introduction like this, and never given a formal release >or version number (let me call it version one), was the >software stack described above and homed at the >gluster-kubernetes repository. If you look at this project >(and heketi), you see that it has a nice level of popularity. > >I think we should make use of this traction instead of >ignoring the legacy, and turn gluster-kubernetes into the >home of GCS (v2). In my view, GCS (v2) will be about: > >* replacing some of the components with newer, i.e. > - i.e. glusterd2 instead of the heketi and glusterd1 combo > - csi drivers (the new standard) instead of native > kubernetes plugins >* adding the operator feature, > (even though we are currently also working on an operator > for the current stack with heketi and traditional gluster, > since this will become important in production before > this v2 will be ready.) > >These are my 2cents on this topic. >I hope someone finds them useful. > >I am very excited to (finally) see the broader gluster >community getting more aligned behind the idea of bringing >our great SDS system into the space of containers! :-) > >Cheers - Michael > > > > > >> We would like to let you know that some of us have started focusing >on an >> initiative called ?Gluster for Container Storage? (in short GCS). As >of >> now, one can already use Gluster as storage for containers by making >use of >> different projects available in github repositories associated with >gluster >> <https://github.com/gluster> & Heketi ><https://github.com/heketi/heketi>. >> The goal of the GCS initiative is to provide an easier integration of >these >> projects so that they can be consumed together as designed. We are >> primarily focused on integration with Kubernetes (k8s) through this >> initiative. >> >> Key projects for GCS include: >> Glusterd2 (GD2) >> >> Repo: https://github.com/gluster/glusterd2 >> >> The challenge we have with current management layer of Gluster >(glusterd) >> is that it is not designed for a service oriented architecture. >Heketi >> overcame this limitation and made Gluster consumable in k8s by >providing >> all the necessary hooks needed for supporting Persistent Volume >Claims. >> >> Glusterd2 provides a service oriented architecture for volume & >cluster >> management. Gd2 also intends to provide many of the Heketi >functionalities >> needed by Kubernetes natively. Hence we are working on merging Heketi >with >> gd2 and you can follow more of this action in the issues associated >with >> the gd2 github repository. >> gluster-block >> >> Repo: https://github.com/gluster/gluster-block >> >> This project intends to expose files in a gluster volume as block >devices. >> Gluster-block enables supporting ReadWriteOnce (RWO) PVCs and the >> corresponding workloads in Kubernetes using gluster as the underlying >> storage technology. >> >> Gluster-block is intended to be consumed by stateful RWO applications >like >> databases and k8s infrastructure services like logging, metrics etc. >> gluster-block is more preferred than file based Persistent Volumes in >K8s >> for stateful/transactional workloads as it provides better >performance & >> consistency guarantees. >> anthill / operator >> >> Repo: https://github.com/gluster/anthill >> >> This project aims to add an operator for Gluster in Kubernetes., >Since it >> is relatively new, there are areas where you can contribute to make >the >> operator experience better (please refer to the list of issues). This >> project intends to make the whole Gluster experience in k8s much >smoother >> by automatic management of operator tasks like installation, rolling >> upgrades etc. >> gluster-csi-driver >> >> Repo: http://github.com/gluster/gluster-csi-driver >> >> This project will provide CSI (Container Storage Interface) compliant >> drivers for GlusterFS & gluster-block in k8s. >> gluster-kubernetes >> >> Repo: https://github.com/gluster/gluster-kubernetes >> >> This project is intended to provide all the required installation and >> management steps for getting gluster up and running in k8s. >> GlusterFS >> >> Repo: https://github.com/gluster/glusterfs >> >> GlusterFS is the main and the core repository of Gluster. To support >> storage in container world, we don?t need all the features of >Gluster. >> Hence, we would be focusing on a stack which would be absolutely >required >> in k8s. This would allow us to plan and execute tests well, and also >> provide users with a setup which works without too many options to >tweak. >> >> Notice that glusterfs default volumes would continue to work as of >now, but >> the translator stack which is used in GCS will be much leaner and >geared to >> work optimally in k8s. >> Monitoring >> Repo: https://github.com/gluster/gluster-prometheus >> >> As k8s ecosystem provides its own native monitoring mechanisms, we >intend >> to have this project be the placeholder for required monitoring >plugins. >> The scope of this project is currently WIP and we welcome your inputs >to >> shape the project. >> >> More details on this can be found at: >> >https://lists.gluster.org/pipermail/gluster-users/2018-July/034435.html >> >> Gluster-Containers >> >> *Repo: https://github.com/gluster/gluster-containers >> <https://github.com/gluster/gluster-containers>This repository >provides >> container specs / Dockerfiles that can be used with a container >runtime >> like cri-o & docker.Note that this is not an exhaustive or final list >of >> projects involved with GCS. We will continue to update the project >list >> depending on the new requirements and priorities that we discover in >this >> journey.* >> >> *We welcome you to join this journey by looking up the repositories >and >> contributing to them. As always, we are happy to hear your thoughts >about >> this initiative and please stay tuned as we provide periodic updates >about >> GCS here!Regards,* >> >> *Vijay* >> >> *(on behalf of Gluster maintainers @ Red Hat)* > >> _______________________________________________ >> Gluster-devel mailing list >> Gluster-devel at gluster.org >> https://lists.gluster.org/mailman/listinfo/gluster-devel-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180823/d099bfc4/attachment.html>