你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Kubernetes 舰队管理器和成员群集

本文提供 Azure Kubernetes 舰队管理器(舰队)中的舰队、成员群集和中心群集的概念性概述。

什么是舰队?

舰队资源充当多个 AKS 群集的分组实体。 可使用它们将多个 AKS 群集作为单个实体进行管理、跨多个群集协调更新、跨多个群集传播 Kubernetes 资源,并提供单一管理窗格用来管理多个群集。 可以创建带有或没有中心群集的舰队。

舰队由以下部分组成:

此屏幕截图显示了舰队资源的示意图,包括中心群集代理和成员群集代理。

  • 舰队中心代理:一个 Kubernetes 控制器,用于创建和协调中心群集中所有与舰队相关的自定义资源 (CR)。
  • 舰队成员代理:一个 Kubernetes 控制器,用于创建和协调成员群集中所有与舰队相关的 CR。 此控制器从中心群集拉取最新的 CR,并一致地协调成员群集以匹配所需状态。

什么是成员群集?

MemberCluster 表示在中心群集中建立的群集范围的 API,充当舰队中群集的表示形式。 此 API 为多群集应用程序提供了一种可靠、统一和自动化的方法,用于识别舰队中已注册的群集。 它还有助于应用程序查询舰队管理的群集列表或观察群集状态以执行后续操作。

可以将 Azure Kubernetes 服务 (AKS) 群集作为成员群集加入舰队。 成员群集必须与舰队位于同一个 Microsoft Entra 租户中,但它们可在不同的区域、不同的资源组和/或不同的订阅中。

污点

成员群集支持适用于 MemberCluster 资源的污点规范。 每个污点对象包含以下字段:

  • key:污点的键。
  • value:污点的值。
  • effect:污点的效果,例如 NoSchedule

一旦 MemberCluster 被污染,它会让计划程序知道群集不应在从中心群集进行资源传播期间接收资源。 NoSchedule 效果是发送给计划程序的信号,用于避免将资源从 ClusterResourcePlacement 安排到 MemberCluster

有关详细信息,请参阅上游舰队文档

什么是中心群集(预览版)?

重要

Azure Kubernetes 舰队管理器预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 客户支持部门会尽力为 Azure Kubernetes 舰队管理器预览功能提供部分支持。 因此,这些功能并不适合用于生产。

某些舰队方案(例如更新运行)无需 Kubernetes API,因此无需中心群集。 可以在无中心群集的情况下为此类方案创建舰队。 在此模式下,舰队仅充当 Azure 资源管理器中的分组实体。

对于 Kubernetes 资源传播等其他方案,需要中心群集。 此中心群集是特殊的 AKS 群集,其生命周期(创建、升级、删除)由舰队资源管理。 提供给中心群集的任何 Kubernetes 对象仅作为配置存储在此群集上。 在此锁定的中心群集上禁用 Pod 创建。 因此,舰队不允许在中心群集上运行任何用户工作负载,而是只允许使用中心群集存储需要传播到其他群集或控制跨群集业务流程的配置。

下表列出了无中心群集的舰队与有中心群集的舰队之间的差异:

特征维度 无中心群集 有中心群集(预览版)
中心群集托管(预览版)
成员群集限制 最多 100 个群集 最多 20 个群集
在多个群集之间更新业务流程
Kubernetes 资源对象传播(预览版)
多群集 L4 负载均衡(预览版)

创建舰队后,中心群集会自动在舰队所在的同一订阅中创建,该订阅位于名为FL_*的托管资源组下。

为了提高可靠性,通过 Azure 拒绝分配拒绝任何用户对相应的 AKS 群集(在舰队管理的资源组FL_*下)及其基础 Azure 资源(例如,VM)(AKS 管理的资源组MC_FL_*下)发起的突变,以锁定中心群集。

中心群集不受 Azure 策略的豁免,以避免对中心群集产生不良策略影响。

计费

无中心群集的舰队资源目前免费。 如果舰队包含中心群集,则中心群集是在舰队订阅中创建的标准层 AKS 群集,由你付费。

常见问题

能否将无中心群集的舰队更改为有中心群集的舰队?

在中心群集预览版期间不可以。 根据计划,一旦中心群集正式发布,就支持此操作。

后续步骤