Solace on Kubernetes
I'm using the following link to setup solace pubsub on k8s.
https://github.com/SolaceProducts/solace-kubernetes-quickstart
I'm trying to figure out the best way to setup persistent storage that can be used by the solace instance.
Looking at the documentation I see that gke and aws are supported, however we are not using a cloud environment. We are using our own k8s infrastructure. I can setup something like ceph as a shared storage environment. However I then need to figure out how to configure the solace helm chart to use this.
Does anyone have experience with configuring the solace helm chart and the k8s platform to use shared network stroage?
Best Answer
-
The recommended Kubernetes setup is to use persistent storage that is based on Kubernetes Dynamic Persistence (versus the old version of preconfigured pooled PV (Persistent Volumes) as found in MiniShift). Kubernetes Dynamic Persistence is the mechanism used for the Cloud environments and is also applicable to local Kubernetes environments as well.
Basically you set up the cluster and define a distributed files system (like ceph or one of the cloud vendor's distributed file systems like EBS in AWS). Within Kubernetes you then define a storage class that defines the distributed files system that is used (there are many supported distributed file systems and examples of appropriate storage classes). If you only require one storage class, it is recommended to set it to be the default so it does not need to be referenced specifically in your templates or charts.
Now when you request a PVC (Persistent Volume Claim) for the Solace PS+ container to mount volumes, Kubernetes will dynamically create a PV against the distributed file system defined in your storage class and automatically claim the PV to bind a PVC for the container. The PVC is then automatically used as the Volume to mount in the Solace PS+ container definition.
Also when you delete the PVC that was created dynamically, it will automatically remove the PVC and the the PV and return the disk space back to the clustered file system.
If the storage class is properly configured and set as the default, the same Templates and Charts would work in your private Kubernetes deployment (at least with regard to persistences and volumes referenced in the PS+ container definitions). Using Kubernetes Dynamic Persistence makes the persistence setup for the PS+ brokers transparent regardless of the Cloud or Local Kubernetes environment.
6
Answers
-
The recommended Kubernetes setup is to use persistent storage that is based on Kubernetes Dynamic Persistence (versus the old version of preconfigured pooled PV (Persistent Volumes) as found in MiniShift). Kubernetes Dynamic Persistence is the mechanism used for the Cloud environments and is also applicable to local Kubernetes environments as well.
Basically you set up the cluster and define a distributed files system (like ceph or one of the cloud vendor's distributed file systems like EBS in AWS). Within Kubernetes you then define a storage class that defines the distributed files system that is used (there are many supported distributed file systems and examples of appropriate storage classes). If you only require one storage class, it is recommended to set it to be the default so it does not need to be referenced specifically in your templates or charts.
Now when you request a PVC (Persistent Volume Claim) for the Solace PS+ container to mount volumes, Kubernetes will dynamically create a PV against the distributed file system defined in your storage class and automatically claim the PV to bind a PVC for the container. The PVC is then automatically used as the Volume to mount in the Solace PS+ container definition.
Also when you delete the PVC that was created dynamically, it will automatically remove the PVC and the the PV and return the disk space back to the clustered file system.
If the storage class is properly configured and set as the default, the same Templates and Charts would work in your private Kubernetes deployment (at least with regard to persistences and volumes referenced in the PS+ container definitions). Using Kubernetes Dynamic Persistence makes the persistence setup for the PS+ brokers transparent regardless of the Cloud or Local Kubernetes environment.
6 -
@dsargrad were you able to get this working? If so, please click the “Yes” on
Did this answer the question?
where appropriate so that others can benefit! And if not, please let us know so we can continue to assist!0