使用 Flux v2 組態和 Azure 原則,以一致的方式大規模部署應用程式

您可以使用 Azure 原則,在已啟用 Azure Arc 的 Kubernetes (Microsoft.Kubernetes/connectedClusters) 或 AKS (Microsoft.ContainerService/managedClusters) 叢集上大規模套用 Flux v2 (Microsoft.KubernetesConfiguration/fluxConfigurations 設定)。 若要使用 Azure 原則,您可選取內建的原則定義,並建立原則指派。

在您指派可建立 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
使用私人貯體來源和 KeyVault 祕密的 Flux 組態 Configure Kubernetes clusters with Flux v2 configuration using Bucket source and secrets in KeyVault
使用私人貯體來源和本機 K8s 祕密的 Flux 組態 Configure Kubernetes clusters with specified Flux v2 Bucket source using local secrets

若要尋找所有 Flux v2 原則定義,請搜尋 flux。 如需詳細資訊,請參閱已啟用 Azure Arc 的 Kubernetes 的 Azure 原則內建定義

必要條件

  • 一或多個已啟用 Arc 的 Kubernetes 叢集和/或 AKS 叢集。
  • 您將建立原則指派的範圍 (訂用帳戶或資源群組) 上的 Microsoft.Authorization/policyAssignments/write 權限。

建立原則指派以安裝 Flux 延伸模組

為了讓原則將 Flux v2 組態套用至叢集,Flux 延伸模組必須先安裝在叢集上。 若要確保延伸模組已安裝至每個叢集,請將 [在 Kubernetes 叢集上設定 Flux 延伸模組的安裝] 原則定義指派給所需的範圍。

  1. 在Azure 入口網站中,瀏覽至 [原則]
  2. 在資訊看板的 [編寫] 區段中,選取 [定義]
  3. 在 [Kubernetes] 類別中,選取 [在 Kubernetes 叢集上設定 Flux 延伸模組的安裝] 內建原則定義。
  4. 選取指派
  5. 將 [範圍] 設定為要套用原則指派的管理群組、訂用帳戶或資源群組。
    • 如果您想要從原則範圍中排除任何資源,則設定 [排除]
  6. 為原則指派提供容易識別的 [指派名稱] 和 [描述]
  7. 確定已將 [原則強制執行] 設定為 [已啟用]
  8. 選取 [檢閱 + 建立],然後選取 [建立]

建立原則指派以套用 Flux 組態

接下來,返回 [定義] 清單 (在 [原則] 的 [撰寫] 區段中),將設定原則定義套用至相同的範圍。

  1. 在 [Kubernetes] 類別中,選取 [使用公用 Git 存放庫設定具有 Kubernetes v2 組態的 Kubernetes 叢集] 內建原則定義,或選取其他原則定義之一以套用 Flux 組態。

  2. 選取指派

  3. 將 [範圍] 設定為您在指派第一個原則時選取的相同範圍,包括任何排除項目。

  4. 為原則指派提供容易識別的 [指派名稱] 和 [描述]

  5. 確定已將 [原則強制執行] 設定為 [已啟用]

  6. 選取 [下一步],然後再次選取 [下一步] 以開啟 [參數] 索引標籤。

  7. 設定要使用的參數值。

    • 如需參數的詳細資訊,請參閱<部署 Flux v2 設定的教學課程>。
    • 建立 Flux 組態時,您必須提供其中一個 (而且只有一個) 參數的值:repositoryRefBranchrepositoryRefTagrepositoryRefSemverrepositoryRefCommit
  8. 選取 [下一步] 以開啟 [補救] 工作。

  9. 啟用 [建立補救工作]

  10. 確認已核取 [建立受控識別],而且該身分識別具有 [參與者] 權限。 如需詳細資訊,請參閱快速入門:建立原則指派以識別不符合規範的資源使用 Azure 原則補救不符合規範的資源

  11. 選取 [檢閱 + 建立],然後選取 [建立]

組態會接著套用至原則指派範圍內建立的新已啟用 Azure Arc 的 Kubernetes 或 AKS 叢集。

針對現有叢集,您必須手動執行補救工作。 這項工作通常需要 10 至 20 分鐘的時間,原則指派才會生效。

驗證原則指派

  1. 在Azure 入口網站中,瀏覽至其中一個已啟用 Azure Arc 的 Kubernetes 或 AKS 叢集。

  2. 在資訊看板的 [設定] 區段中,選取 [GitOps]

    在設定清單中,您應該會看到原則指派所建立的設定。

  3. 在資訊看板的 [Kubernetes 資源] 區段中,選取 [命名空間] 和 [工作負載]

    您應該會看到 Flux 設定所建立的命名空間和成品。 您也應該會在叢集上部署的 Git 存放庫中看到資訊清單所描述的物件。

自訂原則

內建原則涵蓋在 Kubernetes 叢集中搭配 Flux v2 使用 GitOps 的主要案例。 不過,由於 Azure 原則指派中允許的參數數目限制 (上限為 20),並非所有參數都存在於內建原則中。 此外,為了符合 20 個參數的限制,只能使用內建原則建立單一 Kustomization。

如果您有與內建原則不同的案例,您可以使用內建原則作為範本來建立 自訂原則來克服這些限制。 您可以建立只包含所需參數的自訂原則,並將其餘部分硬式編碼,因此可解決 20 個參數的限制。

下一步