使用 GitOps 配置已启用 Azure Arc 的 Kubernetes 群集

已完成

Azure Arc 的一个主要优势是促进实现 DevOps 原则,将已确立的开发实践应用于操作。 DevOps 可提高敏捷性,且不会影响 IT 环境的稳定性。

已启用 Azure Arc 的 Kubernetes 支持 GitOps,这是一种通过减少手动部署工作量来简化应用程序发布过程的 DevOps 做法。

通过本单元,你将了解 GitOps 以及如何为已启用 Azure Arc 的 Kubernetes 群集配置它。

适用于已启用 Arc 的 Kubernetes 的 GitOps

借助 GitOps,可以更轻松地在整个组织中标准化 Kubernetes 配置,包括已启用 Arc 的 Kubernetes。 存储库或其他文件源承载表示资源预期状态的配置文件。 例如,基线配置可能包括委派模型、监视和日志记录设置以及群集范围服务的特征。

在 Kubernetes 群集上运行的代理监视存储库的状态。 发生配置更改时,代理会将更新的文件拉取到群集并应用新配置,确保群集保持所需状态。

已启用 Azure Arc 的 Kubernetes 群集依赖于 Flux,Flux 是一种常用的开源 GitOps 部署操作程序,可自动将配置部署到群集。 Flux 支持常见的文件源(如 Git 存储库、Helm 存储库和 Bucket),并支持 YAML、Helm 和 Kustomize 配置模板类型。

下图显示了使用 Flux 部署群集配置和应用程序更新的 GitOps 流程。

Diagram of the GitOps flow showing an application update.

配置 GitOps

GitOps 将已启用 Arc 的 Kubernetes 群集与一个或多个文件源(例如 Git 存储库)相关联。 每个存储库都可以包含任何有效 Kubernetes 资源(如命名空间或清单文件形式的部署)的配置。

下图中显示了将基于 GitOps 的配置应用到多个已启用 Azure Arc 的群集的过程。

Diagram showing the process of applying GitOps-based configuration to multiple Azure Arc-enabled clusters.

GitOps 在 Kubernetes 群集中作为 Microsoft.KubernetesConfiguration/extensions/microsoft.flux 群集扩展资源启用。 要创建 microsoft.flux 就需要在群集中安装 fluxConfigurations 扩展。 当在群集中创建第一个 Microsoft.KubernetesConfiguration/fluxConfigurations 实例时,将自动安装该扩展。 也可以在创建配置之前手动安装该扩展。

已启用 Azure Arc 的 Kubernetes 群集配置与相应的 GitOps 存储库之间的每个关联都位于 Azure 中,并作为已启用 Azure Arc 的 Kubernetes 群集 Azure 资源的一部分而存在。 可使用 Azure 管理接口(如 Azure 门户或 Azure CLI)配置该关联。

通过执行以下概要步骤,实现将 GitOps 与已启用 Azure Arc 的 Kubernetes 群集结合使用。

  1. 使用 k8s-configuration Azure CLI 扩展应用 Flux 配置并在已启用 Arc 的 Kubernetes 群集中启用 GitOps。
  2. 验证配置以确认成功创建。 配置资源将更新,将包含符合性状态、消息和调试信息。

应用配置后,可使用 Azure 门户查看合规性详细信息。 还可以使用 Azure 门户创建、更新和删除 GitOps 配置。

使用 Azure Policy 自动进行配置

可以使用 Azure Policy 自动执行配置过程,这样便可以一致且大规模地应用它。 在分配策略以配置群集之前,必须确保已在群集上创建 Flux 扩展。 为此,可以首先分配“在 Kubernetes 群集上配置 Flux 扩展的安装”策略定义,以确保已安装扩展。

在 Azure 门户中创建 Azure Policy 分配包括以下概要步骤:

  1. 在 Azure 门户中,通过搜索并选择“策略”,然后选择“策略”页左侧菜单中的“定义”来查看所有策略定义。
  2. 搜索“使用指定的 GitOps 配置来配置 Kubernetes 群集”,然后选择一个内置策略定义。
  3. 选择“分配”,并通过指定范围、参数和修正的设置来创建策略分配。
  4. 选择“查看 + 创建”,然后选择“创建”。

策略分配会自动为在分配范围内创建的每个已启用 Azure Arc 的 Kubernetes 群集启用 GitOps。 对于现有群集,需要手动运行修正任务。

你将在下一单元中详细了解 Azure Policy。