次の方法で共有


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 クラスターに Flux 拡張機能のインストールを構成] ポリシー定義を見つけて、選択します。
  4. [ポリシーの割り当て]を選択します。
  5. [スコープ] を、ポリシー割り当てを適用する管理グループ、サブスクリプション、またはリソース グループに設定します。
    • ポリシー割り当てのスコープからリソースを除外する場合は、[除外] を設定します。
  6. ポリシー割り当てにわかりやすい [割り当て名][説明] を指定します。
  7. [ポリシーの適用] が "有効" に設定されていることを確認します。
  8. [確認と作成](確認と作成) を選択し、次に [作成] を選択します。

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

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

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

  2. [ポリシーの割り当て]を選択します。

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

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

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

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

  7. ポリシー定義のパラメーター名を使用して、使用するパラメーター値を設定します。

    • パラメーターの詳細については、「GitOps (Flux v2) でサポートされているパラメーター」を参照してください。
    • ポリシーによって Flux の構成を作成するときは、repositoryRefBranchrepositoryRefTagrepositoryRefSemverrepositoryRefCommit パラメーター値のうち 1 つ (1 つのみ) を指定する必要があります。
  8. [次へ] を選択して [修復] タスクを開きます。

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

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

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

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

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

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

  1. Azure portal で、ポリシー割り当てのスコープ内にある Azure Arc 対応 Kubernetes または AKS クラスターに移動します。
  2. サービス メニューの [設定] で、[GitOps] を選択します。 [構成] の一覧に、ポリシー割り当てによって作成された構成が表示されます。
  3. サービス メニューの [Kubernetes リソース] で、[名前空間] を選択します。 Flux 構成によって作成された名前空間が表示されます。

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

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

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

次のステップ