从 ACI 迁移到 AKS 部署的最简单方法是什么?
What's the easiest way to move from ACI to AKS deployment?
解决 并在 ACI 上部署后,我正在使用 Azure 机器学习服务将 ML 模型部署为 AKS 上的 Web 服务。
我当前(工作)ACI 部署代码是
from azureml.core.webservice import Webservice, AciWebservice
from azureml.core.image import ContainerImage
aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,
memory_gb=8,
tags={"data": "text", "method" : "NB"},
description='Predict something')
image_config = ContainerImage.image_configuration(execution_script="score.py",
docker_file="Dockerfile",
runtime="python",
conda_file="myenv.yml")
image = ContainerImage.create(name = "scorer-image",
models = [model],
image_config = image_config,
workspace = ws
)
service_name = 'scorer-svc'
service = Webservice.deploy_from_image(deployment_config = aciconfig,
image = image,
name = service_name,
workspace = ws)
我想修改它以便在 AKS 上部署,但看起来比我预期的更复杂,因为我想象从 ACI 到 AKS(即从测试到生产)是一个例行操作。尽管如此,它似乎需要比我想象的更多的代码更改:
- AKS 似乎需要一个
InferenceConfig
对象 (?)
- 对于 AKS,没有像
deploy_from_image
这样的方法可以从我现有的 Docker image
(?) 进行部署
是否可以通过对 ACI 代码执行最少的更改来在 AKS 上完成部署?
根据您提供的代码,当您使用带有参数 deployment_config
和容器映像的方法 Webservice.deploy_from_image
在 ACI 中部署应用程序时。 deployment_config 由 AciWebservice.deploy_configuration
.
组成
看看AKS的ML,也能找到方法AksWebservice.deploy_configuration
。所以只需要将方法AciWebservice.deploy_configuration
改成AksWebservice.deploy_configuration
,应用程序就可以从ACI部署到AKS了。这是最小的变化。此外,它可以从 docker 映像部署。
解决
我当前(工作)ACI 部署代码是
from azureml.core.webservice import Webservice, AciWebservice
from azureml.core.image import ContainerImage
aciconfig = AciWebservice.deploy_configuration(cpu_cores=1,
memory_gb=8,
tags={"data": "text", "method" : "NB"},
description='Predict something')
image_config = ContainerImage.image_configuration(execution_script="score.py",
docker_file="Dockerfile",
runtime="python",
conda_file="myenv.yml")
image = ContainerImage.create(name = "scorer-image",
models = [model],
image_config = image_config,
workspace = ws
)
service_name = 'scorer-svc'
service = Webservice.deploy_from_image(deployment_config = aciconfig,
image = image,
name = service_name,
workspace = ws)
我想修改它以便在 AKS 上部署,但看起来比我预期的更复杂,因为我想象从 ACI 到 AKS(即从测试到生产)是一个例行操作。尽管如此,它似乎需要比我想象的更多的代码更改:
- AKS 似乎需要一个
InferenceConfig
对象 (?) - 对于 AKS,没有像
deploy_from_image
这样的方法可以从我现有的 Dockerimage
(?) 进行部署
是否可以通过对 ACI 代码执行最少的更改来在 AKS 上完成部署?
根据您提供的代码,当您使用带有参数 deployment_config
和容器映像的方法 Webservice.deploy_from_image
在 ACI 中部署应用程序时。 deployment_config 由 AciWebservice.deploy_configuration
.
看看AKS的ML,也能找到方法AksWebservice.deploy_configuration
。所以只需要将方法AciWebservice.deploy_configuration
改成AksWebservice.deploy_configuration
,应用程序就可以从ACI部署到AKS了。这是最小的变化。此外,它可以从 docker 映像部署。