-
Notifications
You must be signed in to change notification settings - Fork 223
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementation Process for Scaling nodes' disks - increase/replace disks. #112
Comments
As the operator is cluster agnostic I think we should take the first approach of starting with Blue/Green deployment. The second solution for increasing the existing volume is an optimization that is disk and cloud-specific, we can add those optimizations in the future as needed. |
I agree. The blue/green model should be the base/fallback approach. PVC resizing can be, as @segalziv stated, an optimization if it is available, maybe in a way that the cluster-admin can activate/deactivate the feature when installing the operator (under the assumption that the cluster admin knows best if PVC resizing works in the kubernetes cluster). |
I have followed the following steps and able to scale the disk with no downtime: (not related to any underlying cloud provider)
This is ideally not a blue green way, but this approach we have functional cluster working while the disk scaling happens in the backend (like zero downtime). So to summarize, working with blue/green is good, but adds some overhead from our end when there is straight process from k8s side, also we might get this feature out the box in future versions, then in that case we might need to revamp the blue/green strategy code to migrate to supported volume expansion process. |
@prudhvigodithi Unless I'm missing something what you are doing is only using the resize feature for PVCs, which is only supported for select storage classes and clusters. So it will not work in all situations. For supported clusters using that is good, but we should still provide a solution for situations where automatic resize is not available. |
Hey @swoehrl-mw, you have a good point, but PVC resize has support with multiple storage classes, and this is the kubernetes way of doing the resizing |
Also just to add @swoehrl-mw, since PVC resizing is standard way to increase disk's, I would suggest lets add this to the operator and based on feedback or user issues we can go blue/green approach. Also I feel this blue/green approach we might need to re-engineer a complex solution just to add disk size, as statefulset directly does not allow to edit the volumes, we might need to recreate a new statefulset with new size and have a mechanism to copy the existing data and based on size of data this can lot of time. Another Issue I see is, we have the TLS cluster formation happening with certs created with statefulset name Just to summarize how about to go with k8s supported way and based on feedback we can consider blue/green? |
Some other options to leave the data in place. Second, I have not tested this, but you can do a delete of a statefulset (even without deleting the pods with the right flag I think) and the pvc's should stay. you should be able to then scale up the pvc and put the statefulset back with the updated value too. That should let future pvc creation from scaleup get the new value. |
Exactly @kfox1111 thats true, this is what above steps does, the option is |
@prudhvigodithi I agree. Let's go with pvc resize first to cover the majority of clusters with (hopefully) little work on the operator part. And based on feedback we can think about solutions for the rest later on. |
Hey Closing this issue as we have the initial PR #117 merged, will open if we have to go with new implementation process moving forward. |
Hey just created this issue as a thought on we can achieve this disk reconciler task, to increase the disk size.
Solution [1]:
Solution [2]:
The text was updated successfully, but these errors were encountered: