SuperAPI AI 工具集

azure-vms

部署与运维

查看项目

更新于 10-15 12:47

技能介绍

用途

本技能用于在 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 配置。

限制

资料未提供关于收费、价格、平台支持范围或具体性能效果的信息。