你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Flux v2 配置和 Azure Policy 以一致的方式大规模部署应用程序
可以使用 Azure Policy 大规模地对已启用 Azure Arc 的 Kubernetes 群集 (Microsoft.Kubernetes/connectedClusters
) 或 AKS (Microsoft.ContainerService/managedClusters
) 群集应用 Flux v2 配置(Microsoft.KubernetesConfiguration/fluxConfigurations
资源类型)。 若要使用 Azure Policy,请选择内置策略定义并创建策略分配。
在分配创建 Flux 配置的策略之前,必须确保 Flux 扩展部署到群集。 为此,可以首先分配一个策略,将扩展部署到选定范围(订阅或管理组中的所有资源组,或特定资源组)内的所有群集。 然后,在创建策略分配以部署配置时,可以为将应用于该范围内的群集的 Flux 配置设置参数。
为了实现关注点分离,可以创建多个策略分配,每个策略分配都有一个指向不同源的不同 Flux v2 配置。 例如,群集管理员可以使用一个 Git 存储库,应用程序团队可以使用其他存储库。
内置策略定义
以下内置策略定义为这些方案提供支持:
说明 | 策略 |
---|---|
Flux 扩展安装(所有方案都需要) | Configure installation of Flux extension on Kubernetes cluster |
使用公共 Git 存储库的 Flux 配置(通常是测试方案) | Configure Kubernetes clusters with Flux v2 configuration using public Git repository |
将专用 Git 存储库与 SSH 身份验证配合使用的 Flux 配置 | Configure Kubernetes clusters with Flux v2 configuration using Git repository and SSH secrets |
将专用 Git 存储库与 HTTPS 身份验证配合使用的 Flux 配置 | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS secrets |
将专用 Git 存储库与 HTTPS CA 证书身份验证配合使用的 Flux 配置 | Configure Kubernetes clusters with Flux v2 configuration using Git repository and HTTPS CA Certificate |
将专用 Git 存储库与本地 K8s 机密配合使用的 Flux 配置 | Configure Kubernetes clusters with Flux v2 configuration using Git repository and local secrets |
将专用 Bucket 源与 KeyVault 机密配合使用的 Flux 配置 | Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault |
将专用 Bucket 源与本地 K8s 机密配合使用的 Flux 配置 | Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets |
若要查找所有 Flux v2 策略定义,请搜索 flux。 有关详细信息,请参阅已启用 Azure Arc 的 Kubernetes 的 Azure Policy 内置定义。
先决条件
- 一个或多个已启用 Arc 的 Kubernetes 群集和/或 AKS 群集。
- 对将在其中创建策略分配的范围(订阅或资源组)拥有
Microsoft.Authorization/policyAssignments/write
权限。
创建策略分配以安装 Flux 扩展
为了使策略将 Flux v2 配置应用到群集,必须先在群集上安装 Flux 扩展。 为了确保将该扩展程序安装到你的每个群集,请将在 Kubernetes 群集上配置 Flux 扩展程序安装策略定义分配到所需的范围。
- 在 Azure 门户中,导航到“策略”。
- 在边栏的“创作”部分,选择“定义”。
- 在“Kubernetes”类别中,选择“在 Kubernetes 群集上配置 Flux 扩展安装”内置策略定义。
- 选择“分配”。
- 将“范围”设置为将应用策略分配的管理组、订阅或资源组。
- 如果要从策略分配范围中排除任何资源,请设置“排除”。
- 为策略分配指定易于识别的“分配名称”和“描述”。
- 确保“策略实施”设置为“已启用”。
- 依次选择“查看 + 创建”、“创建”。
创建策略分配以应用 Flux 配置
接下来,返回到“定义”列表(位于“策略”的“创作”部分),将配置策略定义应用到同一范围。
在“Kubernetes”类别中,选择“使用公共 Git 存储库通过 Flux v2 配置来配置 Kubernetes 群集”内置策略定义,或者其他策略定义之一以应用 Flux 配置。
选择分配。
将“范围”设置为分配第一个策略时选择的同一范围,包括任何排除项。
为策略分配指定易于识别的“分配名称”和“描述”。
确保“策略实施”设置为“已启用”。
选择“下一步”,然后再次选择“下一步”以打开“参数”选项卡。
设置要使用的参数值。
- 有关参数的详细信息,请参阅教程:部署 Flux v2 配置。
- 创建 Flux 配置时,必须为以下参数中的一个(且仅一个)提供值:
repositoryRefBranch
、repositoryRefTag
、repositoryRefSemver
、repositoryRefCommit
。
选择“下一步”以打开“修正”任务。
启用“创建修正任务”。
确认已选中“创建托管标识”,该标识将具有“参与者”权限。 有关详细信息,请参阅快速入门:创建策略分配以识别不合规的资源和使用 Azure Policy 修正不合规的资源。
依次选择“查看 + 创建”、“创建”。
然后,配置将应用于在策略分配范围内新建的已启用 Azure Arc 的 Kubernetes 群集或已创建的 AKS 群集。
对于现有群集,可能需要手动运行修正任务。 此任务通常需要 10 到 20 分钟,策略分配才能生效。
验证策略分配
在 Azure 门户中,导航到已启用 Azure Arc 的 Kubernetes 或 AKS 群集之一。
在边栏的“设置”部分中,选择“GitOps”。
在配置列表中,应会看到策略分配创建的配置。
在边栏的“Kubernetes 资源”部分,选择“命名空间”和“工作负载”。
应显示 Flux 配置创建的命名空间和项目。 还应看到群集上部署的 Git 存储库中的清单所描述的对象。
自定义策略
内置策略涵盖了在 Kubernetes 群集中将 GitOps 与 Flux v2 配合使用的主要方案。 但是,由于 Azure Policy 分配中允许的参数数量存在限制(最多 20 个),因此并非所有参数都存在于内置策略中。 此外,为了符合 20 个参数的限制,只能使用内置策略创建一个 kustomization。
如果你的方案与内置策略不同,则可以通过使用内置策略作为模板创建自定义策略来克服这些限制。 可以创建只包含所需参数的自定义策略,并对其余参数进行硬编码,因此可以绕过 20 个参数的限制。