我应该为 Azure 虚拟机提供什么 DNS 名称标签?

What DNS Name Label should I give my Azure Virtual Machine?

在我不断努力研究 Azure 的新资源组模型(参见前面的问题 and )的过程中,我现在正在尝试创建一个将用作 Web 服务器的新虚拟机。

我有你的问题:

问题一:

假设我最终希望这个 VM 托管网站 woodswild.com,我应该给这个 VM 什么 DNS 名称标签?有关系吗?我唯一确定的是它需要在全球范围内独一无二。它是否需要反映我要托管的域 (woodswild.com)?

问题二:

我什至需要设置 DNS 名称吗?

问题三:

而且,既然我已经创建了它,我还能将 DNS 名称标签从 "none" 更改为其他内容吗?如果是,怎么做?

名称对于您将来运行 网站的规划无关紧要。此时您可以使用它来访问您自己的机器。最后,机器将落在负载均衡器后面。所以该名称仅供您内部使用,以便在它旁边找到它的 ip 地址。

根本没有要求拥有 DNS 名称,或者拥有与您正在设置的内容有任何关系的名称。我有一个脚本,我使用它从 GUID 创建一个脚本!

这遵循将设置分配给 Azure 的通常过程。

  1. 获取一些东西,将其分配给一个变量。
  2. 通过分配其他值来更改该变量的 属性。
  3. 使用 Set-something cmdlet 将更改写入 Azure。

在这种情况下有点复杂,因为我们想要的最终结构看起来像这样

"dnsSettings": {
   "domainNameLabel": "mytestdnsname",
   "fqdn": "mytestdnsname.westeurope.cloudapp.azure.com"
  }

假设我们创建了这样的 PIP

New-AzureRmPublicIpAddress -Name test01PIP -ResourceGroupName test -AllocationMethod Dynamic -Location westeurope  

完全合格的域名是自动设置的,所以我们只需要像这样设置 DomainNameLabel,

$ip = Get-AzureRmPublicIpAddress -Name test01PIP -ResourceGroupName test01[1] 
$ip.DnsSettings += @{DomainNameLabel = "mytestdnsname"}                   [2]
Set-AzureRmPublicIpAddress -PublicIpAddress $ip                           [3]

回答问题的第二部分:

您根本不需要设置 DNS 名称,如果您的应用程序允许,您可以只使用 IP 地址。但是如果您使用的是动态地址,那么在这里设置一个 DomainNameLabel 会很方便——您可以使用您自己区域中的 CNAME 指向它以捕获任何更改。 (您也可以在 Azure 托管的 DNS 区域中创建 A 记录,该区域自动指向 Public IP,但如果不在 Azure 中托管,则 CNAME 是可行的方法)。

第 22 条军规是您需要自己提出 DNS 标签(第一个组件),但它在区域中的所有 Public IP 中必须是唯一的(区域 northeurope.cloudapp.azure.com) ——甚至是其他用户的。我有一个用例,我只需要 IP 的 PTR 记录——我可以使用 reverseFqdn 属性设置它,但我仍然必须想出一个唯一的 domainNameLabel。 (而且我实际上设法得到了唯一性冲突,因为具有相同食谱的其他人同时分配了 k8stest.northeurope.cloudapp.azure.com)。