什么是 Azure Kubernetes 服务?

已完成

我们先从几个定义着手,然后快速了解 Azure Kubernetes 服务 (AKS)。 本概述文章提供的信息可帮助你确定 AKS 是否是适合容器化管理策略的平台。

什么是容器?

容器是软件的原子单元,用于打包特定应用程序的代码、依赖项和配置。 借助容器,可以将单体应用程序拆分为构成解决方案的各种服务。 利用应用程序的此类重新架构,我们可以通过容器部署这些单独的服务。

该图显示了在云部署中用作容器的复制服务器或应用程序。

为何使用容器?

假设你的资产跟踪解决方案包括三个主要应用程序:

  • 一个跟踪网站,其中包括地图和有关要跟踪的资产的信息。

  • 一个数据处理服务,用于收集和处理从所跟踪资产发送的信息。

  • 一个 MSSQL 数据库,用于存储从网站捕获的客户信息。

你意识到,必须横向扩展解决方案才能满足客户需求。

虚拟机 (VM)

一种做法是为跨多个区域托管的每个应用程序部署一个新虚拟机。 然后,将应用程序复制到新的 VM。 但这样做需要你负责管理所用的每一个 VM。

扩展后,维护开销也会增加。 每个应用程序的 VM 操作系统 (OS) 版本和依赖项需要经过预配和配置,这样才能相互匹配。 对影响操作系统的应用程序应用升级和重大更改时,需要采取预防措施。 如果在升级过程中出现任何错误,则必须回滚安装,从而会导致中断,例如停机或延迟。

该图显示了在云中用作 VM 的复制服务器以及此问题如何引发迁移问题。

上图中的部署非常繁琐,有时容易出错,并且难以缩放单个服务。 例如,你可能无法轻松缩放 Web 应用程序中使用的缓存服务。 容器有助于解决这些类型的问题。

容器概念具有三大主要优势:

  1. 不可变性 - 容器的不变特性使其能够以相同的行为在计算环境之间可靠进行部署和运行。 在 QA 环境中测试的容器映像与部署到生产环境中的容器映像相同。

  2. 较小的大小 - 容器类似于 VM,但不像每个虚拟机那样具有内核。 取而代之的是,它们共享一个主机内核。 VM 使用大型映像文件来存储操作系统和你要运行的应用程序。 相比而言,容器不需要 OS,只需要应用程序。

  3. 轻量 - 容器始终依赖于主机安装的操作系统来获取特定于内核的服务。 容器的轻量级特性使其占用的资源更少,因此可以在同一计算环境中安装多个容器。

  4. 启动速度很快 - 容器可以在几秒钟内启动,而虚拟机则可能需要几分钟时间才能启动。

这些优势使得容器成了开发人员和 IT 运营人员的热门选择,也是许多人放弃 VM 的原因。

什么是容器管理?

该图显示了在云中用作多个容器的复制服务器。

尽管容器在功能上与 VM 相似,但它们的用途各不相同。 作为临时计算机存在的容器具有独特的生命周期。 它的状态会经历挂起、运行和终止三个阶段。 这种生命周期使容器具有更好的可支配性,它会影响开发人员和 IT 运营人员对大型互连应用程序管理的看法。 容器管理涉及部署、升级、监视和删除容器。

例如,假设你发现在中午网站流量更大,因此需要更多的网站缓存服务实例来管理性能。 你打算通过添加更多缓存服务容器来解决此问题。

现在,是时候部署新版缓存服务了。 如何更新所有容器? 如何删除所有旧版本?

由于此类负载均衡问题,需要通过一个系统来管理容器部署。

什么是 Kubernetes?

Kubernetes 是一种可移植且可扩展的开放源代码平台,可用于自动进行部署、缩放和管理容器化的工作负载。 Kubernetes 抽象化复杂的容器管理,为我们提供一个声明式配置,以便协调不同的计算环境中的容器。 与平台即服务 (PaaS) 和基础结构即服务 (IaaS) 产品/服务相比,此业务流程平台提供了相同的易用性和灵活性。

该图显示了在 Kubernetes 群集中用作多个容器的复制服务器。

借助 Kubernetes,你可以将数据中心视为一台大型计算机。 无需担心部署容器的方式和位置,只需按需部署和缩放应用程序。

以下是有关 Kubernetes 的一些其他需要注意的方面:

  • Kubernetes 不是完整的 PaaS 产品/服务。 它在容器级别运行,并且仅提供一组常用 PaaS 功能。

  • Kubernetes 不是一个整体。 它不是安装的单个应用程序。 部署、缩放、负载均衡、日志记录和监视等方面都是可选的。

  • Kubernetes 不限制可运行的应用程序类型。 如果应用程序可以在容器中运行,则它也可以在 Kubernetes 上运行。

  • 开发人员需要了解微服务体系结构之类的概念,以便充分利用容器解决方案。

  • Kubernetes 不提供中间件、数据处理框架、数据库、缓存和群集存储系统。 所有这些项都作为容器或其他服务产品的一部分运行。

  • Kubernetes 部署配置为群集。 群集由至少一个主计算机或控制平面以及一个或多个辅助角色计算机组成。 对于生产部署,首选配置是具有三到五个复制的控制平面计算机(称为节点或代理节点)的高可用性部署。

凭借 Kubernetes 带来的所有优势,你需要负责找到最符合需求的解决方案来解决这些方面的问题。 请记住,你要负责维护 Kubernetes 群集。 例如,你需要管理 OS 升级以及 Kubernetes 安装和升级。 你还要管理主机的硬件配置,例如网络、内存和存储。

注意

Kubernetes 有时缩写为“K8s”。 8 表示介于单词 K[ubernete]s 的 K 和 s 之间的 8 个字符。

什么是 Azure Kubernetes 服务 (AKS)?

该图显示了在 AKS Kubernetes 群集中用作多个容器的复制服务器。

AKS 管理托管的 Kubernetes 环境,使用户可以在 Azure 中轻松地部署和管理容器化应用程序。 AKS 环境启用了自动更新、自愈和轻松缩放等功能。 Azure 免费管理 Kubernetes 群集的控制平面。 由你管理群集中的代理节点,且只需为节点在其上运行的 VM 付费。

可以在 Azure 门户中或使用 Azure CLI 创建和管理群集。 创建群集时,可以使用资源管理器模板自动创建群集。 使用这些模板可以访问高级网络选项、Microsoft Entra 标识和资源监视等功能。 然后,可以设置触发器和事件,以便为多个方案自动完成群集部署。

通过 AKS,可以获得开源 Kubernetes 的优势,而不会增加只使用 Kubernetes 带来的复杂性或运营开销。