【问题标题】:Can i put vm into another resource group than availabilitySet?我可以将 vm 放入另一个资源组而不是 availabilitySet 吗?
【发布时间】:2019-05-14 18:05:01
【问题描述】:

我想将每个 VM 保留在单独的资源组中,以便于生命周期管理。我有一个包含 n 个 VLM 的集群。

因此,我为公共 IP、负载平衡器等常见事物创建了一个资源组,并将可用性集声明放入其中,因为它也必须在 VM 之间共享。 然后我在单独的资源组中创建 VM 并使用 “可用性集”:{ "id": "[resourceId('Microsoft.Compute/availabilitySets',variables('availabilitySetName'))]" }, 原因是定义了“availabilitySetName”。

部署模板时出现错误提示

{"error":{"code":"BadRequest","message":"资源参考 ID /subscriptions/a719381f-1fa0-4b06-8e29-ad6ea7d3c90b/resourceGroups/TB_PIP_OPSRV_UAT/providers/Microsoft.Compute 中的实体 resourceGroupName /availabilitySets/tb_avlbs_opsrv_uat 无效。"}}

我仔细检查了资源和可用性集名称是否正确指定。

这是否意味着我不能将集合放在与 VM 不同的资源组中?

【问题讨论】:

  • “TB_PIP_OPSRV_UAT”是你的虚拟机的资源组名还是你常用的东西的资源组名?
  • 是的,TB_PIP_OPSRV_UAT - 所有 VM 的顶级 RG。它包含公共 IP、负载均衡器和可用性集。

标签: azure azure-virtual-machine azure-resource-manager


【解决方案1】:

不幸的是,不支持让 VM 使用不同资源组中的可用性集:(.

【讨论】:

    【解决方案2】:

    首先,让我问你为什么需要不同的资源组?我坚信您对多个资源组的考虑过多。资源组基本上是您的“整个系统”,在一个解决方案的范围内,您应该只有一个资源组用于生产,一个资源组用于 beta/staging 等,但切勿混合使用。

    如果您向客户销售 SaaS,则为每个客户设置一个资源组是有意义的。

    如您所知,资源组只是您将解决方案中的所有资产链接在一起并管理所有资产的一种方式;虚拟机、存储、数据库等以一个通用名称命名。我非常怀疑为什么要在一个解决方案中考虑多个资源组,但是,我总是愿意学习:)

    可用性组

    现在,Availability groups 是另一回事了。这与您的 VM 实例的“更新域”和“故障域”有关。由于 Azure 不会为您保留 3 个单独的 VM,因为它与大多数 PaaS 服务一样,您必须自己管理这些以确保完全正常运行时间。基本上,当您在可用性集中添加两个或更多 VM 时,可以确保计划或计划外事件中至少有一个 VM 可用于满足 SLA。

    尝试将两者结合起来以防止停机可能听起来是个好主意,但这并不能解决我所知道的任何问题。就像那句老话:如果它没有坏,就不要修复它:)

    【讨论】:

    • 想法是使用资源组作为生命周期管理的单元——正如它实际记录的那样。是的,RG 的一个功能是对资源进行分组,另一个功能是将逻辑上独立的资源分开。我想在需要的时候创建新的虚拟机,在不需要的时候杀死虚拟机,进行滚动更新。因此,我将运行一台 VM 所需的所有资源分组到 RG 中:存储帐户、NIC、VM。我可以创建这样的 VM,发出简单的“azure group create && azure deployment create”命令。如果我不再需要 VM,我会发出“azure group delete”命令。使用起来非常简单直接。
    • 这可能只是我不理解您的问题:“我想将每个 VM 保留在单独的资源组中以便于生命周期管理”这对我来说没有意义。因此,一个资源组 -> 多个 VM,每个 VM -> 可用性集,为升级和容错提供了理想的保护
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2011-01-05
    • 2019-06-05
    • 2015-11-30
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多