使用 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 流程。
配置 GitOps
GitOps 将已启用 Arc 的 Kubernetes 群集与一个或多个文件源(例如 Git 存储库)相关联。 每个存储库都可以包含任何有效 Kubernetes 资源(如命名空间或清单文件形式的部署)的配置。
下图中显示了将基于 GitOps 的配置应用到多个已启用 Azure Arc 的群集的过程。
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 群集结合使用。
- 使用
k8s-configuration
Azure CLI 扩展应用 Flux 配置并在已启用 Arc 的 Kubernetes 群集中启用 GitOps。 - 验证配置以确认成功创建。 配置资源将更新,将包含符合性状态、消息和调试信息。
应用配置后,可使用 Azure 门户查看合规性详细信息。 还可以使用 Azure 门户创建、更新和删除 GitOps 配置。
使用 Azure Policy 自动进行配置
可以使用 Azure Policy 自动执行配置过程,这样便可以一致且大规模地应用它。 在分配策略以配置群集之前,必须确保已在群集上创建 Flux 扩展。 为此,可以首先分配“在 Kubernetes 群集上配置 Flux 扩展的安装”策略定义,以确保已安装扩展。
在 Azure 门户中创建 Azure Policy 分配包括以下概要步骤:
- 在 Azure 门户中,通过搜索并选择“策略”,然后选择“策略”页左侧菜单中的“定义”来查看所有策略定义。
- 搜索“使用指定的 GitOps 配置来配置 Kubernetes 群集”,然后选择一个内置策略定义。
- 选择“分配”,并通过指定范围、参数和修正的设置来创建策略分配。
- 选择“查看 + 创建”,然后选择“创建”。
策略分配会自动为在分配范围内创建的每个已启用 Azure Arc 的 Kubernetes 群集启用 GitOps。 对于现有群集,需要手动运行修正任务。
你将在下一单元中详细了解 Azure Policy。