-
Notifications
You must be signed in to change notification settings - Fork 118
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
PVC storage support #230
Comments
There are some parts of this that we can start on before finalizing the overall design:
|
Some design decisions following further discussion:
Nice to have in the case of (2):
It would be fine to ignore one or both of these for a first pass. We also may need to think about what happens in the case of (1) when a pvc is removed from the storage-secret that's already in use by a predictor, or the global config flag changes from (2) to (1) while there's a predictor with a pvc mounted that isn't in the config secret list. Probably the simplest/correct thing is just to allow the predictor to enter a failed state. Finally, this proposal means the controller will now require RBAC permission to access the storage secret, which it doesn't currently. We should ensure everything apart from out-of-band configured PVCs still works if it does not have that permission. |
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Just to clarify, the pvc entries in the storage config secret would look like: |
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]>
* Add PVC support Add PVC support according to the design and discussions captured in the issue, #230 Signed-off-by: Chin Huang <[email protected]> * add predictor controller login Signed-off-by: Chin Huang <[email protected]> * code restructure, cleanup based on review Signed-off-by: Chin Huang <[email protected]> * fix addPullerSidecar to include all pvcs Signed-off-by: Chin Huang <[email protected]> * restructure and simplify code, use global configmap rather than env var Signed-off-by: Chin Huang <[email protected]> * make AllowAnyPVC dynamic, update docs Signed-off-by: Chin Huang <[email protected]> * add runtimeSupportsPredictor check Signed-off-by: Chin Huang <[email protected]> * use PredictorRegistry and add storage to find() Signed-off-by: Chin Huang <[email protected]> --------- Signed-off-by: Chin Huang <[email protected]>
Related: kserve#230, kserve#267 Signed-off-by: Christian Kadner <[email protected]>
Related: kserve#230, kserve#267 Signed-off-by: Christian Kadner <[email protected]>
* Add PVC support Add PVC support according to the design and discussions captured in the issue, kserve#230 Signed-off-by: Chin Huang <[email protected]> * add predictor controller login Signed-off-by: Chin Huang <[email protected]> * code restructure, cleanup based on review Signed-off-by: Chin Huang <[email protected]> * fix addPullerSidecar to include all pvcs Signed-off-by: Chin Huang <[email protected]> * restructure and simplify code, use global configmap rather than env var Signed-off-by: Chin Huang <[email protected]> * make AllowAnyPVC dynamic, update docs Signed-off-by: Chin Huang <[email protected]> * add runtimeSupportsPredictor check Signed-off-by: Chin Huang <[email protected]> * use PredictorRegistry and add storage to find() Signed-off-by: Chin Huang <[email protected]> --------- Signed-off-by: Chin Huang <[email protected]>
- PVC storage support (#230, #337) - Payload logging/events (#284) Signed-off-by: Christian Kadner <[email protected]>
Support for serving models from PVCs is an important capability, we need to have a robust approach. It differs from our other cloud storage abstractions since it must be configured at the pod level, which means PVCs can't be configured dynamically in the multi-model case without restarting pods.
Thoughts:
The controller will need to be aware of Predictors tied to pvc storage. We need to think about whether we update the multi-model serving runtime Deployments dynamically if there's a new Predictor targeted for that deployment which uses a PVC not currently mounted there, and whether we refresh the Deployment again if/when a particular PVC is no longer needed.
PVC can be one of our abstract storage types, the corresponding puller logic would just symlink the targeted file or dir from the mounted pvc volume into the model dir (which itself may be subsequently symlinked by adapter logic). We can read-only mount all of the "current" pvcs into one area (e.g.
/pvc_mounts/<pvc-name>/
).Generally it probably doesn't make sense to have a config entry in our storage secret for pvcs since they are already separately configured and all that should be needed is the
claimName
, i.e. Predictor would contain something like:We could consider retaining specific fields in the CRD since it's a special case. This would also help with 1 and 3 above.
Related (but different): #229
Pull Requests:
The text was updated successfully, but these errors were encountered: