使用 Azure Policy 大规模应用 Flux v1 配置
可以使用 Azure Policy 大规模地对已启用 Azure Arc 的 Kubernetes 群集 (Microsoft.Kubernetes/connectedclusters
) 应用 Flux v1 配置(Microsoft.KubernetesConfiguration/sourceControlConfigurations
资源类型)。
重要
本文适用于带 Flux v1 的 GitOps。 现在可在已启用 Azure Arc 的 Kubernetes 和 Azure Kubernetes 服务 (AKS) 群集中使用 GitOps with Flux v2。 建议尽快迁移到 Flux v2。
自 2025 年 5 月 24 日起,将不再支持 2024 年 1 月 1 日之前创建的基于 Flux v1 的群集配置资源。 从 2024 年 1 月 1 日开始,你将无法创建新的基于 Flux v1 的群集配置资源。
若要使用 Azure Policy,请选择内置 GitOps 策略定义并创建策略分配。 创建策略分配时:
- 设置分配的范围。
- 范围将是订阅或管理组中的所有资源组或特定的资源组。
- 为将创建的 GitOps 配置设置参数。
创建分配后,Azure Policy 引擎会标识范围内所有已启用 Azure Arc 的 Kubernetes 群集,并将 GitOps 配置应用到每个群集。
为了实现关注点分离,可以创建多个策略分配,每个策略分配都有一个指向不同 Git 存储库的不同 GitOps 配置。 例如,群集管理员可能会使用一个存储库,而应用程序团队可能会使用其他存储库。
提示
我们针对这些方案提供了内置策略定义:
- 公用存储库或专用存储库,使用 Flux 创建的 SSH 密钥:
Configure Kubernetes clusters with specified GitOps configuration using no secrets
- 专用存储库,使用用户提供的 SSH 密钥:
Configure Kubernetes clusters with specified GitOps configuration using SSH secrets
- 专用存储库,使用用户提供的 HTTPS 密钥:
Configure Kubernetes clusters with specified GitOps configuration using HTTPS secrets
先决条件
验证你对要创建此策略分配的范围(订阅或资源组)具有 Microsoft.Authorization/policyAssignments/write
权限。
创建策略分配
- 在 Azure 门户中,导航到“策略”。
- 在边栏的“创作”部分,选择“定义”。
- 在“Kubernetes”类别中,选择“为 Kubernetes 群集配置指定的 GitOps 配置(不使用机密)”内置策略定义。
- 选择“分配”。
- 将“范围”设置为将应用策略分配的管理组、订阅或资源组。
- 如果要从策略分配范围中排除任何资源,请设置“排除”。
- 为策略分配指定易于识别的“名称”和“描述”。
- 确保“策略实施”设置为“已启用”。
- 选择下一步。
- 设置在创建
sourceControlConfigurations
资源时要使用的参数值。- 有关参数的详细信息,请参阅教程:部署 GitOps 配置。
- 选择下一步。
- 启用“创建修正任务”。
- 验证已选中“创建托管标识”,并确保标识具有“参与者”权限。
- 有关详细信息,请参阅创建策略分配快速入门和使用 Azure Policy 修正不符合条件的资源文章。
- 选择“查看 + 创建”。
创建策略分配后,配置将应用于在策略分配范围内新创建的已启用 Azure Arc 的 Kubernetes 群集。
对于现有群集,需要手动运行修正任务。 此任务通常需要 10 到 20 分钟,策略分配才能生效。
验证策略分配
- 在 Azure 门户中,导航到已启用 Azure Arc 的 Kubernetes 群集之一。
- 在边栏的“设置”部分中,选择“策略”。
- 在列表中,应会看到之前创建的策略分配,并且“符合性状态”应设为“符合”。
- 在边栏的“设置”部分中,选择“GitOps”。
- 在配置列表中,应会看到策略分配创建的配置。
- 在边栏的“Kubernetes 资源”部分,选择“命名空间”和“工作负载”。
- 应显示 Flux 配置创建的命名空间和项目。
- 应看到群集上部署的 Git 存储库中的清单所描述的对象。