2.2. OpenShift GitOps の一般的な用語集
この用語集では、一般的な OpenShift GitOps 用語を定義します。
- Application Controller (Argo CD Application Controller)
次のアクションを実行するコントローラー:
- Git リポジトリーの変更を継続的に監視する
- 実行中のアプリケーションを監視する
- ライブ状態と目的のターゲット状態を比較する
- 新しい変更をデプロイする
例としては、Argo CD Application Controller が
OutOfSync
アプリケーションの状態を検出し、必要に応じて修正アクションを実行することが挙げられます。Application
カスタムリソース (CR)- Argo CD アプリケーションのリソースをどのようにデプロイするかを記述する YAML マニフェスト。
Application
カスタムリソース定義 (CRD)- 環境にデプロイされた Argo CD アプリケーションインスタンスを表すリソースオブジェクト。
ApplicationSet
CRD (Argo CD アプリケーションセット)-
ApplicationSet
CR の内容に基づいて Argo CD アプリケーションを自動的に生成するリソースオブジェクトと CRD。クラスター管理者はこの CRD を使用して単一のApplicationSet
CR を定義し、対応する Argo CDアプリケーション
CR を複数生成および更新します。 - ApplicationSet Controller (Argo CD ApplicationSet Controller)
-
Argo CD 内に存在し、
ApplicationSet
CR を処理するカスタム Kubernetes コントローラー。このコントローラーは、ApplicationSet
CR の内容に基づいて、Argo CD アプリケーションを自動的に作成、更新、および削除します。 AppProject
CRD-
プロジェクト内のアプリケーションの論理グループを表す CRD であり、アプリケーションがリソースを管理できる場所と方法を制御します。
AppProject
CRD を使用すると、Argo CD ユーザーがこれらのアプリケーションにアクセスできる場所と方法を制限できます。AppProject
インスタンスの管理は、通常、Argo CD 管理者限定のアクションです。 - Argo CD API サーバー
- Web UI、CLI、継続的インテグレーション (CI)、継続的デプロイメント (CD) システムで使用される API を公開する gRPC/REST サーバー。
- Argo CD
- クラスターと開発ライフサイクル全体にわたる Kubernetes ベースのインフラストラクチャーとアプリケーションの継続的なデプロイメントを自動化するオープンソースの宣言型ツール。
- Argo CD アプリケーション
- リソースがマニフェストとして定義されている GitOps リポジトリーからターゲット Kubernetes クラスターまでの個々の Kubernetes リソースの継続的なデプロイメントを追跡するアプリケーション。
ArgoCD
CRD- 特定の Argo CD クラスターの希望の状態を記述する Kubernetes CRD。これにより、Argo CD クラスターを設定するコンポーネントを設定できます。
- Argo CD インスタンス
-
実行中の Argo CD のすべてのステートフルな部分をカプセル化する namespace 内の Argo CD の単一インストール。通常、各 Argo CD インスタンスには
ArgoCD
CR との 1 対 1 のマッピングがあります。 - Argo CD プロジェクト
Argo CD 内のエンティティーであり、Argo CD オープンソースプロジェクトの 特定のプロジェクトの概念 と、対応する
AppProject
CR を参照します。Argo CD プロジェクトを使用すると、許可された宛先として複数の namespace やクラスターを定義できます。対照的に、OpenShift プロジェクト は単一の namespace に制限され、namespace の概念と同じです。
Argo CD プロジェクトは、Git リポジトリーおよびリモートクラスターへのアクセスを制限することで、Argo CD の動作を制御します。例としては、Argo CD プロジェクトを使用して、Argo CD UI または Argo CD CLI を介して特定の Argo CD アプリケーションまたはクラスターリソースにアクセスできるユーザーを制限してユーザーを制御することが挙げられます。
- Argo CD リポジトリーサーバー (Argo CD-repo-server)
次のアクションを実行する Argo CD コンポーネント:
- Git、Helm、Open Container Initiative (OCI) などのソースリポジトリーから読み取る
- 対応するアプリケーションマニフェストを生成する
- カスタム設定管理ツールを実行する
- Argo CD アプリケーションコントローラーに結果を返す
- Argo CD リソース (
ArgoCD
CR) -
特定の Argo CD インスタンスの望ましい状態を記述する CR。Argo CD インスタンスを設定するコンポーネントと設定を指定できます。いつでも、namespace 内に
ArgoCD
CR を 1 つだけ指定できます。 - Argo CD サーバー (Argo CD サーバー)
- Argo CD の API と UI を提供するサーバー。
- Argo Rollouts
- Kubernetes および OpenShift Container Platform クラスターでホストされているアプリケーションのプログレッシブデプロイメントを管理するために使用できるコントローラー。このコントローラーには、ブルーグリーン、カナリア、カナリア分析、実験などの高度なデプロイメント機能を提供する CRD のセットがあります。
- クラスタースコープインスタンス
- クラスター設定、クラスター RBAC、Operator リソース、プラットフォーム Operator、シークレットなどの特定のクラスター固有のリソースを含む、クラスター上のすべてのリソースを管理するように Argo CD が設定されるモード。
- コントロールプレーン (GitOps コントロールプレーン)
GitOps コンテキストでは、インストールするすべての Argo CD のコントロールプレーンを設定できます。GitOps コントロールプレーンは、Argo CD をインストールできる任意の namespace です。このコントロールプレーンを使用すると、ネットワーク、インスタンス、およびクラスター全体で Argo CD をプロビジョニング、管理、および操作できます。
コントロールプレーン namespace 内で、Argo CD は、ソース Git リポジトリーと宛先クラスター間の継続的デプロイメントを定義する次の Kubernetes リソースのセットを維持します。
-
Argo CD
Application
CR -
ConfigMap
API オブジェクト -
デプロイメントターゲットの GitOps リポジトリー認証情報とクラスター認証情報を表す
Secret
オブジェクト
openshift-gitops
は、デフォルトの Argo CD インスタンスのコントロールプレーン namespace です。-
Argo CD
- 宣言型セットアップ
- システムおよびアプリケーションのセットアップまたは設定に、指定された環境で必要なインフラストラクチャーの宣言的な説明。この記述は、Git リポジトリーの YAML 設定ファイルで指定できます。宣言型セットアップには、環境とインフラストラクチャーを記述された状態と同じにするための自動プロセスが含まれています。例としては、YAML マニフェストを使用して Argo CD アプリケーション、プロジェクト、設定を宣言的に定義することが挙げられます。
- デフォルトの Argo CD インスタンス (デフォルトのクラスタースコープインスタンス)
-
Red Hat OpenShift GitOps Operator がインストール直後に
openshift-gitops
namespace にインスタンス化するデフォルトのインスタンスで、特定のクラスタースコープのリソースを管理するための追加の権限が付与されています。 - GitOps
- クラウドネイティブアプリケーションの継続的なデプロイメントを実装するための宣言的な方法。GitOps では、Git リポジトリーにデプロイメントリソースが含まれており、Argo CD はそれをクラスターの状態と同期し続けます。
- GitOps CLI (GitOps
argocd
CLI) - コマンドラインから Red Hat OpenShift GitOps および Argo CD リソースを設定および管理するためのツール。
- インスタンスの範囲
- Argo CD インスタンスを操作する方法を決定するモード。利用可能なモードは クラスタースコープのインスタンス および namespace スコープのインスタンス です。
- ライブ状態
- ターゲットクラスター上のアプリケーションリソースのライブ状態。
- ローカルクラスター
- Argo CD をインストールするクラスター。
- マニフェスト
-
GitOps のコンテキストでは、マニフェストは GitOps リポジトリー内で定義された Kubernetes リソースの YAML 表現であり、それらのリソースをターゲットの Kubernetes クラスターにデプロイすることを目的としています。たとえば、
Deployment
、ConfigMap
、Secret
などのリソースの YAML 表現が含まれます。 - マルチテナントへの対応
- 単一のソフトウェアインスタンスがさまざまなユーザーグループにサービスを提供するソフトウェアアーキテクチャー。
- namespace スコープインスタンス (アプリケーション配信インスタンス)
- Argo CD がクラスター上の特定の namespace 内のリソースのみを管理し、そのリソースをアプリケーション配信に使用するように設定されたモード。
- Notifications Controller (Argo CD Notifications Controller)
- Argo CD アプリケーションを継続的に監視し、アプリケーション状態の重要な変更についてユーザーに通知する柔軟な方法を提供するコントローラー。
- プログレッシブ配信
- GitOps のコンテキストでは、プログレッシブ配信は、制御された段階的な方法でアプリケーションの更新をリリースするプロセスです。
- Red Hat OpenShift GitOps
- 宣言型 GitOps エンジンとして Argo CD を使用し、マルチクラスター OpenShift および Kubernetes インフラストラクチャー全体で GitOps ワークフローを有効にする Operator。
- 更新
- Git リポジトリー内の最新のコードをライブ状態と比較し、その違いを判断するプロセス。たとえば、Argo CD UI では、Refresh をクリックすると、Argo CD はアプリケーションのターゲット Git リポジトリーに接続し、コンテンツを取得し、そのコンテンツからマニフェストを生成します。次に、Argo CD はそのターゲット状態をライブクラスターの状態と比較します。
- リモートクラスター
- 宣言的または GitOps CLI を使用して Argo CD に追加できるクラスター。リモートクラスターは、Argo CD がインストールされているローカルクラスターとは異なります。
- リソースの除外
- Argo CD がリソースを認識しないように、リソースを検出および同期から除外するために使用する設定。
- リソースの包含
- グローバルに管理対象リソースのリストを検出、同期、制限するために使用する設定。
- シングルテナンシー
- 単一のソフトウェアインスタンスが単一のユーザーまたはグループを提供するソフトウェアアーキテクチャー。
- 同期
- 一貫性を確保するために、アプリケーションのクラスターリソースのライブ状態を Git リポジトリー内で定義されたターゲット状態と同期するプロセス。たとえば、Argo CD UI を使用して変更をクラスターに適用することによるアプリケーションの同期などがあります。
- 同期の状態
- ライブマイグレーションがターゲット状態と一致するかどうかを示すアプリケーションの状態。
- ターゲットの状態
- Git リポジトリー内のファイルによって表される、アプリケーションリソースの望ましい状態。
- ユーザー定義の Argo CD インスタンス
クラスター設定を管理したり、アプリケーションをデプロイしたりするためにインストールしてデプロイするカスタム Argo CD インスタンス。デフォルトでは、新しいユーザー定義のインスタンスには、デプロイされた namespace でのみリソースを管理する権限があります。
openshift-gitops
namespace 以外の任意の namespace にユーザー定義の Argo CD インスタンスを作成できます。- ワークロード
-
通常、コンテナー内で実行される
Deployment
、StatefulSet
、ReplicaSet
、Job
、Pod
などのリソース内で定義されるプロセス。たとえば、Spring Boot アプリケーション、NodeJS Express アプリケーション、Ruby on Rails アプリケーションなどが含まれます。