Azure Kubernetes Fleet Manager 自动部署(预览版)

本文概述了 Fleet Manager 的自动部署功能。 机群管理器自动部署简化了从 GitHub 存储库获取应用程序源代码并在车队中的一个或多个 AKS 群集中部署应用程序源代码的过程。 配置完成后,你所做的每个新提交都会运行管道,导致系统在舰队中部署应用程序的任何位置对应用程序进行更新。

重要

Azure Kubernetes 舰队管理器预览功能可以通过自助服务方式选择性启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 客户支持部门会尽力为 Azure Kubernetes 舰队管理器预览功能提供部分支持。 因此,这些功能并不适合用于生产。

先决条件

若要使用 Fleet Manager 自动部署,必须满足以下先决条件。

  • GitHub 帐户。
  • 一个要部署的应用程序。 应用程序已经可以容器化,或者自动部署可以根据存储库的内容对其进行容器化。
  • 一个 Azure Kubernetes 舰队管理器,带有一个中心群集以及一个或多个成员 AKS 群集。
  • Fleet Manager 中心群集上的 Kubernetes 命名空间。
  • 成员 AKS 群集授予 AcrPull 权限的 Azure 容器注册表(ACR)。

核心概念

机群管理器自动部署有助于执行以下活动:

  • 安全地将源 GitHub 存储库连接到 Fleet 中心群集,而无需作员处理凭据。 可以将多个存储库或分支连接到单个机群管理器。
  • 生成容器映像并发布到现有的 Azure 容器注册表(ACR),确保映像位于队列成员可以访问的已知注册表中。
  • 将资源清单暂存到舰队管理器中心群集上的现有命名空间中,使它们为群集资源放置 (CRP) 做好准备。

可以使用 Visual Studio Code 等编辑器修改生成的 GitHub Actions 工作流以满足你的需求。

现有资源要求

使用机群管理器自动部署时,必须已存在并配置这些资源。

  • 容器注册表 - 为了方便从 Azure 容器注册表提取映像,必须向注册表授予 AcrPull 成员 AKS 群集的权限。 在初始配置中,自动部署无法确定哪些成员群集可能会收到放置,因此无法自动设置未知群集的权限。 向注册表授予所有成员群集 AcrPull 权限可能是不可取的,因此,在群集上配置此权限的决定将委派给自动部署范围之外的授权用户。

  • Kubernetes 命名空间 - 虽然 Fleet Manager 的群集资源位置可用于部署群集范围的资源,但我们限制自动部署,只部署命名空间范围内的资源。 此限制通过专注于命名空间中的应用程序工作负载而不是更广泛的 Kubernetes 构造来简化部署的设置。

注释

我们在持续研发车队管理自动化部署过程中欢迎您的反馈。

例如:我们考虑添加进一步步骤,在初始设置时生成 CRP,以及 CRP 的自动执行。 现在可以将 CRP 添加到源存储库,并手动修改生成的 GitHub Action,以添加某个应用该放置的阶段。

如果想要就 Fleet Manager 自动部署的任何方面提供反馈和建议,请将其添加到 此功能的路线图项

GitHub OAuth 应用程序

向自动部署授予对 GitHub 存储库的访问权限后,会在 GitHub Authorized OAuth Apps 列表中找到一个名为 AKS Developer Hub的新应用程序。 这是 AKS 自动部署功能使用的相同应用程序。

单个群集支持

若要部署到单个 AKS 群集,可以使用不需要机群管理器的 AKS 的自动部署

后续步骤

了解 Fleet Manager 自动部署概念后,请参阅端到端示例,演示如何 使用 Fleet Manager 自动部署来驱动多群集资源放置