将 Kubernetes 资源从中心群集传播到成员群集(预览版)

重要

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

平台管理员通常需要将 Kubernetes 资源部署到多个群集,例如:

  • 角色和角色绑定,用于管理谁可以访问哪些内容。
  • 需要位于所有群集上的基础结构应用程序,例如 Prometheus、Flux。

应用程序开发人员通常需要将 Kubernetes 资源部署到多个群集,例如:

  • 将视频服务应用程序部署到多个群集(每个区域一个),以获得低延迟观看体验。
  • 将购物车应用程序部署到两个配对区域,以便客户能够在单个区域中断期间继续购物。
  • 将批处理计算应用程序部署到具有廉价现成节点池的群集。

在数十个甚至数百个群集中创建和更新这些 Kubernetes 资源,并在每个群集中跟踪其当前状态非常繁琐。 Azure Kubernetes 舰队管理器 (Fleet) 提供 Kubernetes 资源传播,以大规模管理 Kubernetes 资源。

可以在中心群集中创建 Kubernetes 资源,并通过 Kubernetes 客户资源将其传播到所选成员群集:MemberClusterClusterResourcePlacement。 Fleet 基于开源云原生多群集解决方案为这些自定义资源提供支持。

什么是 MemberCluster

在将群集加入舰队后,会在中心群集上创建相应的 MemberCluster 自定义资源。 可以使用它选择资源传播中的目标群集。

以下标签将自动添加到所有成员群集中,从而可以用于资源传播中的目标群集选择。

  • fleet.azure.com/location
  • fleet.azure.com/resource-group
  • fleet.azure.com/subscription-id

可在MemberCluster此处找到 API 参考。

什么是 ClusterResourcePlacement

舰队提供 ClusterResourcePlacement 机制,用于控制如何将群集范围的 Kubernetes 资源传播到成员群集。

通过 ClusterResourcePlacement,可以:

  • 选择要传播到成员群集的群集范围的 Kubernetes 资源
  • 指定放置策略,以便手动或自动选择部分或所有成员群集作为目标群集
  • 指定推出策略,以便安全地将所选 Kubernetes 资源的任何更新推出到多个目标群集
  • 查看向每个目标群集的传播进度

为了传播命名空间范围的资源,可以选择一个命名空间,默认情况下,选择该命名空间以及其下的所有命名空间范围的资源。

下图显示了一个示例 ClusterResourcePlacement显示 Kubernetes 资源如何传播到成员群集的示意图。

可在ClusterResourcePlacement此处找到 API 参考。

后续步骤