减少或替换 Azure 虚拟机规模集中的虚拟机高级存储磁盘大小

Reduce or replace virtual machine premium storage disk sizes within Azure Virtual Machine Scale Sets

我已经配置了一个 Azure Kubernetes 集群,它使用包含 3 个虚拟机的虚拟机规模集。问题是每个虚拟机都自动附加了存储,即 P10 高级 SSD 类型。老实说,我想要更小的磁盘,而 P4 Premium SSD 磁盘对于我的业务用例来说已经足够了。对于可能的 Azure 磁盘,我可以在 this link.

找到更多信息

更换高级存储磁盘的最简单方法是什么?

第一个选项是更改 VM 的现有存储大小。据我在 "Properties with restrictions on modification" 部分阅读 from here,这是不可能的。 我的下一个选择是创建一个新的虚拟机规模集。在创建过程中(使用 azure portal UI),我没有任何可以指定特定磁盘类型的选项。我只能选择"StandardHDD"、"Standard SSD"、"Premium SSD"。在我看来,P10 是默认的高级存储。

最后但同样重要的是,我发现了一个 Microsoft tutorial,它描述了如何将额外的磁盘附加到规模集以及从规模集中分离。这看起来很有希望,但大多数指定的命令都已过时(2 岁)不能与 azure-cli 2.2 一起使用。

所以我的问题又来了:更换或减少 Azure 虚拟机规模集中虚拟机高级存储磁盘的最简单方法是什么?提前致谢!

OS 磁盘的大小完全取决于 VM 的基础映像。你可以增加它,但你不能降低它。前几天我回答了 。 P10抽奖即100GB.

顺便说一句:您无法轻松替换现有 AKS 群集的“默认”规模集。

在回答这个问题时,这是 AKS 集群使用的图像:

Image reference

Publisher: microsoft-aks
Offer: aks
SKU: aks-ubuntu-1604-202003
Version: 2020.03.05

这些基本映像始终具有 100GB OS 磁盘。


如果您使用默认 Ubuntu 图像创建一个规模集,您将获得一个包含 30GB 高级磁盘的规模集:

Image reference

Publisher: Canonical
Offer: UbuntuServer
SKU: 18.04-LTS
Version: latest

我不知道您如何说服 AKS 使用您的比例集或基础图像而不是他们的。至少不是以微软预期的方式。有一个 blog post 讨论替换(更新)基本图像。您可以适应较小的基本图像,但我不知道这是否可行。

AzureCLI 有一个选项可以在创建新节点池时定义 OS 磁盘大小 --node-osdisk-size:

https://docs.microsoft.com/en-us/cli/azure/ext/aks-preview/aks/nodepool?view=azure-cli-latest#ext-aks-preview-az-aks-nodepool-add

所以我假设,您可以手动创建一个提供 OS 磁盘大小的新节点池,然后删除旧节点池。请确保至少有一个系统节点池,否则您将无法删除您的第一个(默认)池!

https://docs.microsoft.com/en-us/azure/aks/use-system-pools

不幸的是,目前在创建新节点池时没有选择 OS 磁盘类型的选项,因此会自动选择最适合所需 VM 的选项。此外 OS 磁盘类型是 VM 规模集的 create-time 属性,因此您以后无法更改它。

https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-upgrade-scale-set#properties-with-restrictions-on-modification