aml-deploy icon indicating copy to clipboard operation
aml-deploy copied to clipboard

support bringing own AKS cluster to deploy

Open ashishonce opened this issue 4 years ago • 10 comments

this links to this issue https://github.com/github/ms-ecosystem/issues/85

ashishonce avatar Aug 04 '20 06:08 ashishonce

@ashishonce I cannot open the link. What is the issue about?

marvinbuss avatar Aug 06 '20 06:08 marvinbuss

@marvinbuss the issue is linked to https://github.com/github/ms-ecosystem/issues/85 We want to deploy our model to a azure kubernetes service outside the ml workspace. For now we will support deploying to a aks inside the same subscription and same resource group.

vivishno avatar Aug 06 '20 06:08 vivishno

to expand : today user has to provide an AKS cluster which is already attached to a workspace, else workspace is not able to identify the cluster. The PM task has an ask to support the AKS Cluster which is outside the workspace, so for that, it can be first attached to ws and then can be used to deploy. attaching is a one time job, so we can decide , how we can to support this

ashishonce avatar Aug 06 '20 06:08 ashishonce

If we want to support attaching AKS, we should add this functionality to Azure/aml-compute. This task is compute related. If the compute is not attached to AML, I would suggest to use these Actions: https://github.com/Azure/actions#deploy-to-kubernetes .

marvinbuss avatar Aug 06 '20 06:08 marvinbuss

@pulkitaggarwl for visibility , can you please put your thoughts?

ashishonce avatar Aug 06 '20 07:08 ashishonce

@marvinbuss We want customer be able to deploy to an existing cluster. Generally customers don't spin up a new K8S cluster for new services but instead use the same one.
Customer should not ideally need to use aml-compute in their workflow for this scenario. As per, Deploy to K8s action - its a generic K8S action and would understand container images not Az ML models. Also, if we go that route we would need to build similar for ACI, FPGAs, Functions.

pulkitaggarwl avatar Aug 06 '20 09:08 pulkitaggarwl

@pulkitaggarwl I do understand the use case. Existing clusters should either be attached to AML via ARM templates or via aml-compute. Handling compute related tasks in aml-deploy would be highly inconsistent, since this action is about creating docker images and deploying these to attached compute targets or just providing the image, so that it can be used with other actions, such as:

  • https://github.com/Azure/actions#deploy-to-kubernetes
  • https://github.com/Azure/actions#build--deploy-containerized-apps
  • https://github.com/Azure/actions#deploy-a-serverless-app

@awmatheson Do you have any recommendations?

marvinbuss avatar Aug 06 '20 09:08 marvinbuss

@pulkitaggarwl can you give your inputs on this. Following are the code changes made to aml-deploy action- https://github.com/Azure/aml-deploy/compare/master...vivishno:master

With these changes the action will look for the aks cluster specified inside ml workspace and also see if it is attached. If not found it will look for it in the resource group and will attach it if found. If not found inside the ML workspace or in the resource group it will deploy the model to ACI.

vivishno avatar Aug 07 '20 09:08 vivishno

We also need to decide on what behavior should be when the aks cluster specified in the config file is not found inside ML workspace or inside resource grp. Currently it deploys to ACI if cluster not found. Have raised a bug around this- https://github.com/Azure/aml-deploy/issues/27 If this is the expectation then we will have to document this as well.

vivishno avatar Aug 07 '20 09:08 vivishno

@vivishno just had a chat with @pulkitaggarwl and closed on that .. we can put this into aml-compute.

ashishonce avatar Aug 07 '20 13:08 ashishonce