use*_*983 6 azure azure-web-roles powershell-3.0
我们有一个VM说SampleVM在Azure环境中运行并运行,同样我们创建了2个实例.一个是WebRole,另一个是运行到Slot staging的WorkerRole.
我的问题是我可以通过powershell命令启动/停止SampleVM但是如何启动/停止在SampleVM上运行的单个实例(WebRole或WorkerRole).
但是当我停止SampleVM时,Instance也都停止了,但我想只停止一个Instance/VM,即WebRole或WorkerRole.
请提供一些powershell命令,并将参数传递给Stop/Start单个实例
Gaurav给出了很好的答案,但我想补充一点细节,因为我认为网络和工作者角色可能会有一些混乱.每个角色都是一组虚拟机的定义,这些虚拟机执行相同的操作(由您构建)(您不需要处理操作系统 - 您只需启动应用程序,Azure就会自行处理虚拟机).
当Cloud Service正在运行时,每种角色类型至少会有一个实例.因此,在您的情况下,运行Web角色和辅助角色,您将至少运行两个VM.
如果您选择将您的Web角色扩展到3个实例,然后决定将其转回2个实例,则无法选择要关闭的实例.这由Azure的结构处理.请记住,角色的每个实例都运行相同的代码,Azure会将流量负载平衡到您的角色实例(通过您定义的外部端点).您唯一需要担心的是关机.你有约.5分钟清理任何正在运行的进程(并且您可以在关闭期间轻松地从负载均衡器中取出特定实例,因为您收到了一个Stopping()
事件).
您无法关闭云服务中的整个角色(例如,角色的所有实例)(因此......您不能在保持Web角色实例运行的同时关闭工作者角色实例).如果这是一项要求,那么您始终可以考虑在另一个Cloud Service中的一个Cloud Service和辅助角色中运行Web角色.如果他们使用队列传递数据,一切都将像以前一样工作.如果Web角色实例需要直接访问辅助角色实例,则可以将两个云服务都放入虚拟网络.
还有一两件事要考虑:你不必须有独立的角色.如果成本是一个因素,您可以在Web角色中运行所有代码.在您的Web角色中启动其他进程/线程的工作很少OnStart()
- 请记住,角色实例是完整的Windows Server虚拟机; 运行任何你想要的.使用单个角色定义,缩放有点粗糙:所有内容都缩放在一起.使用单独的角色,您可以微调您的缩放(在构建更大的系统时更为重要).
简单的答案是,截至今天,您无法停止 Web/辅助角色的单个实例。当您停止某个角色时,所有实例都会停止。您可以从角色中删除实例,但同样您无法指定要删除的特定实例。请参阅下面@kwill 的回答。
您还可能会发现以下链接对于删除特定角色实例很有用:
https://github.com/richorama/Two10.Azure.SelfDestruct
归档时间: |
|
查看次数: |
7419 次 |
最近记录: |