使用 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,这是一种常用的开源 GitOps 部署作员,可自动将配置部署自动化到群集。 Flux 支持常见的文件源,如 Git 存储库、Helm 存储库和存储桶,并支持 YAML、Helm 和 Kustomize 配置模板类型。
下图显示了使用 Flux 部署群集配置和应用程序更新的 GitOps 流。
配置 GitOps
GitOps 将已启用 Arc 的 Kubernetes 群集与一个或多个文件源(例如 Git 存储库)相关联。 每个存储库可以包含任何有效的 Kubernetes 资源的配置,例如命名空间或部署(以清单文件的形式)。
下图显示了将基于 GitOps 的配置应用到多个已启用 Azure Arc 的群集的过程。
GitOps 在 Kubernetes 群集 Microsoft.KubernetesConfiguration/extensions/microsoft.flux
中作为群集扩展资源启用。 若要创建 fluxConfigurations
,必须在 microsoft.flux
群集中安装扩展。 在群集中创建第一个 Microsoft.KubernetesConfiguration/fluxConfigurations
实例时,扩展会自动安装。 也可以在创建配置之前手动安装扩展。
已启用 Azure Arc 的 Kubernetes 群集配置与其相应的 GitOps 存储库之间的每个关联都驻留在 Azure 中,作为已启用 Azure Arc 的 Kubernetes 群集 Azure 资源的一部分。 可以使用 Azure 管理接口(例如 Azure 门户或 Azure CLI)配置关联。
使用以下高级步骤通过已启用 Azure Arc 的 Kubernetes 群集实现 GitOps。
- 使用
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 的详细信息。