Skip to main content

什么时候使用Azure Container Instance和Azure Kubernate Service?

分类:  Azure入门 标签:  #Azure #基础 #Azure入门 #入门 发布于: 2023-06-15 14:12:48

我们之前介绍的Azure虚拟机和Azure app service有提及容器的使用,特别是App service本身就支持通过容器来部署,我们这一节来看一下什么时候需要选择基于容器的部署。

有一点经验需要分享,假如您的单个Web应用中集成了很多的功能,模块和模块之间耦合比较厉害,那么不适合选择基于容器的部署,采用容器的部署更多的是希望部署功能较为单一的模块,各模块之间可以通过rest api或者其他远程技术例如gRPC进行解耦的模块。

什么是容器?

容器是虚拟化环境。 类似于在单个物理主机上运行多个虚拟机,你可以在单个物理或虚拟主机上运行多个容器。 与虚拟机不同,你不用管理容器的操作系统。 虚拟机就像是可以连接和管理的操作系统的实例,但容器是轻型的,其设计目的是实现动态创建、横向扩展和停止。 虽然可在应用程序需求增加的情况下创建和部署虚拟机,但容器的作用旨在使你能够响应基于需求的更改。 使用容器,可以在出现崩溃或硬件中断时快速重启。 最常见的容器引擎之一是由 Azure 支持的 Docker。

容器和虚拟机之间的差异

我们对比一下容器和虚拟机之间的主要差异:

  • 虚拟机为CPU, 内存,磁盘提供了一个抽象。
  • 虚拟机上用户可以控制一切,包括操作系统其他软件工具等等。
  • 虚拟机模拟的是一个完整的计算机
  • 容器分为容器主机和容器应用。容器主机负责抽象计算机,容器应用抽象应用。
  • 虚拟机是对计算的虚拟机化,容器是对操作系统的虚拟化。
  • 容器相对于虚拟机天然会在生命周期上比虚拟机更轻量化。

容器通过容器业务流程协调程序进行管理,该程序可以根据需要启动、停止和横向扩展应用程序实例。 可以通过两种方式来管理 Azure 中的 Docker 和基于 Microsoft 的容器:Azure 容器实例和 Azure Kubernetes 服务 (AKS)。

Azure容器实例

Azure 容器实例提供了在 Azure 中运行容器的最简捷方式,既无需管理任何虚拟机,也不必采用任何其他服务。 它是一种平台即服务 (PaaS) 产品/服务,可用于上传容器并为你直接运行。您可以参考文档:https://azure.microsoft.com/services/container-instances

Azure Kubernets服务

自动化和管理大量容器以及与之交互的任务称为“业务流程”。 Azure Kubernetes 服务是面向容器的完整业务流程服务,包含分布式体系结构和大量容器。可以参考文档:https://azure.microsoft.com/services/kubernetes-service

在解决方案中使用容器

容器通常用于通过使用微服务体系结构来创建解决方案。 在这种体系结构中,你可以将解决方案拆分为各个较小的独立部分。 例如,可以将网站拆分为三个容器,一个用于托管前端,另一个用于托管后端,第三个用于存储。 这样可将应用的各个部分拆分成可以独立维护、缩放或更新的逻辑部分。

假设网站后端已达到容量,但前端和存储的容量尚不紧张。 你可以:

单独缩放后端以提高性能。
决定使用其他存储服务。
替换存储容器,而不会影响应用程序的其余部分。

这里需要提到另外一个概念:微服务, 微服务是容器化的天然选择。