Azure 容器实例解决方案设计

已完成

与物理硬件所需的投资相比,虚拟机是降低成本的极佳方式。 但是,每个虚拟机仍然仅限于单个操作系统。 如果想要在单个主机上运行应用程序的多个实例,则容器是绝佳的选择。

Azure 容器实例是在 Azure 上运行容器的快速简单方式。 使用 Azure 容器实例的方案包括简单的应用程序、任务自动化和生成作业。

有关 Azure 容器实例的注意事项

Azure 容器实例具有许多优势,包括快速启动、按秒计费和持久性存储。 这些优势使 Azure 容器实例成为一个出色的计算解决方案,通过使用直接迁移模式支持新的工作负载和迁移数据。

显示用于选择 Azure 容器实例以生成新工作负载并支持直接迁移的决策树的流程图。

  • Azure 容器实例支持快速启动。 可以在几秒钟内启动容器,以立即访问应用程序。

  • Azure 容器实例实现按秒计费。 只在容器运行时产生费用。

  • Azure 容器实例支持自定义容器大小。 可以指定 CPU 内核和内存的确切值,并避免未使用的资源产生成本。

  • 容器实例提供持久性存储。 Azure 文件存储共享可以直接装载到一个用于检索和持久保存状态的容器。

  • 容器实例可用于 Linux 和 Windows。 使用同一 API 来计划 Windows 和 Linux 容器。

容器组

Azure 容器实例中的顶层资源是容器组。 容器组是安排在同一主机上的容器集合。 容器组中的容器共享生命周期、资源、本地网络和存储卷。

显示从端口 80 上的 DNS 和从端口 1433 上的 Azure 文件访问的容器组的示意图。

在想要将单个功能任务划分为多个容器映像时,多容器组会很有用。 然后,这些映像可以由不同的团队交付并具有单独的资源需求。 某些示例方案包括:

  • 为 Web 应用程序提供服务的容器和从源控件拉取最新内容的容器。
  • 应用程序容器和日志记录容器。 日志记录容器收集主要应用程序输出的日志和指标并将其写入长期存储。
  • 应用程序容器和监视容器。 监视容器定期向应用程序发送请求,确保它正常运行和响应,并在需要时发出警报。
  • 前端容器和后端容器。 前端可能为 Web 应用程序提供服务,而后端运行检索数据的某个服务。

使用 Azure 容器实例时要考虑的事项

使用 Azure 容器实例时,有几种建议的安全做法。

  • 使用专用注册表。 容器是基于一个或多个存储库中存储的映像构建的。 这些存储库可以属于公共注册表或专用注册表。 Docker 受信任注册表是专用注册表的例子,它可以安装在本地或者安装在虚拟私有云中。 另一个示例是 Azure 容器注册表,可用于生成、存储和管理容器映像及项目。

  • 确保在整个生命周期内的映像完整性。 在整个容器生命周期内管理安全性的一个环节是确保容器映像的完整性。 不应允许有漏洞(哪怕是轻微漏洞)的映像在生产环境中运行。 保存少量的生产映像,确保能够有效地对其进行管理。

  • 监视容器资源活动。 监视资源活动,例如,容器访问的文件、网络和其他资源。 监视资源活动和消耗量对于性能监视非常有用,可用作一种安全措施。

比较 Azure 容器实例和 Azure 虚拟机

下表比较了 Azure 容器实例和 Azure 虚拟机对重要功能的支持程度。 查看以下功能时,请考虑 Tailwind Traders 基础结构计算解决方案需要哪些功能和支持。

比较 Azure 容器实例 Azure 虚拟机
隔离 容器实例通常提供与主机和其他容器的轻度隔离,但不像虚拟机那样提供强大的安全边界。 虚拟机提供与主机操作系统和其他虚拟机的完全隔离。 当强大的安全边界至关重要时(例如,在相同服务器或群集上托管来自竞争公司的应用),隔离措施非常有用。
操作系统 容器实例运行操作系统的用户模式部分,可以对其进行定制,使其只包含应用程序所需的服务。 此配置可以减少使用的系统资源。 每个虚拟机运行一个完整的操作系统。 Azure 虚拟机通常比容器实例需要更多的系统资源,例如 CPU、内存和存储。
部署 容器实例通过命令行使用 Docker 部署单个容器。 可以使用 Azure Kubernetes 服务等业务流程协调程序部署多个容器。 可以使用 Windows Admin Center 或 Hyper-V 管理器部署单个虚拟机。 可以使用 PowerShell 或 System Center Virtual Machine Manager 部署多个虚拟机。
永久性存储 容器实例使用 Azure 磁盘作为单个节点的本地存储,或将 Azure 文件存储(SMB 共享)用于由多个节点或服务器共享的存储。 通过 Azure 虚拟机,可以将虚拟硬盘 (VHD) 用于单个虚拟机的本地存储,或将 SMB 文件共享用于多个服务器共享的存储。
容错 如果 Azure 容器实例中的某个群集节点发生故障,则在该节点上运行的所有容器都将在另一个群集节点上由业务流程协调程序快速重新创建。 虚拟机可以故障转移到群集中的另一台服务器,而虚拟机的操作系统将在新服务器上重启。