如何通过Terraform将Azure AKS节点磁盘从Premium SSD改为Standard Disk?
问题解答
1. 关于VM规格导致默认使用Premium SSD的说法是否正确?
正确。Azure VM SKU名称中带有s后缀(比如你使用的Standard_D2ds_v5),表示该实例类型支持Premium存储。Terraform的azurerm_kubernetes_cluster资源在默认逻辑中,当节点池的VM SKU支持Premium存储时,会自动将os_disk_type设置为Managed_Premium,也就是Premium SSD磁盘。
2. 如何修改为成本更低的Standard磁盘?
你需要在default_node_pool块中显式指定os_disk_type参数,覆盖默认行为。根据成本需求,有两个可选值:
Managed_Standard:对应Standard HDD磁盘,成本最低StandardSSD_LRS:对应Standard SSD磁盘,性能介于HDD和Premium SSD之间,成本低于Premium SSD
修改后的配置示例
在你的default_node_pool块中添加os_disk_type参数:
default_node_pool { name = "systempool" vm_size = "Standard_D2ds_v5" orchestrator_version = "1.28.5" zones = [2, 3] enable_auto_scaling = true min_count = 1 max_count = 2 os_disk_size_gb = var.disk_size os_disk_type = "Managed_Standard" # 按需替换为StandardSSD_LRS type = "VirtualMachineScaleSets" vnet_subnet_id = azurerm_subnet.system_pool_subnet.id temporary_name_for_rotation = "resize" max_pods = 35 node_labels = { "nodepool-type" = "System" "environment" = "${var.environment}" "nodepoolOS" = "linux" "app" = "System" "nodepool" = "vm001" } upgrade_settings { max_surge = "10%" } //Other default configurations .... }
注意事项
- 修改
os_disk_type会触发AKS节点池的滚动更新,AKS会逐个替换现有节点为使用新磁盘类型的节点,确保服务不中断,但建议在业务低峰期执行操作。 - 执行配置修改后,先运行
terraform plan确认变更内容,再执行terraform apply完成更新。
内容的提问来源于stack exchange,提问作者Nayden Van
相关产品推荐
相关产品推荐

