Azure Kubernetes 服务 (AKS) 的核心概念

本文介绍 Azure Kubernetes 服务 (AKS) 的核心概念,这是一种托管的 Kubernetes 服务,可用于在 Azure 上大规模部署和操作容器化应用程序。

什么是 Kubernetes?

Kubernetes 是一个可以自动部署、缩放和管理容器化应用程序的开源容器业务流程平台。 有关详细信息,请参阅官方 Kubernetes 文档

什么是 AKS?

AKS 是一种托管的 Kubernetes 服务,可以简化使用 Kubernetes 的容器化应用程序的部署、管理和扩展。 有关详细信息,请参阅 什么是 Azure Kubernetes 服务(AKS)?

群集组件

AKS 群集分为两个主要组件:

  • 控制平面:控制平面提供 Kubernetes 核心服务和应用程序工作负载的业务流程
  • 节点:节点是运行应用程序的基础虚拟机 (VM)。

显示 Kubernetes 控制平面和节点组件的屏幕截图。

备注

AKS 托管组件具有标签 kubernetes.azure.com/managedbyaks

AKS 使用 aks-managed 前缀管理 Helm 发布。 持续增加这些版本的修订和安全。

控制面板

Azure 托管控制平面由多个可管理群集的组件组成:

组件 说明
kube-apiserver API 服务器 (kube-apiserver) 公开了 Kubernetes API,以便从群集内外启用对群集的请求。
etcd 高可用性键值存储 etcd 有助于维护 Kubernetes 群集和配置的状态。
kube-scheduler 计划程序(kube-scheduler)有助于制定计划决策。 它监视尚未分配节点的新 Pod,并选择一个节点来运行这些 Pod。
kube-controller-manager 控制器管理器 (kube-controller-manager) 运行控制器进程,例如在节点发生故障时进行通知和响应。
cloud-controller-manager 云控制器管理器 (cloud-controller-manager) 嵌入特定于云的控制逻辑,以运行特定于云提供商的控制器。

节点

每个 AKS 群集至少有一个节点,即运行 Kubernetes 节点组件的 Azure VM。 以下组件在每个节点上运行:

组件 说明
kubelet kubelet 可确保容器在 Pod 中运行。
kube-proxy kube-proxy 是一个网络代理,用于维护节点上的网络规则。
container runtime 容器运行时管理容器的执行和生命周期。

显示 Azure 虚拟机和用于 Kubernetes 节点的相关资源的屏幕截图。

节点配置

为节点配置以下设置。

VM 大小和映像

节点的 Azure VM 大小 定义 CPU、内存、大小和可用的存储类型,例如高性能固态硬盘或常规硬盘。 选择的 VM 大小取决于工作负荷要求和计划在每个节点上运行的 Pod 数。 从 2025 年 5 月开始,如果参数在部署过程中留空,则 AKS 将根据可用容量和配额动态选择默认 VM SKU 和大小。 有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 中支持的 VM 大小

在 AKS 中,群集节点的 VM 映像基于 Ubuntu Linux、Azure Linux 或 Windows Server 2022。 创建 AKS 群集或横向扩展节点数时,Azure 平台会自动创建和配置所请求数量的 VM。 代理节点按标准 VM 计费。 包括 Azure 预留 在内的任何 VM 大小折扣将自动应用。

OS 磁盘

只有未指定默认操作系统磁盘大小时,才会在新群集或节点池上使用默认操作系统磁盘大小调整。 此行为适用于托管和临时 OS 磁盘。 有关详细信息,请参阅默认 OS 磁盘大小调整

资源预留

AKS 使用节点资源来帮助节点作为群集的一部分运行。 这种用法可能会造成节点的资源总数和 AKS 中可分配的资源数之间存在差异。 为了维护节点性能和功能,AKS 在每个节点上预留两种类型的资源(CPU 和内存)。 有关详细信息,请参阅 AKS 中的资源预留

操作系统

AKS 支持 Ubuntu 22.04 和 Azure Linux 2.0 作为 Linux 节点池的节点操作系统。 对于 Windows 节点池,AKS 支持将 Windows Server 2022 作为默认操作系统。 Windows Server 2019 将在 Kubernetes 版本 1.32 生命周期结束后停用,并且在将来的版本中不再受支持。 如果需要升级 Windows 操作系统版本,请参阅从 Windows Server 2019 升级到 Windows Server 2022

容器运行时

容器运行时是在节点上执行容器和管理容器映像的软件。 运行时可帮助抽象化系统调用或特定于 OS 的功能,以在 Linux 或 Windows 上运行容器。 对于 Linux 节点池, 容器 用于 Kubernetes 版本 1.19 及更高版本。 对于 Windows Server 2019 和 2022 节点池, 容器 已正式发布,是 Kubernetes 版本 1.23 及更高版本上唯一的运行时选项。

Pod

Pod 是由一个或多个容器构成的组,这些容器共享相同的网络和存储资源,以及有关如何运行容器的规范。 Pod 通常与容器进行 1:1 的映射,但可以在 Pod 中运行多个容器。

节点池

在 AKS 中,具有相同配置的节点将组合成节点池。 这些节点池包含运行应用程序的基础虚拟机规模集和虚拟机 (VM)。

创建 AKS 群集时,定义初始节点数及其大小(版本),这将创建 系统节点池。 系统节点池主要用于托管关键系统 Pod(例如 CoreDNS 和 konnectivity)。

要支持具有不同计算或存储需求的应用程序,可以创建用户节点池。 用户节点池主要用于托管应用程序 Pod。

有关详细信息,请参阅在 AKS 中创建节点池管理 AKS 中的节点池

节点资源组

在 Azure 资源组中创建 AKS 群集时,AKS 资源提供程序会自动创建名为“节点资源组”的第二个资源组。 此资源组包含与群集关联的所有基础结构资源,包括 VM、虚拟机规模集和存储。

有关更多信息,请参见以下资源:

命名空间

Kubernetes 资源(如 Pod 和部署)按逻辑合并到一个命名空间中,以划分 AKS 群集并创建、查看资源或管理对资源的访问。

AKS 群集中将默认创建以下命名空间:

命名空间 说明
default 使用默认命名空间,无需创建新的命名空间,即可开始使用群集资源。
kube-node-lease kube-node-lease 命名空间允许节点将其可用性传送给控制平面。
kube-public kube-public 命名空间通常不使用,但你可以使用它,以便任何用户在整个群集中可见资源。
kube-system Kubernetes 使用 kube-system 命名空间来管理群集资源,例如 corednskonnectivity-agentmetrics-server

显示 Kubernetes 命名空间以逻辑方式划分资源和应用程序的屏幕截图。

群集模式

在 AKS 中,可以使用自动(预览)或标准模式创建群集。 AKS Automatic 提供更完全托管的体验。 可以管理群集配置,包括节点、缩放、安全性和其他预配置设置。 AKS 标准版可更好地控制群集配置,包括管理节点池、缩放和其他设置的功能。

有关详细信息,请参阅 AKS 自动版和标准版功能比较

定价层

AKS 为群集管理提供三个定价层:免费、标准和高级。 选择的定价层确定可用于管理群集的功能。

有关详细信息,请参阅AKS 群集管理的定价层

支持的 Kubernetes 版本

有关详细信息,请参阅 AKS 支持的 Kubernetes 版本

有关 AKS 的更多核心概念的信息,请参阅以下资源: