GitOps を使用して Azure Arc 対応の Kubernetes クラスターを構成する

完了

Azure Arc の主な利点は、DevOps 原則の実装を容易にし、確立された開発手法を運用に適用することです。 DevOps を使用すると、IT 環境の安定性を損なうことなく機敏性が向上します。

Azure Arc 対応 Kubernetes では GitOps がサポートされています。これは、手動デプロイ作業を減らすことで、アプリケーションのリリースを合理化する DevOps プラクティスです。

このユニットでは、GitOps と、それを Azure Arc 対応 Kubernetes クラスター用に構成する方法について学習します。

Arc 対応 Kubernetes での GitOps

GitOps を使用すると、Arc 対応 Kubernetes など、組織全体で Kubernetes 構成をより簡単に標準化できます。 リポジトリまたはその他のファイル ソースでは、リソースの予想される状態を表す構成ファイルがホストされます。 たとえば、ベースライン構成には、委任モデル、監視とログの設定、クラスター全体のサービスの特性が含まれる場合があります。

Kubernetes クラスターで実行されているエージェントによって、リポジトリの状態が監視されます。 構成が変更されると、エージェントによって、更新されたファイルがクラスターにプルされ、新しい構成が適用されて、クラスターが確実に目的の状態のままとなります。

Azure Arc 対応 Kubernetes クラスターは、クラスターへの構成デプロイを自動化する一般的なオープンソースの GitOps デプロイ オペレーターである Flux に依存しています。 Flux では、Git リポジトリ、Helm リポジトリ、バケットなどの一般的なファイル ソースがサポートされ、YAML、Helm、Kustomize 構成テンプレートの種類がサポートされています。

次の図は、Flux を使用してクラスター構成とアプリケーション更新プログラムをデプロイする GitOps フローを示しています。

Diagram of the GitOps flow showing an application update.

GitOps を構成する

GitOps によって、Arc 対応 Kubernetes クラスターが Git リポジトリなどの 1 つまたは複数のファイル ソースに関連付けられます。 各リポジトリには、名前空間やデプロイなどの任意の有効な Kubernetes リソースの構成を、マニフェスト ファイルの形式で含めることができます。

以下の図は、複数の Azure Arc 対応クラスターに GitOps ベースの構成を適用するプロセスを示しています。

Diagram showing the process of applying GitOps-based configuration to multiple Azure Arc-enabled clusters.

GitOps は、Kubernetes クラスターで Microsoft.KubernetesConfiguration/extensions/microsoft.flux クラスター拡張リソースとして有効になっています。 microsoft.flux を作成するには、fluxConfigurations 拡張機能をクラスターにインストールする必要があります。 クラスターで最初の Microsoft.KubernetesConfiguration/fluxConfigurations インスタンスを作成すると、この拡張機能は自動的にインストールされます。 また、構成を作成する前に手動で拡張機能をインストールすることもできます。

Azure arc 対応 Kubernetes クラスターの構成と、対応する GitOps リポジトリの間の各関連付けは、Azure Arc 対応 Kubernetes クラスターの Azure リソースの一部として、Azure に存在します。 その関連付けは、Azure portal や Azure CLI などの Azure 管理インターフェイスを使用して構成できます。

Azure Arc 対応 Kubernetes クラスターで GitOps を実装するには、次の大まかな手順を使用します。

  1. k8s-configuration Azure CLI 拡張機能を使用して Flux 構成を適用し、Arc 対応 Kubernetes クラスターで GitOps を有効にします。
  2. 構成を検証して、正常に作成されたことを確認します。 構成リソースは、コンプライアンスの状態、メッセージ、およびデバッグの情報で更新されます。

構成を適用したら、Azure portal を使用してコンプライアンスの詳細を表示できます。 Azure portal を使って、GitOps 構成を作成、更新および削除することもできます。

Azure Policy を使用して構成を自動化する

Azure Policy を使用して構成プロセスを自動化し、それを大規模に一貫して適用することができます。 クラスターを構成するポリシーを割り当てる前に、Flux 拡張機能がクラスターに作成されていることを確認する必要があります。 これを行うには、最初に Kubernetes クラスターへの Flux 拡張機能のインストールの構成というポリシー定義を割り当てて、拡張機能が確実にインストールされるようにします。

Azure portal での Azure Policy 割り当ての作成は、次の大まかな手順で構成されます。

  1. Azure portal で、[ポリシー] を検索して選択してから、[ポリシー] ページの左側のメニューで [定義] を選んで、すべてのポリシー定義を表示します。
  2. [指定した GitOps 構成で Kubernetes クラスターを構成する] を検索し、組み込みのポリシー定義のいずれかを選択します。
  3. [割り当て] を選択し、スコープ、パラメーター、修復の設定を指定してポリシーの割り当てを作成します。
  4. [確認と作成] を選択し、次に [作成] を選択します。

ポリシー割り当てにより、割り当てのスコープに作成された各 Azure Arc 対応 Kubernetes クラスターに対して GitOps が自動的に有効になります。 既存のクラスターの場合は、修復タスクを手動で実行する必要があります。

Azure Policy については、次のユニットで詳しく学習します。