azure - 我如何知道 Azure VMSS 的特定实例上安装了哪个映像版本?
问题描述
我有一个带有几个实例的 Azure VMSS(虚拟机规模集),链接到“图像库”。VMSS 的配置方式是它应该始终从图像库中选择特定图像的最新版本。
我如何以及在哪里可以查看特定实例上安装了哪个版本的映像?
解决方案
如果映像库配置为在新实例上安装最新映像,则映像版本可能会因实例而异。映像的实际安装版本存储在storageProfile.imageReference.exactVersion
vmss 对象的属性中。
列出现有规模集中特定机器的已安装映像版本:
az vmss show --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--instance-id <instance id> \
--query storageProfile.imageReference.exactVersion
回复与图片库中定义的版本号匹配:
"2021.06.1782103"
如果实例 ID 未知,则可以获取现有规模集的所有实例 ID:
az vmss list-instances --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--query [].instanceId
[
"1141",
"1142",
"1143"
]
为了进一步简化事情,可以列出现有规模集中每台机器的已安装映像版本。例如,这允许查看所有实例是否处于相同版本或是否留下一个:
az vmss list-instances --resource-group "<resource group name>" \
--subscription "<subscription name>" \
--name <vmss name> \
--query [].storageProfile.imageReference.exactVersion
在一个有 3 个实例的示例中,回复可能表明两台机器在更高版本(...03)上,而一台机器仍然在图像的旧版本上(...02):
[
"2021.06.1782102",
"2021.06.1782103",
"2021.06.1782103"
]
最后,结合这个也可以同时查询instanceId和安装的镜像版本:
az vmss list-instances --resource-group "<resource group name>" --subscription "<subscription name>" --name <vmss name> --query "[].[instanceId,storageProfile.imageReference.exactVersion]"
[
[
"1141",
"2021.06.1782102"
],
[
"1142",
"2021.06.1782103"
],
[
"1143",
"2021.06.1782103"
]
]
推荐阅读
- python - 将项目保存到 discord.py 中的列表,然后将其发送到服务器
- python - 使用 python 在 concurrent.futures 中 as_completed 的意外行为。
- amazon-web-services - 为什么 AWS Cloudwatch 在确定缺少数据点的警报状态时使用评估范围?
- javascript - 对象对象未按应有的方式工作
- c# - 在“第一个”空格字符之前和之后取字符串
- java - javafx ListChangeListener.Change 抽象方法实现
- android - 为什么我的菜单图标没有出现在操作栏上?
- c# - Hangfire + SimpleInjector + MVC
- sql - 按特定值过滤时,SQL Server 查询永远不会完成
- python - 如何在具有可变列python pandas的一行中找到最小值