了解如何在 Azure 机器学习托管虚拟网络中配置计算群集或计算实例。
使用托管网络时,Azure 机器学习管理的计算资源可以参与虚拟网络。 Azure 机器学习计算群集、计算实例和托管联机终结点是在托管网络中创建的。
本文重点介绍如何在托管网络中配置计算群集和计算实例。 有关托管联机终结点的信息,请参阅保护网络隔离中的联机终结点。
重要
如果计划使用无服务器 Spark 作业,请参阅托管虚拟网络一文了解配置信息。 配置托管虚拟网络时,必须遵循这些步骤。
 
先决条件
在按照本文中的步骤操作之前,请确保满足以下先决条件:
- 配置为使用托管虚拟网络的 Azure 机器学习工作区。 
- 
              Azure CLI 和 Azure CLI 的 - ml扩展。 有关详细信息,请参阅安装、设置和使用 CLI (v2)。
 - 
- 提示 - Azure 机器学习托管虚拟网络于 2023 年 5 月 23 日推出。 如果 ml 扩展版本较旧,可能需要进行更新,以顺利完成本文中的示例。 若要更新扩展,请使用以下 Azure CLI 命令: - az extension update -n ml
 
 
- 本文中的 CLI 示例假定你使用的是 Bash(或兼容的)shell。 例如,从 Linux 系统或者适用于 Linux 的 Windows 子系统。 
- 本文中的 Azure CLI 示例使用 - ws表示工作区的名称,并使用- rg表示资源组的名称。 将命令用于 Azure 订阅时,请根据需要更改这些值。
 
- 配置为使用托管虚拟网络的 Azure 机器学习工作区。 
- Azure 机器学习 Python SDK v2。 有关 SDK 的详细信息,请参阅安装适用于 Azure 机器学习的 Python SDK v2。 - 
- 提示 - Azure 机器学习托管虚拟网络于 2023 年 5 月 23 日推出。 如果你安装的 SDK 版本较旧,可能需要进行更新,以便顺利完成本文中的示例。 使用以下命令更新 SDK: - pip install --upgrade azure-ai-ml azure-identity
 
 
- 本文中的示例假定代码以以下 Python 开头。 此代码导入使用托管虚拟网络创建工作区时所需的类,为 Azure 订阅和资源组设置变量,并创建 - ml_client:
 - from azure.ai.ml import MLClient
from azure.ai.ml.entities import (
    Workspace,
    ManagedNetwork,
    IsolationMode,
    ServiceTagDestination,
    PrivateEndpointDestination,
    FqdnDestination
)
from azure.identity import DefaultAzureCredential
# Replace with the values for your Azure subscription and resource group.
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace_name = "<WORKSPACE_NAME>"
# get a handle to the subscription
ml_client = MLClient(
    workspace_name=workspace_name,
    subscription_id=subscription_id,
    resource_group_name=resource_group,
    credential=DefaultAzureCredential()
)
 
 
使用以下选项卡了解如何在托管虚拟网络中配置计算群集和计算实例:
提示
使用托管虚拟网络时,会自动在托管网络中创建计算群集和计算实例。 以下步骤侧重介绍如何将计算资源配置为不使用公共 IP 地址。
 
若要创建没有公共 IP 的计算群集,请使用以下命令:
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --type AmlCompute --set enable_node_public_ip=False
若要创建没有公共 IP 的计算实例,请使用以下命令:
az ml compute create --name myci --resource-group rg --workspace-name ws --type ComputeInstance --set enable_node_public_ip=False
以下 Python SDK 示例演示如何创建没有公共 IP 的计算群集和计算实例:
from azure.ai.ml.entities import AmlCompute
# Create a compute cluster
compute_cluster = AmlCompute(
    name="mycomputecluster",
    size="STANDARD_D2_V2",
    min_instances=0,
    max_instances=4,
    enable_node_public_ip=False
)
ml_client.begin_create_or_update(entity=compute_cluster)
# Create a compute instance
from azure.ai.ml.entities import ComputeInstance
compute_instance = ComputeInstance(
    name="mycomputeinstance",
    size="STANDARD_DS3_V2",
    enable_node_public_ip=False
)
ml_client.begin_create_or_update(compute_instance)
无法在 Azure 门户创建计算群集或计算实例。 请改用以下步骤在 Azure 机器学习工作室创建计算:
- 在工作室上,选择工作区。 
- 从左窗格中选择 “计算 ”页。 
- 在计算实例或计算群集的导航栏中选择“+ 新建”。 
- 配置所需的 VM 大小和配置,然后选择“下一步”,直到到达以下页面: 
- 继续创建计算资源。 
 
限制
- 使用托管虚拟网络时,不支持在工作区以外的区域创建计算群集。 
- 如果计算位于 Intranet 中,并且还配置为没有公共 IP,请使用 - az ml compute connect-ssh命令通过 SSH 连接到计算实例。
 - 默认情况下,SSH 访问通过公共 IP 进行路由。 若要确保它使用专用连接,请使用以下步骤: - 
- 为工作区创建专用终结点。
- 为 instances.azureml.ms创建专用 DNS 区域。
- 为计算创建 DNS 记录集,例如 <compute-instance-name>-22.<region-of-workspace>.instances.azureml.ms。
 - 有关详细信息,请参阅使用自定义 DNS 服务器。 
迁移计算资源
如果有现有工作区,并且想要为其启用托管虚拟网络,则当前不支持现有托管计算资源的迁移路径。 需要删除所有现有托管计算资源,并在启用托管虚拟网络后重新创建它们。 以下列表包含必须删除和重新创建的计算资源:
后续步骤