分享方式:


已啟用 Azure Arc 的 Kubernetes 的 GitOps Flux v1 設定

重要

本節中的文件適用於具有 Flux v1 的 GitOps。 已啟用 Azure Arc 的 Kubernetes 和 Azure Kubernetes Service (AKS) 叢集現在可以使用具有 Flux v2 的 GitOps;了解使用 Flux v2 的 GitOps。 建議您儘快移轉至 Flux v2

在 2024 年 1 月 1 日之前建立的 Flux v1 型叢集設定資源支援,將於 2025 年 5 月 24 日結束。 從 2024 年 1 月 1 日起,您將無法建立新的 Flux v1 型叢集設定資源。

相對於 Kubernetes,GitOps 是在 Git 存放庫中宣告 Kubernetes 叢集設定 (部署、命名空間等) 所需狀態的做法。 此宣告後面會接著使用操作員對這些叢集設定進行輪詢和提取式部署。 Git 存放庫可以包含:

  • YAML 格式的資訊清單,描述任何有效的 Kubernetes 資源,包括 Namespaces、ConfigMaps、Deployments、DaemonSets 等等。
  • 用於部署應用程式的 Helm 圖表。

Flux 是 GitOps 空間中熱門的開放原始碼工具,可以在 Kubernetes 叢集上部署,以簡化從 Git 存放庫到 Kubernetes 叢集的設定流程。 Flux 支援在叢集和命名空間範圍部署其操作員。 以命名空間範圍部署的 flux 操作員,只能在該特定命名空間內部署 Kubernetes 物件。 在叢集或命名空間範圍之間選擇的能力,可協助您在相同 Kubernetes 叢集上達成多租用戶部署模式。

設定

叢集與 Git 存放庫之間的連線會在 Azure Resource Manager 中已啟用 Azure Arc 的 Kubernetes 資源上 (以 Microsoft.Kubernetes/connectedClusters 表示) 建立為設定資源 (Microsoft.KubernetesConfiguration/sourceControlConfigurations)。

設定資源屬性可用來使用適當的參數在叢集上部署 Flux 操作員,例如要從中提取資訊清單的 Git 存放庫,以及提取資訊清單的輪詢間隔。 設定資源資料會以待用加密方式儲存在 Azure Cosmos DB 資料庫中,以確保資料機密性。

叢集中執行的 config-agent 會負責:

  • 在已啟用 Azure Arc 的 Kubernetes 資源上追蹤新的或更新的設定資源。
  • 部署 Flux 操作員以監看每個設定資源的 Git 存放庫。
  • 套用對任何設定資源所做的任何更新。

您可以在已啟用 Azure Arc 的 Kubernetes 叢集上建立多個命名空間範圍的設定資源,以達成多租用戶。

注意

  • config-agent 會監視可在已啟用 Azure Arc 的 Kubernetes 資源上使用的新的或更新設定資源。 因此,代理程式需要連線能力,才能將所需的狀態提取至叢集。 如果代理程式無法連線至 Azure,則將所需的狀態傳播至叢集會發生延遲。
  • 敏感性客戶輸入,例如私密金鑰、已知主機內容、HTTPS 使用者名稱和權杖/密碼,不會在已啟用 Azure Arc 的 Kubernetes 服務中儲存超過 48 小時。 如果您對設定使用敏感性輸入,請盡可能定期讓叢集上線。

大規模套用設定

由於 Azure Resource Manager 會管理您的設定,您可以使用 Azure 原則,在訂用帳戶或資源群組的範圍內,跨所有 Azure 已啟用 Azure Arc 的 Kubernetes 資源自動建立相同的設定。

此大規模強制執行可確保一般基準設定 (包含 ClusterRoleBindings、RoleBindings 和 NetworkPolicy 等設定) 可以套用到已啟用 Azure Arc 的 Kubernetes 叢集的整個機群或詳細目錄。

重要

本節中的文件適用於具有 Flux v1 的 GitOps。 已啟用 Azure Arc 的 Kubernetes 和 Azure Kubernetes Service (AKS) 叢集現在可以使用具有 Flux v2 的 GitOps;了解使用 Flux v2 的 GitOps。 建議您儘快移轉至 Flux v2

在 2024 年 1 月 1 日之前建立的 Flux v1 型叢集設定資源支援,將於 2025 年 5 月 24 日結束。 從 2024 年 1 月 1 日起,您將無法建立新的 Flux v1 型叢集設定資源。

下一步