用途
本技能用于在 Azure 上部署和管理虚拟机(VM)、可用性集、规模集、自定义镜像和托管磁盘,覆盖虚拟机创建、规格选择、磁盘管理、自动缩放以及面向生产环境的 Terraform 配置。
适用场景
- 需要对操作系统和运行时环境拥有完全控制权。
- 应用需要特定的操作系统配置或内核模块。
- 运行无法容器化的遗留应用。
- 需要用于机器学习训练或渲染的 GPU 加速计算。
- 需要借助可用性区域或规模集实现高可用计算。
前置条件
安装 Azure CLI:
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
登录并设置订阅:
az login
az account set --subscription "my-subscription-id"
创建资源组:
az group create --name compute-rg --location eastus
列出区域中可用的虚拟机规格:
az vm list-sizes --location eastus --output table
列出可用虚拟机镜像:
az vm image list --output table
az vm image list --publisher Canonical --offer 0001-com-ubuntu-server-jammy --all --output table
主要能力
虚拟机创建
支持使用 SSH 密钥创建 Linux 虚拟机、创建 Windows 虚拟机,以及通过 cloud-init 自定义数据初始化虚拟机。示例(Linux VM with SSH Key):
az vm create \
--resource-group compute-rg \
--name myapp-vm \
--image Ubuntu2204 \
--size Standard_D4s_v5 \
--admin-username azureuser \
--generate-ssh-keys \
--vnet-name myapp-vnet \
--subnet app-subnet \
--nsg "" \
--public-ip-address "" \
--os-disk-size-gb 64 \
--os-disk-caching ReadWrite \
--storage-sku Premium_LRS \
--zone 1 \
--assign-identity \
--tags environment=prod team=platform app=myapp
虚拟机规格指南
- B 系列(Standard_B1s、Standard_B2s):开发/测试、低流量 Web 服务器。
- D 系列(Standard_D4s_v5、Standard_D8s_v5):通用,大多数生产工作负载。
- E 系列(Standard_E4s_v5、Standard_E16s_v5):内存密集型(数据库、缓存)。
- F 系列(Standard_F4s_v2、Standard_F16s_v2):CPU 密集型(批处理、分析)。
- L 系列(Standard_L8s_v3、Standard_L32s_v3):存储优化(大数据、SQL)。
- N 系列(Standard_NC6s_v3、Standard_NC24ads_A100_v4):GPU 工作负载(机器学习训练、渲染)。
- M 系列(Standard_M128s):SAP HANA、大型内存工作负载。
托管磁盘
支持向现有虚拟机附加数据盘、创建独立托管磁盘、调整磁盘大小(需先解除分配虚拟机)、创建磁盘快照用于备份、从快照创建磁盘,以及列出虚拟机已附加的磁盘。
自定义镜像
支持将虚拟机通用化后创建镜像、从自定义镜像创建虚拟机,以及使用 Azure Compute Gallery 共享镜像(创建库、镜像定义、镜像版本并指定目标区域与副本数)。
可用性集与可用性区域
支持创建可用性集(指定故障域与更新域数量)、在可用性集中创建虚拟机,以及跨可用性区域创建虚拟机。
虚拟机规模集(VMSS)
支持创建带自动缩放的规模集、配置自动缩放规则(如 CPU > 70% 扩容、CPU < 30% 缩容)、手动缩放、更新规模集镜像、滚动升级实例以及列出规模集实例。
虚拟机管理操作
支持启动/停止/重启/解除分配、在虚拟机上运行命令、启用启动诊断并获取启动日志、启用 Azure 备份、调整虚拟机规格。
Terraform 配置
提供 azurerm_linux_virtual_machine、azurerm_managed_disk、azurerm_virtual_machine_data_disk_attachment、azurerm_linux_virtual_machine_scale_set 等资源的配置示例,包含 SSH 密钥、OS 磁盘、源镜像引用、托管标识、自动 OS 升级策略与滚动升级策略。
故障排查
- 虚拟机无法启动:区域配额超限,使用 az vm list-usage --location eastus 检查配额并申请提升。
- SSH 连接被拒绝:NSG 阻止 22 端口或虚拟机未运行,检查 NSG 规则与电源状态,私有虚拟机可使用 Azure Bastion。
- 虚拟机磁盘已满:OS 磁盘过小或日志未轮转,解除分配后调整磁盘大小并配置日志轮转。
- 虚拟机性能缓慢:规格选择不当或磁盘限流,使用 az monitor metrics list 检查指标并升级规格或磁盘层级。
- 规模集未扩容:未达到自动缩放规则阈值,检查自动缩放设置并核对指标阈值。
- 自定义镜像虚拟机启动失败:镜像未正确通用化,捕获前重新运行 waagent -deprovision 并检查启动诊断。
- VMSS 滚动升级卡住:新实例健康探测失败,修复应用健康端点并检查 az vmss rolling-upgrade get-latest。
- Spot 虚拟机意外被驱逐:Azure 回收容量,使用 Deallocate 驱逐策略并设置驱逐通知。
相关技能
- azure-networking:用于虚拟机连接的 VNet 与 NSG 配置。
- azure-aks:不需要虚拟机时的容器替代方案。
- arm-templates:基于 Bicep 的虚拟机部署模板。
- terraform-azure:基于 Terraform 的虚拟机与 VMSS 配置。
限制
资料未提供关于收费、价格、平台支持范围或具体性能效果的信息。