Skip to main content

Linux 虚拟机介绍

分类:  Azure指南 标签:  #Azure #基础 #Azure入门 #Azure Cloud Architecting 发布于: 2023-05-28 9:49:27

Azure虚拟机是Azure提供几个计算服务之一。如果你需要自己灵活的管理所有的计算资源,那么你应该选择Azure虚拟机。本节给大家介绍一下Azure提供的Linux虚拟机。

Azure虚拟机提供给客户灵活的虚拟机计算服务,而无需管理和购买物理硬件,不过针对于Azure虚拟机,你仍然需要自己管理大多数的IT任务,例如运行维护计划,安装软件,配置服务,打补丁,升级系统等等。

Azure虚拟机可以用在很多场景,例如:

  • 开发和测试: 可以利用Azure虚拟机提供的快速和容易部署的特点,快速部署需要的开发和测试环境。
  • 运行云应用的计算资源: 可以很容易的将之前本地运行的应用通过创建虚拟机来迁移到云平台,而且由于虚拟机可以很方便的创建,删除,重启等等。
  • 链接数据中心:可以使用虚拟机网络将虚拟机链接到已有数据中心,扩展应用。

应用需要使用的虚拟机数量可以很方便横向和纵向进行扩展。

创建VM之前应该考虑那些事

微软有提供官方的指导文档,这些指导文档可以帮助客户在开始一个新的云项目之前,需要考察那些事情,关于这些文档我也学习过一些,您可以在本公众号里找到《Azure云架构师入门》,除了这些指导文档,具体到需要创建一个虚拟机有哪些需要考虑的点,我们列在这里:

  • 虚拟机的名字
  • 虚拟机应该创建哪个区域
  • 虚拟机的大小
  • 最大需要创建多少个虚拟机。
  • 虚拟机上应该预装什么操作系统。
  • 如何配置虚拟机。
  • 创建虚拟机还有需要哪些资源?

区域

所有在Azure里的资源都会分配在不同的区域,Azure在全球有很多个区域分布,关于这些分布,您可以参考一下文档:https://azure.microsoft.com/regions/. 一般我们把创建资源的区域称为Location, 对于虚拟机来说,Location指定了这个虚拟机的存储会在哪个区域(例如虚拟磁盘)。可以使用如下的方法查看Azure支持的区域:

方法描述
Azure Potal创建资源的时候,会提示选择区域,打开选择区域的列表
Azure PowerShell使用命令 Get-AzLocation 列出所有的区域
REST API使用 list Locations 操作: https://docs.microsoft.com/en-us/rest/api/resources/subscriptions
Azure CLI使用命令 az acount list-locations

可用性

Azure通过服务保证(SLA)向用户提供高达99.9%的虚拟机可用性保证,虽然有SLA保证,对于生产环境,还是建议用户创建两个以上的虚拟机的可用集。包含两个VM以上的可用集保证Azure能够分发你的请求到不同的节点上。关于SLA您可以参考:https://azure.microsoft.com/support/legal/sla/virtual-machines/

虚拟机大小

虚拟机大小的选择是根据你需要完成的工作来决定的,关于虚拟机的大小主要关注几点:

  • 处理器
  • 内存
  • 存储能力。

Azure提供了很多不同类型的大小供客户选择。

Azure根据虚拟机的大小和操作系统按小时来收费,存储的费用需要另外计算。

限制

一个订阅都有一个默认的限制,当前对于一个订阅,基本版是限制20个虚拟机每个区域,如果你需要更多的虚拟机数量,联系Azure的支持人员。

托管磁盘

Azure的托管磁盘背后还是Azure的Storage account, 当你使用托管磁盘时,Storage账户由Azure自动管理,用户只需指定磁盘的大小以及定价层。用户可以自由的添加磁盘以适用VM的扩展,如果用户由非托管磁盘,也可以将它转化为托管磁盘。

同时用户可以使用自定义的镜像来转化为托管磁盘,具体请参考文档:https://docs.microsoft.com/en-us/azure/virtual-machines/managed-disks-overview

Linux发行版

Azure支持大多数的发行版, 用户可以直接从Azure Marketplace里创建linux的发行版。可以通过下面链接了解和直接创建Linux发行版:

Cloud-init

关于什么时Cloud-init, 请参考: https://cloud-init.io/

为了配合DevOps的概念,所有的基础设施都应该能通过code管理,通过code可以很容易的重新创建各种资源。 Azure提供了主流的自动工具集成,例如:AnsibleChefPuppet等等,同时Azure也提供了自己的自动工具:

同时Azure也支持Cloud-init。 关于这个部分,可以参考文档:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/using-cloud-init

存储

网络

介绍就到这里,后面我们也会一一介绍这些入门的知识点。