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 構成で別々のソースを参照するようにします。 たとえば、1 つの 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 Policy の Azure Arc 対応 Kubernetes 組み込み定義」をご覧ください。

前提条件

  • 1 つ以上の Arc 対応 Kubernetes クラスターまたは AKS クラスターまたはその両方。
  • ポリシー割り当てを作成するスコープ (サブスクリプションまたはリソース グループ) に対する Microsoft.Authorization/policyAssignments/write アクセス許可。

Flux 拡張機能をインストールするためのポリシー割り当てを作成する

ポリシーで Flux v2 構成をクラスターに適用するには、まず Flux 拡張機能をクラスターにインストールする必要があります。 拡張機能が各クラスターにインストールされるようにするには、"Kubernetes クラスターに Flux 拡張機能のインストールを構成" ポリシー定義を目的のスコープに割り当てます。

  1. Azure portal で [ポリシー] に移動します。
  2. サイドバーの [作成] セクションで [定義] を選択します。
  3. [Kubernetes] カテゴリで、組み込みのポリシー定義 Kubernetes クラスターに Flux 拡張機能のインストールを構成する を選択します。
  4. [割り当て] を選択します。
  5. [スコープ] を、ポリシー割り当てを適用する管理グループ、サブスクリプション、またはリソース グループに設定します。
    • ポリシー割り当てのスコープからリソースを除外する場合は、[除外] を設定します。
  6. ポリシー割り当てにわかりやすい [割り当て名][説明] を指定します。
  7. [ポリシーの適用] が "有効" に設定されていることを確認します。
  8. [確認と作成](確認と作成) を選択し、次に [作成] を選択します。

Flux 構成を適用するポリシー割り当てを作成する

次に、[定義] 一覧 ([ポリシー][作成] セクション) に戻り、構成ポリシー定義を同じスコープに適用します。

  1. "Kubernetes" カテゴリで、"パブリック Git リポジトリを使用して Flux v2 構成で Kubernetes クラスターを構成する" の組み込みのポリシー定義か、その他のポリシー定義のいずれかを選択して Flux 構成を適用します。

  2. 割り当てを選びます。

  3. [スコープ] を、除外を含め、最初のポリシーを割り当てるときに選択したのと同じスコープに設定します。

  4. ポリシー割り当てにわかりやすい [割り当て名][説明] を指定します。

  5. [ポリシーの適用] が "有効" に設定されていることを確認します。

  6. [次へ] を選択し、もう一度 [次へ] を選択して、[パラメーター] タブを開きます。

  7. 使うパラメーター値を設定します。

    • パラメーターの詳細については、Flux v2 構成のデプロイに関するチュートリアルを参照してください。
    • Flux の構成を作成するときは、これらのパラメーターのうち 1 つ (1 つのみ) に値を指定する必要があります: repositoryRefBranchrepositoryRefTagrepositoryRefSemverrepositoryRefCommit
  8. [次へ] を選択して [修復] タスクを開きます。

  9. [修復タスクを作成する] を有効にします。

  10. [マネージド ID の作成] がオンになっていること、および ID に共同作成者アクセス許可が付与されることを確認します。 詳細については、「クイック スタート: ポリシーの割り当てを作成して、準拠していないリソースを特定する」、「Azure Policy を使用して非準拠リソースを修復する」を参照してください。

  11. [確認と作成](確認と作成) を選択し、次に [作成] を選択します。

その後、ポリシー割り当てのスコープ内で作成された新しい Azure Arc 対応 Kubernetes クラスターまたは AKS クラスターに構成が適用されます。

既存のクラスターに対しては、修復タスクを手動で実行する必要がある場合があります。 通常、このタスクには、ポリシー割り当てが有効になるまで 10 ~ 20 分かかります。

ポリシー割り当てを確認する

  1. Azure portal で、Azure Arc 対応 Kubernetes クラスターまたは AKS クラスターの 1 つに移動します。

  2. サイドバーの [設定] セクションで、[GitOps] を選択します。

    構成の一覧に、ポリシー割り当てによって作成された構成が表示されます。

  3. サイドバーの [Kubernetes リソース] セクションで、名前空間ワークロードを選択します。

    Flux 構成によって作成された名前空間と成果物が表示されます。 Git リポジトリのマニフェストに記述されているオブジェクトがクラスターにデプロイされていることがわかります。

ポリシーをカスタマイズする

組み込みポリシーは、Kubernetes クラスターで Flux v2 と GitOps を使うための主なシナリオに対応しています。 ただし、Azure Policy の割り当てで使用できるパラメーター数には制限があるので (最大 20)、組み込みポリシーにすべてのパラメーターが指定されているわけではありません。 また、20 個のパラメーターという制限内に収めるために、組み込みポリシーで作成できる Kustomization は 1 つのみです。

組み込みポリシーとは異なるシナリオがある場合は、組み込みポリシーをテンプレートとしてカスタム ポリシーを作成してこの制限に対処できます。 必要なパラメーターのみを含むカスタム ポリシーを作成し、残りをハードコーディングすることで、20 個のパラメーターの制限を回避できます。

次のステップ