Azure Linux 4.0:微软终于有了自己的通用服务器 Linux

2026-05-28 28 预计阅读时间:1 分钟
来源:infoq.com AI 摘要 原文链接

免责声明:本文为 AI 摘要整理,建议结合原文阅读。摘要可能省略上下文、版本差异或边界条件,不作为官方说明。

预计阅读时间:8 分钟

在开源峰会上,微软宣布了两款新操作系统:Azure Linux 4.0 和 Azure Container Linux。前者意味着微软第一次提供面向通用服务器场景的 Linux 发行版——不再只是跑容器的底层宿主机,而是可以直接在 Azure VM 上承担工作负载的完整系统。后者则基于 Flatcar 构建了一个不可变的容器专用宿主系统。两条路线,两种哲学,指向同一个目标:让 Azure 上的 Linux 更可控、更轻量、更贴合云平台本身。

从 CBL-Mariner 到 Azure Linux 4.0

微软的 Linux 之路并不短。早期的 CBL-Mariner 已经在 Azure 内部服务中运行多年,后来以 Azure Linux 3.x 的名字面向外部,但定位始终偏容器宿主机——精简、只跑容器,不鼓励用户在上面装一堆服务端软件。

Azure Linux 4.0 的关键变化是:它基于 Fedora,定位为通用服务器发行版。这意味着微软不再只提供"刚好够跑容器"的极简系统,而是给了一个能装包、能跑数据库、能部署 Web 服务的完整 Linux。选择 Fedora 作为上游,也说明微软想要更快的软件更新节奏和更现代的工具链,而不是像 RHEL 那样走稳定优先的路线。

对 Azure 用户来说,这填补了一个空白:之前在 Azure VM 上选 Linux,要么用 Ubuntu/Debian 等第三方发行版,要么用极简的 Azure Linux 3.x 只跑容器。现在有了 Azure Linux 4.0,可以在微软自己维护的系统上跑更完整的服务端工作负载,同时保持与 Azure 平台的深度集成。

Azure Container Linux:不可变宿主机的新选择

与 4.0 的"通用"路线并行,微软还发布了 Azure Container Linux。这是一个不可变(immutable)的容器优化宿主机,基于 Flatcar Container Linux 构建。

不可变系统的核心思路是:操作系统本身只读,所有应用都跑在容器里,系统更新通过原子化切换整个分区完成,不存在"装了某个包导致系统状态漂移"的问题。Flatcar 本身是 CoreOS Container Linux 的社区延续,微软把它纳入 Azure 体系,等于给 Kubernetes 节点和容器密集型场景提供了一个更干净的底座。

两条路线的分工很清晰:

场景 推荐系统
通用服务器(数据库、Web 服务、多进程应用) Azure Linux 4.0
纯容器宿主机(K8s 节点、单容器部署) Azure Container Linux

实操:在 Azure 上部署 Azure Linux 4.0 VM

以下示例展示如何用 Azure CLI 创建一台运行 Azure Linux 4.0 的虚拟机,并验证系统信息。

先确认你的 Azure CLI 已登录,且订阅指向目标资源组:

# 登录 Azure(如果尚未登录)
az login

# 查看当前订阅
az account show --output table

# 如果需要切换订阅,用 set 命令
# az account set --subscription "<你的订阅ID>"

创建资源组和 VM。注意 Azure Linux 4.0 的镜像 URN 可能随区域和版本更新,先用 az vm image list 查找:

# 搜索 Azure Linux 4.0 镜像
az vm image list \
  --publisher MicrosoftAzureLinux \
  --offer AzureLinux \
  --sku azurelinux-4 \
  --all \
  --output table

# 创建资源组(替换区域和名称)
az group create \
  --name azlinux4-demo \
  --location eastus

# 创建 VM,使用查到的最新镜像 URN
# 以下 URN 格式为示例,请用上面查到的实际值替换
az vm create \
  --resource-group azlinux4-demo \
  --name azlinux4-vm \
  --image MicrosoftAzureLinux:AzureLinux:azurelinux-4:4.0.20250618 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --size Standard_D2s_v5 \
  --output json

VM 创建完成后,SSH 登入验证系统:

# 获取 VM 公网 IP
PUBLIC_IP=$(az vm show \
  --resource-group azlinux4-demo \
  --name azlinux4-vm \
  --query publicIps \
  --output tsv)

# SSH 登入
ssh azureuser@$PUBLIC_IP

# 在 VM 内执行:确认发行版信息
cat /etc/os-release
# 预期输出中应包含 NAME="Azure Linux" 和 VERSION="4.0"
# 以及 ID_LIKE="fedora" 体现其 Fedora 上游

# 查看包管理器(Azure Linux 4.0 基于 Fedora,使用 dnf/rpm)
dnf list installed | head -20

如果你更习惯用 Terraform 管理基础设施,对应的 HCL 配置如下:

resource "azurerm_resource_group" "demo" {
  name     = "azlinux4-demo-tf"
  location = "East US"
}

resource "azurerm_virtual_machine" "azlinux4" {
  name                  = "azlinux4-vm"
  location              = azurerm_resource_group.demo.location
  resource_group_name   = azurerm_resource_group.demo.name
  network_interface_ids = [azurerm_network_interface.main.id]
  vm_size               = "Standard_D2s_v5"

  storage_image_reference {
    publisher = "MicrosoftAzureLinux"
    offer     = "AzureLinux"
    sku       = "azurelinux-4"
    version   = "latest"   # Terraform 支持用 latest 自动取最新版
  }

  os_profile_linux_config {
    disable_password_authentication = true
    ssh_keys {
      path     = "/home/azureuser/.ssh/authorized_keys"
      key_data = var.ssh_public_key
    }
  }

  os_profile {
    computer_name  = "azlinux4vm"
    admin_username = "azureuser"
  }
}

注意:镜像 URN 中的版本号、SKU 名称可能随正式 GA 而调整。部署前务必用 az vm image list 或 Azure Portal 的镜像选择器确认当前可用值。上面的版本号 4.0.20250618 是示例格式,不是实际发布版本。

选哪个:决策清单

面对 Azure 上的 Linux 选择,可以按以下思路判断:

  • 工作负载是纯容器吗? 如果所有服务都打包成容器镜像、通过 Kubernetes 或 ACI 运行,Azure Container Linux 的不可变模型能减少宿主机运维负担,系统更新更安全。
  • 需要安装系统级软件吗? 如果要跑 PostgreSQL 直接在 VM 上、需要 systemd 管理多进程、或者依赖 dnf 装包,Azure Linux 4.0 是正确选择。
  • 团队对 Fedora 生态熟悉吗? Azure Linux 4.0 基于 Fedora,包管理用 dnf,软件版本偏新。习惯 apt/Debian 的团队需要适应一下,但换来的是更快的上游更新。
  • 合规与支持范围? 微软对 Azure Linux 提供官方支持,这在 Azure 生态内比社区版 Flatcar 或自建 Ubuntu 更有保障。但如果你有跨云需求,Azure Linux 的绑定程度需要评估。

最后一点值得留意:微软同时维护两条路线,说明它承认"通用服务器"和"纯容器宿主机"是不同问题,不该用同一个系统强行覆盖。这种分工比"一个系统搞定一切"更务实,也给用户留下了更清晰的选型依据。


相关推荐