第4章 GitOps

4.1. Red Hat OpenShift GitOps について

Red Hat OpenShift GitOps は、宣言型の GitOps エンジンである Argo CD を使用する Operator です。これにより、マルチクラスター OpenShift および Kubernetes インフラストラクチャー全体で GitOps ワークフローが可能になります。管理者は、Red Hat OpenShift GitOps を使用して、クラスターおよび開発ライフサイクル全体で Kubernetes ベースのインフラストラクチャーとアプリケーションを一貫して設定およびデプロイできます。Red Hat OpenShift GitOps は、オープンソースプロジェクト Argo CD をベースにしています。アップストリームが提供するものと同様の一連の機能に加えて、さらなる自動化、Red Hat {OCP} への統合、Red Hat のエンタープライズサポートの利点 (品質保証とエンタープライズセキュリティーの重視) を提供します。

注記

Red Hat OpenShift GitOps は OpenShift Container Platform とは異なる頻度でリリースされるため、Red Hat {OCP} ドキュメントは製品のマイナーバージョンごとに個別のドキュメントセットとして利用できるようになりました。

Red Hat OpenShift GitOps ドキュメントは https://docs.openshift.com/gitops/ で利用できます。

特定のバージョンのドキュメントは、バージョンセレクターのドロップダウンを使用するか、URL にバージョン (https://docs.openshift.com/gitops/1.8 など) を直接追加すると利用できます。

さらに、Red Hat OpenShift GitOps ドキュメントは、Red Hat カスタマーポータル (https://access.redhat.com/documentation/ja-jp/red_hat_openshift_gitops/) でも利用できます。

Red Hat OpenShift GitOps のライフサイクルとサポートされるプラットフォームに関する追加情報は、プラットフォームのライフサイクルポリシー を参照してください。

Red Hat OpenShift GitOps は、異なる環境 (開発、ステージ、実稼働環境など) の異なるクラスターにアプリケーションをデプロイする場合に、アプリケーションの一貫性を確保します。Red Hat OpenShift GitOps は、設定リポジトリーに関連するデプロイメントプロセスを整理し、それらを中心的な要素にします。これには、少なくとも 2 つのリポジトリーが常に含まれます。

  1. ソースコードを含むアプリケーションリポジトリー
  2. アプリケーションの必要な状態を定義する環境設定リポジトリー

これらのリポジトリーには、指定した環境で必要なインフラストラクチャーの宣言的な説明が含まれます。また、環境を記述された状態に一致させる自動プロセスも含まれています。

Red Hat OpenShift GitOps は Argo CD を使用してクラスターリソースを維持します。Argo CD は、アプリケーションの継続的インテグレーションおよび継続的デプロイメント (CI/CD) のオープンソースの宣言型ツールです。Red Hat OpenShift GitOps は Argo CD をコントローラーとして実装し、Git リポジトリーで定義されるアプリケーション定義および設定を継続的に監視します。次に、Argo CD は、これらの設定の指定された状態をクラスターのライブ状態と比較します。

Argo CD は、指定した状態から逸脱する設定を報告します。これらの報告により、管理者は、設定を定義された状態に自動または手動で再同期することができます。したがって、Argo CD を使用すると、{OCP} クラスターの設定に使用するリソースなど、グローバルカスタムリソースを配信できます。

4.1.1. 主な特長

Red Hat OpenShift GitOps は、以下のタスクを自動化する上で役立ちます。

  • クラスターに設定、モニタリングおよびストレージについての同様の状態があることの確認。
  • 複数の {OCP} クラスターに対する設定変更を適用するか、これを元に戻す。
  • テンプレート化された設定の複数の異なる環境への関連付け。
  • ステージから実稼働環境へと、クラスター全体でのアプリケーションのプロモート。

4.1.2. 関連情報