我应该为 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 的通常过程。
- 获取一些东西,将其分配给一个变量。
- 通过分配其他值来更改该变量的 属性。
- 使用 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
)。
在我不断努力研究 Azure 的新资源组模型(参见前面的问题
我有你的问题:
问题一:
假设我最终希望这个 VM 托管网站 woodswild.com,我应该给这个 VM 什么 DNS 名称标签?有关系吗?我唯一确定的是它需要在全球范围内独一无二。它是否需要反映我要托管的域 (woodswild.com)?
问题二:
我什至需要设置 DNS 名称吗?
问题三:
而且,既然我已经创建了它,我还能将 DNS 名称标签从 "none" 更改为其他内容吗?如果是,怎么做?
名称对于您将来运行 网站的规划无关紧要。此时您可以使用它来访问您自己的机器。最后,机器将落在负载均衡器后面。所以该名称仅供您内部使用,以便在它旁边找到它的 ip 地址。
根本没有要求拥有 DNS 名称,或者拥有与您正在设置的内容有任何关系的名称。我有一个脚本,我使用它从 GUID 创建一个脚本!
这遵循将设置分配给 Azure 的通常过程。
- 获取一些东西,将其分配给一个变量。
- 通过分配其他值来更改该变量的 属性。
- 使用 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
)。