我在共享映像库中有一个 Win 10 Pro 专用映像,我将其用作 Scale Set 的基础。一切运行良好,只是所有 VM 的 Win 计算机名称都相同,这让我正在使用的服务器应用程序感到困惑。
如何配置规模集以自动设置每个虚拟机的计算机(而非资源)名称?
答案1
创建规模集时,只需提供规模集本身的计算机名称。每个实例将根据提供的规模集名称获得一个以 36 为基数的计算机名称。
您还需要考虑缩放比例集与系统准备的映像一起工作。如果您看到每个实例的名称相同,那肯定是因为您使用的专用映像。即使在普通虚拟机中使用专用映像,Azure 也建议立即登录后续虚拟机并更改计算机名称以避免出现问题。
我怀疑 VMSS 也发生了同样的事情 - 事实上,我很惊讶 Azure 在任何文档关于使用带有比例尺集的专门图像。
如果您无法对图像进行系统准备/通用化,请考虑以下事项:
设置 Azure 私有 DNS 并将其与启用自动注册的 VNET 链接。
在您的基础映像启动时运行一个 PowerShell 脚本,它将:
(a) 使用 Az Cli 查询 Azure 私有 DNS 并检索现有条目(以前的 Scale Sets 实例)。
(b) 根据预定义的逻辑生成新的计算机名称。
(c)将这个新的计算机名称分配给规模集并重新启动机器。
关于为什么会发生这种情况的一些背景信息:
Azure 中的计算机名称(NetBios 名称)依赖于 Azure 的内部 DNS(internal.cloudapp.net)来解析到每台计算机。在 cloudapp DNS 中只能注册一台具有该名称的计算机。如果创建了具有相同计算机名称的新计算机,则旧计算机将被取消注册,新计算机的 IP 将接管 DNS 条目。
阅读更多:使用特殊图像时的注意事项