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 拡張機能のインストールを構成] ポリシー定義を目的のスコープに割り当てます。
- Azure portal で [ポリシー] に移動します。
- サイドバーの [作成] セクションで [定義] を選択します。
- 組み込みの [Kubernetes クラスターに Flux 拡張機能のインストールを構成] ポリシー定義を見つけて、選択します。
- [ポリシーの割り当て]を選択します。
- [スコープ] を、ポリシー割り当てを適用する管理グループ、サブスクリプション、またはリソース グループに設定します。
- ポリシー割り当てのスコープからリソースを除外する場合は、[除外] を設定します。
- ポリシー割り当てにわかりやすい [割り当て名] と [説明] を指定します。
- [ポリシーの適用] が "有効" に設定されていることを確認します。
- [確認と作成](確認と作成) を選択し、次に [作成] を選択します。
Flux 構成を適用するポリシー割り当てを作成する
次に、[定義] 一覧 ([ポリシー] の [作成] セクション) に戻り、構成ポリシー定義を同じスコープに適用します。
組み込みの [パブリック Git リポジトリを使用して Flux v2 構成で Kubernetes クラスターを構成] ポリシー定義、またはその他のポリシー定義のいずれかを選択して、Flux 構成を適用します。
[ポリシーの割り当て]を選択します。
[スコープ] を、除外を含め、最初のポリシーを割り当てるときに選択したのと同じスコープに設定します。
ポリシー割り当てにわかりやすい [割り当て名] と [説明] を指定します。
[ポリシーの適用] が "有効" に設定されていることを確認します。
[次へ] を選択して [パラメーター] タブを開きます。
ポリシー定義のパラメーター名を使用して、使用するパラメーター値を設定します。
- パラメーターの詳細については、「GitOps (Flux v2) でサポートされているパラメーター」を参照してください。
- ポリシーによって Flux の構成を作成するときは、
repositoryRefBranch
、repositoryRefTag
、repositoryRefSemver
、repositoryRefCommit
パラメーター値のうち 1 つ (1 つのみ) を指定する必要があります。
[次へ] を選択して [修復] タスクを開きます。
[修復タスクを作成する] を有効にします。
[マネージド ID の作成] がオンになっていること、および [アクセス許可] セクションに [共同作成者] が表示されていることを確認します。 詳細については、「クイック スタート: ポリシーの割り当てを作成して、準拠していないリソースを特定する」、「Azure Policy を使用して非準拠リソースを修復する」を参照してください。
[確認と作成](確認と作成) を選択し、次に [作成] を選択します。
その後、ポリシー割り当てのスコープ内で作成された新しいクラスターに構成が適用されます。
既存のクラスターに対しては、修復タスクを手動で実行する必要がある場合があります。 通常、このタスクには、ポリシー割り当てが有効になるまで 10 ~ 20 分かかります。
ポリシー割り当てを確認する
- Azure portal で、ポリシー割り当てのスコープ内にある Azure Arc 対応 Kubernetes または AKS クラスターに移動します。
- サービス メニューの [設定] で、[GitOps] を選択します。 [構成] の一覧に、ポリシー割り当てによって作成された構成が表示されます。
- サービス メニューの [Kubernetes リソース] で、[名前空間] を選択します。 Flux 構成によって作成された名前空間が表示されます。
ポリシーをカスタマイズする
組み込みポリシーは、Kubernetes クラスターで Flux v2 と GitOps を使うための主なシナリオに対応しています。 ただし、Azure Policy の割り当てで許可されているパラメーター数には 20 という制限があるので、組み込みポリシーにすべてのパラメーターが含まれているわけではありません。 また、20 パラメーターという制限内に収めるために、組み込みポリシーで作成できる Kustomization は 1 つのみです。
組み込みポリシーとは異なるシナリオがある場合は、組み込みポリシーをテンプレートとしてカスタム ポリシーを作成してこの制限に対処できます。 20 パラメーターの制限を回避するには、必要なパラメーターのみを含むカスタム ポリシーを作成し、残りをハードコーディングします。