使用 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 延伸模組的安裝] 原則定義指派給所需的範圍。
- 在Azure 入口網站中,瀏覽至 [原則]。
- 在資訊看板的 [編寫] 區段中,選取 [定義]。
- 在 [Kubernetes] 類別中,選取 [在 Kubernetes 叢集上設定 Flux 延伸模組的安裝] 內建原則定義。
- 選取指派。
- 將 [範圍] 設定為要套用原則指派的管理群組、訂用帳戶或資源群組。
- 如果您想要從原則範圍中排除任何資源,則設定 [排除]。
- 為原則指派提供容易識別的 [指派名稱] 和 [描述]。
- 確定已將 [原則強制執行] 設定為 [已啟用]。
- 選取 [檢閱 + 建立],然後選取 [建立]。
建立原則指派以套用 Flux 組態
接下來,返回 [定義] 清單 (在 [原則] 的 [撰寫] 區段中),將設定原則定義套用至相同的範圍。
在 [Kubernetes] 類別中,選取 [使用公用 Git 存放庫設定具有 Kubernetes v2 組態的 Kubernetes 叢集] 內建原則定義,或選取其他原則定義之一以套用 Flux 組態。
選取指派。
將 [範圍] 設定為您在指派第一個原則時選取的相同範圍,包括任何排除項目。
為原則指派提供容易識別的 [指派名稱] 和 [描述]。
確定已將 [原則強制執行] 設定為 [已啟用]。
選取 [下一步],然後再次選取 [下一步] 以開啟 [參數] 索引標籤。
設定要使用的參數值。
- 如需參數的詳細資訊,請參閱<部署 Flux v2 設定的教學課程>。
- 建立 Flux 組態時,您必須提供其中一個 (而且只有一個) 參數的值:
repositoryRefBranch
、repositoryRefTag
、repositoryRefSemver
、repositoryRefCommit
。
選取 [下一步] 以開啟 [補救] 工作。
啟用 [建立補救工作]。
確認已核取 [建立受控識別],而且該身分識別具有 [參與者] 權限。 如需詳細資訊,請參閱快速入門:建立原則指派以識別不符合規範的資源和使用 Azure 原則補救不符合規範的資源。
選取 [檢閱 + 建立],然後選取 [建立]。
組態會接著套用至原則指派範圍內建立的新已啟用 Azure Arc 的 Kubernetes 或 AKS 叢集。
針對現有叢集,您必須手動執行補救工作。 這項工作通常需要 10 至 20 分鐘的時間,原則指派才會生效。
驗證原則指派
在Azure 入口網站中,瀏覽至其中一個已啟用 Azure Arc 的 Kubernetes 或 AKS 叢集。
在資訊看板的 [設定] 區段中,選取 [GitOps]。
在設定清單中,您應該會看到原則指派所建立的設定。
在資訊看板的 [Kubernetes 資源] 區段中,選取 [命名空間] 和 [工作負載]。
您應該會看到 Flux 設定所建立的命名空間和成品。 您也應該會在叢集上部署的 Git 存放庫中看到資訊清單所描述的物件。
自訂原則
內建原則涵蓋在 Kubernetes 叢集中搭配 Flux v2 使用 GitOps 的主要案例。 不過,由於 Azure 原則指派中允許的參數數目限制 (上限為 20),並非所有參數都存在於內建原則中。 此外,為了符合 20 個參數的限制,只能使用內建原則建立單一 Kustomization。
如果您有與內建原則不同的案例,您可以使用內建原則作為範本來建立 自訂原則來克服這些限制。 您可以建立只包含所需參數的自訂原則,並將其餘部分硬式編碼,因此可解決 20 個參數的限制。