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 フローを示しています。
GitOps を構成する
GitOps によって、Arc 対応 Kubernetes クラスターが Git リポジトリなどの 1 つまたは複数のファイル ソースに関連付けられます。 各リポジトリには、名前空間やデプロイなどの任意の有効な Kubernetes リソースの構成を、マニフェスト ファイルの形式で含めることができます。
以下の図は、複数の Azure Arc 対応クラスターに GitOps ベースの構成を適用するプロセスを示しています。
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 を実装するには、次の大まかな手順を使用します。
k8s-configuration
Azure CLI 拡張機能を使用して Flux 構成を適用し、Arc 対応 Kubernetes クラスターで GitOps を有効にします。- 構成を検証して、正常に作成されたことを確認します。 構成リソースは、コンプライアンスの状態、メッセージ、およびデバッグの情報で更新されます。
構成を適用したら、Azure portal を使用してコンプライアンスの詳細を表示できます。 Azure portal を使って、GitOps 構成を作成、更新および削除することもできます。
Azure Policy を使用して構成を自動化する
Azure Policy を使用して構成プロセスを自動化し、それを大規模に一貫して適用することができます。 クラスターを構成するポリシーを割り当てる前に、Flux 拡張機能がクラスターに作成されていることを確認する必要があります。 これを行うには、最初に Kubernetes クラスターへの Flux 拡張機能のインストールの構成というポリシー定義を割り当てて、拡張機能が確実にインストールされるようにします。
Azure portal での Azure Policy 割り当ての作成は、次の大まかな手順で構成されます。
- Azure portal で、[ポリシー] を検索して選択してから、[ポリシー] ページの左側のメニューで [定義] を選んで、すべてのポリシー定義を表示します。
- [指定した GitOps 構成で Kubernetes クラスターを構成する] を検索し、組み込みのポリシー定義のいずれかを選択します。
- [割り当て] を選択し、スコープ、パラメーター、修復の設定を指定してポリシーの割り当てを作成します。
- [確認と作成] を選択し、次に [作成] を選択します。
ポリシー割り当てにより、割り当てのスコープに作成された各 Azure Arc 対応 Kubernetes クラスターに対して GitOps が自動的に有効になります。 既存のクラスターの場合は、修復タスクを手動で実行する必要があります。
Azure Policy については、次のユニットで詳しく学習します。