【问题标题】:How to Stop single Instance/VM of WebRole/WorkerRole如何停止 WebRole/WorkerRole 的单个实例/VM
【发布时间】:2013-10-15 09:52:34
【问题描述】:

我们有一个 VM 说 SampleVM 已在 Azure 环境中部署和运行,并且我们创建了 2 个实例,一个是 WebRole,另一个是运行在 Slot staging 上的 WorkerRole。

我的问题是我可以通过 powershell 命令启动/停止 SampleVM,但是如何启动/停止在 SampleVM 上运行的单个实例(WebRole 或 WorkerRole)。

但是,当我停止 SampleVM 时,两个实例也都停止了,但我只想停止一个实例/VM,即 WebRole 或 WorkerRole。

请提供一些带有参数传递的 powershell 命令以停止/启动单个实例

【问题讨论】:

  • 感谢您的更多澄清,但在阅读后我的印象是不清楚我的案例图片所以这里是我的案例的一些可视化就像:当我们单击时,我创建了一个云服务作为“SampleVM”在 Azure 门户中的“SampleVM”上,它会打开一个页面,其中有多个选项卡,例如仪表板、监视器、配置等,当我单击它时有一个选项卡名称“实例”会显示一个新框架,其中顶部相同的选项卡显示在这之下有 2...
  • ...插槽一个是生产,另一个是暂存,当我单击暂存时,它会显示一个表格,其中显示 2 个节点/虚拟机/实例,状态显示正在运行这是只有我的案例图片的可视化.....现在我可以通过 powershell 命令启动/停止“SampleVM”,因为这两个正在运行的实例/节点/VM/角色也停止了......我的问题是我只想要停止/启动单个角色/VM/节点/实例,无论我们称之为在暂存槽下创建的那些节点...
  • 下面是我能够停止/启动云服务“Stop-AzureService -ServiceName”SampleVM“-Slot Staging”的命令......请现在对此有所了解,提供一些帮助或建议我如何停止/启动此特定云服务名称“SampleVM”中的特定实例。
  • 正如我在您的 cmets 中在我的回答下向您提到的:请编辑您的问题并进行澄清;不要在一系列 cmets 中隐藏额外的细节。

标签: azure azure-web-roles powershell-3.0


【解决方案1】:

Gaurav 的回答很好,但我想添加更多细节,因为我认为 Web 和工作人员角色可能有些混乱。每个角色是一组虚拟机的定义,这些虚拟机执行相同的操作,由您构建(您不处理操作系统 - 您只需启动您的应用程序,Azure 负责虚拟机本身)。

当云服务运行时,每种角色类型至少有一个实例。因此,在您的情况下,同时运行 Web 角色和辅助角色,您将至少运行两个 VM。

如果您选择将 Web 角色扩展到 3 个实例,然后决定将其拨回 2 个实例,则您无法选择关闭哪一个;这由 Azure 的结构负责。请记住,角色的每个实例都运行相同的代码,并且 Azure 将流量负载平衡到您的角色实例(通过您定义的外部终结点)。您唯一需要担心的是关机。你有大约。 5 分钟清理所有正在运行的进程(您可以在关闭期间轻松地将特定实例从负载均衡器中取出,因为您会收到 Stopping() 事件)。

您无法关闭云服务中的整个角色(例如角色的所有实例)(因此...您无法在保持 Web 角色实例运行的同时关闭辅助角色实例)。如果这是一项要求,那么您始终可以考虑在一个云服务中运行您的 Web 角色,并在另一个云服务中运行辅助角色。如果他们使用队列来传递数据,那么一切仍然会像以前一样工作。如果 Web 角色实例需要直接访问辅助角色实例,您可以将两个云服务放入虚拟网络中。

还有一点需要考虑:您不必必须拥有单独的角色。如果成本是一个因素,您可以在 Web 角色中运行所有代码。在OnStart() 期间,在您的 Web 角色中启动额外的进程/线程几乎不需要工作 - 请记住角色实例是完整的 Windows Server 虚拟机;随心所欲地运行。使用单一角色定义,扩展有点粗糙:所有东西都一起扩展。使用单独的角色,您可以微调您的扩展(在构建更大的系统时更为重要)。

【讨论】:

    【解决方案2】:

    David 关于如何为您的 PaaS 服务建模的更广泛观点都是正确的。但要补充的是,有一个刚刚发布的名为 Delete Role Instance 的新服务管理 API,它可以让您删除角色的特定实例 - http://msdn.microsoft.com/en-us/library/windowsazure/dn469418.aspx。此功能是全新的,允许您选择要删除的实例,而不是受制于 David 描述的默认结构行为(始终删除最后一个实例)。

    【讨论】:

      【解决方案3】:

      简单的答案是,从今天开始,您无法停止您的网络/工作者角色的单个实例。当您停止角色时,所有实例都将停止。 您可以从您的角色中删除实例,但同样您无法指定要删除的特定实例。请参阅下面的@kwill 答案。

      您还可能会发现以下链接对于删除特定角色实例很有用:

      http://gauravmantri.com/2013/10/16/a-new-version-of-windows-azure-service-management-api-is-available-with-delete-specific-role-instances-and-more-goodies/

      https://github.com/richorama/Two10.Azure.SelfDestruct

      【讨论】:

        猜你喜欢
        • 2018-12-08
        • 2014-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        相关资源
        最近更新 更多