-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[Multi User] Support separate metadata for each namespace #4790
Comments
I didn't find existing issue to track this story. If there's one, please let me know |
I remember there's a very related one in TFX repo: tensorflow/tfx#2618 I am assuming this one is talking about supporting multi-tenancy through k8s-native way -- namespace while that one is more about built-in multi-tenancy support in MLMD itself. |
@numerology Yeah, If MLMD can add support for multi-tenancy. that would be great. Pipeline project can make corresponding changes.
Yeah, that's true. If MLMD doesn't have plan to support it, we can still have the workaround to aggregate metadata at the namespace level |
Let me mention some points I think can be considered along with this issue related to artifacts list page. I did not check executions page yet.
I'll appreciate your thoughts and comments. CC/ @maganaluis |
Server side filtering is available in ml-metadata 1.2.0!! |
For anyone interested, for your namespace separation requirements, do you want metadata DB to be
WIth 1, we can build access control using Istio Authorization. |
@Bobgy is there any progress or decision made on this issue? |
maybe we should use a proxy as it is done for katib-mysql and katib-db-manager. |
@Bobgy @zijianjoy istio should support grpc filtering now istio/istio#25193 (comment) @ca-scribner would you be interested to implement this envoy filter? I am still busy with the minio stuff. |
Following up on this item: I am leaning towards creating one MLMD instance per namespace. This is because we should consider the data lifecycle of MLMD information. When a namespace is deleted, we should have an approach to easily clean up data related to this namespace. This might not be easy with MLMD nowadays using single MLMD instance, because delete operation is not supported by design: google/ml-metadata#38. Thus starting the separation from the beginning is my current preference. That said, I am aware that one MLMD instance per namespace probably mean resource usage overhead for a cluster with many namespaces. So we should consider using something like pod autoscaler: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/. This problem we are facing is similar to the artifact-ui scalability problem as well: #9555 |
@zijianjoy amazing, that this is tackled. We need to have this anyway as CNCF graduation requirement. The CNCF will do a security assessment and this is a clear security violation. I think the artifact per namespace visualization server should be removed anyway, since it is deprecated and the artifact proxy is obsolete as well as explained here #9555 (comment). That means currently you can already have zero overhead namespaces if you drop old garbage. I know of Kubeflow installations with several hundred namespaces, so that is a real problem customers are facing. I can create a PR to make that the default and fix the security issue i have found a few years ago with code from @thesuperzapper #8406 (comment) In the long term i would propose switching to MLFlow, since that seems to be the industry standard, but if that is not possible due to google policies we should consider something with minimal footpprint. Maybe knative serverless per namespace |
One MLMD instance per namespace is bad for a Governance aspect. What if I want to track all assets produced by the company, like a catalog? This would require querying multiple MLMD API Servers. There should be a way to prevent unwanted access through Istio, thus creating a solution that does not depend on MLMD developers to implement. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
/lifecycle frozen |
Part of #1223, since we close it, we need a separate issue to track this feature.
Support separate metadata for each namespace help us only see related artifact/executations.
Currently, MLMD doesn't have user/namespace concept to isolate metadata based on user. An workaround we can move forward is to aggregate artifacts/executations by existing experiment and runs in user's namespace. This will end up some MLMD queries and I am not sure how's the performance especially in large scale.
Thumbs up if this is something you need.
/kind feature
The text was updated successfully, but these errors were encountered: