我希望将每个VM保留在单独的资源组中,以便于生命周期管理。我有一个包含n个VLM的集群。
因此,我为公共IP,负载均衡器以及将availabilitySet声明等常见内容创建了一个资源组,因为它也必须在VM之间共享。 然后我在单独的资源组中创建VM并引用availabilitySet with “availabilitySet”:{ “id”:“[resourceId('Microsoft.Compute / availabilitySets',variables('availabilitySetName'))]” }, 原因'availabilitySetName'已定义。
当我部署模板时,我收到错误消息
{“error”:{“code”:“BadRequest”,“message”:“资源引用ID中的实体resourceGroupName /subscriptions/a719381f-1fa0-4b06-8e29-ad6ea7d3c90b/resourceGroups/TB_PIP_OPSRV_UAT/providers/Microsoft.Compute / availabilitySets / tb_avlbs_opsrv_uat无效。“}}
我仔细检查了资源和可用性集名称是否正确指定。
这是否意味着我无法将一个集合放在与VM不同的资源组中?
答案 0 :(得分:3)
不幸的是,不支持让VM在不同的资源组中使用availabilitySet:(。
答案 1 :(得分:1)
首先,让我问你为什么要不同的资源组?我坚信你是用多个资源组来思考它。资源组基本上是您的“整个系统”,并且在一个解决方案的范围内,您应该只有一个用于生产的资源组,一个用于beta / staging等,但从不混合。
如果您向客户销售SaaS,那么为每个客户建立一个资源组是有意义的。
如您所知,资源组只是一种链接在一起并管理解决方案中所有资产的方式; vm,存储,数据库等在一个通用名称下。我很怀疑为什么人们想在一个解决方案中考虑多个资源组,但是,我总是愿意学习:)
可用性组
现在,Availability groups是另一回事。这与VM实例的“更新域”和“故障域”有关。由于Azure不会为您保留3个独立的VM,因为它与大多数PaaS服务一样,您必须自己管理这些VM以确保完全正常运行。基本上,当您在可用性集中添加两个或更多VM时,您可以确保计划或计划外事件,至少有一个VM可用于满足SLA。
尝试将两者结合起来以防止停机可能听起来像个好主意,但它并没有解决我所知道的任何问题。就像那句老话:如果它没有破坏,不要修理它:)