在 Azure 中引入和创建 Linux 映像
适用于: ✔️ Linux VM ✔️ 灵活规模集 ✔️ 统一规模集
本概述介绍有关映像的基础概念以及如何在 Azure 中成功构建和使用 Linux。 在将自定义映像引入 Azure 之前,需要首先了解可用的类型和选项。
本文介绍映像决策点和要求以及关键概念,让你能够按照本文说明创建符合你所需规格的自定义映像。
托管磁盘和映像之间的差异
利用 Azure,可将 VHD 引入到该平台,以用作托管磁盘或用作映像的源。
Azure 托管磁盘是一个 VHD。 可以使用现有 VHD 和根据其创建托管磁盘,或者从头开始创建一个空托管磁盘。 可以通过将磁盘附加到 VM 来借助托管磁盘创建 VM,但一个 VM 只能使用一个 VHD。 你将无法修改任何 OS 属性,因为 Azure 将只尝试打开 VM 并开始使用该磁盘。
Azure 映像可以由多个 OS 磁盘和数据磁盘组成。 在使用托管映像来创建 VM 时,平台会创建映像的副本并使用它来创建该 VM。 这样,托管映像就可以支持为多个 VM 重复使用同一映像。 Azure 还提供映像的高级管理功能,例如,通过 Azure Compute Gallery(以前称为“共享映像库”)进行全局复制和版本控制。
通用和专用映像
Azure 提供了两种主要映像类型:通用映像和专用映像。 术语“通用”和“专用”原本是 Windows 术语,后迁移至 Azure 中。 这两个类型定义了该平台在打开 VM 时如何处理 VM。 这两种类型都有优缺点和先决条件。 开始之前,首先需要明白需要哪种类型的映像。 下表总结了使用场景及相应需选择的类型:
场景 | 映像类型 | 存储选项 |
---|---|---|
创建可配置为供多个 VM 使用的映像。 在首次启动过程中,可以设置主机名、添加管理员用户和执行其他任务。 | 通用 | Azure Compute Gallery 或独立的托管映像 |
利用 VM 快照或备份创建映像。 | 专用 | Azure Compute Gallery 或托管磁盘 |
快速创建不需任何配置的映像来创建多个 VM。 | 专用 | Azure Compute Gallery |
通用映像
通用映像在首次启动时需要完成设置。 例如,在首次启动时,设置主机名、管理员用户和其他特定于 VM 的配置。 这种方式在需要多次重用映像以及需要在创建过程中传入参数时非常有用。 如果通用映像包含 Azure 代理,则代理会处理参数,并向平台返回指示初始配置已完成的信号。 此过程称为预配。
预配要求映像中包含配置程序。 以下两个配置程序可供使用:
有关创建映像的先决条件,请参阅此处。
专用映像
这些是完全配置好且不需要 VM 或特殊参数的映像。 平台只会打开 VM,你需要处理 VM 内部的唯一性(例如设置主机名),以避免同一 VNET 上发生 DNS 冲突。
虽然此类映像无需预配代理,但是,你可能需要一些扩展处理功能。 可以安装 Linux 代理,但请禁用预配选项。 即使无需预配代理,此类映像也必须满足 Azure 映像的先决条件。
映像存储选项
使用 Linux 映像时有两个选项可供选择:
- 使用托管映像在开发和测试环境中创建简单的 VM。
- 使用 Azure Compute Gallery 大规模创建和共享映像。
托管映像
虽然托管映像可用于创建多个 VM,但它们具有许多限制。 托管映像仅能从通用源(VM 或 VHD)中进行创建。 托管映像仅可用于在相同区域中创建 VM,且不能跨订阅和租户实现共享。
托管映像可用于开发和测试环境(在这种环境下,单个区域和订阅中需使用几个简单的通用映像)。
Azure Compute Gallery
在大规模创建、管理和共享映像时,建议使用 Azure Compute Gallery(以前称为“共享映像库”)。 Azure Compute Gallery 有助于根据映像来构建结构和组织。
- 支持通用映像和专用映像。
- 支持第 1 代映像和第 2 代映像。
- 支持映像全局复制。
- 对映像进行版本控制和分组,以便于管理。
- 在支持可用性区域的区域中,支持具有区域冗余存储 (ZRS) 的高可用性映像。 ZRS 提高了针对区域性故障的恢复能力。
- 使用 Azure RBAC 在订阅之间,甚至在 Active Directory (AD) 租户之间共享。
- 使用每个区域中的映像副本缩放部署。
概括而言,你会创建一个库,其中包含以下各项:
- 映像定义(保存映像组的容器)
- 映像版本 - 这些是实际的映像。
Hyper-V 代系
Azure 支持 Hyper-V 第 1 代 (Gen1) 和第 2 代 (Gen2)。 Gen2 是最新一代,相比于 Gen1,提供了更多的功能。 例如更大的内存、Intel Software Guard Extensions (Intel SGX) 和虚拟化持久性内存 (vPMEM)。 在本地运行的第 2 代 VM 具有一些 Azure 中尚未支持的功能。 有关详细信息,请参阅这篇文章中的“特性和功能”部分。 如果需要其他功能,请创建 Gen2 映像。
如果你仍需要创建自己的映像,请确保该映像符合映像先决条件,并将其上传到 Azure。 以下是分发特定要求:
- Debian Linux
- Flatcar Container Linux
- FreeBSD
- Oracle Linux
- OpenBSD
- Red Hat Enterprise Linux
- SLES 和 openSUSE
- Ubuntu
后续步骤
了解如何创建 Azure Compute Gallery。