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

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

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

什么是舰队?

舰队资源充当 Kubernetes 群集的分组实体。 可以使用它们将多个群集作为单个实体进行管理、跨多个群集协调更新、跨多个群集传播 Kubernetes 资源,并提供用于管理多个群集的单一管理窗格。 可以创建带有或没有中心群集的舰队。 若要了解作为成员支持的 Kubernetes 群集类型,请参阅 Azure Kubernetes Fleet Manager 成员群集类型

车队是使用 KubeFleet 实现的,这是一个开源项目,为 Kubernetes 群集提供多群集管理功能。 KubeFleet 是一个NCF 沙盒项目。

舰队由以下部分组成:

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

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

什么是中心群集?

在 Azure Kubernetes 舰队管理器中,中心群集在管理多个成员群集中起着至关重要的作用,但它们是可选的。

中心群集有助于跨成员群集协调更新和资源管理。 但是,可以创建没有中心群集的舰队。 这种灵活性使你可以将群集作为单个实体进行管理,而无需专用中心。 这更适合更简单的设置或特定用例。

什么是成员群集?

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

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

重要

机队的功能因成员群集类型而异。 阅读 Azure Kubernetes Fleet Manager 成员群集类型 以了解详细信息。

标签

成员集群可关联服务定义标签和用户定义标签,这些标签可用于筛选集群以制定工作负载部署调度决策。 在定义 ClusterResourcePlacement 时,可以使用标签选择器,根据成员集群的标签来定位特定集群。 这可让你将工作负载仅部署到符合特定条件的集群上,例如区域、环境、团队或其他自定义属性。

默认情况下,舰队会在每个成员群集上填充这些服务定义的标签

应使用 Azure CLI 或 REST API 修改成员标签。 无法直接在中心群集中的 MemberCluster 资源上修改它们。

污点

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

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

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

有关详细信息,请参阅 KubeFleet 组件文档

Next steps