Argo CD とは?Kubernetes 向けの GitOps controller
Argo CD は、Git リポジトリで宣言された manifest にあなたのクラスタを継続的に同期する、Kubernetes ネイティブの GitOps controller です。
Argo CD は、GitOps モデルを Kubernetes 向けに具体的に実装します。manifest(素の YAML、Helm、Kustomize)のリポジトリを指し示して Application を定義すると、Argo CD はリポジトリと稼働中のクラスタを比較し、diff を表示して両者を同期します。GitOps に UI、API、明確な sync 状態を与えます。
Application オブジェクト
Argo CD の Application は、ソース(リポジトリの path、branch、Helm のようなツール)を宛先(クラスタと namespace)に結びつけます。Argo CD はその後、その宛先をそのソースに一致させ続けます。
sync と drift 検知
Argo CD は、Git 内の望ましい状態と稼働中の状態を継続的に比較します。各 Application を Synced または OutOfSync として報告し、変更を自動 sync するか手動承認を待つことができます。手動のクラスタ編集は drift として現れます。
健全性と rollback
- リソースの健全性(例: Deployment の可用性)を表示する。
- drift を Git に戻すことで自己修復できる。
- rollback は、同期先として以前の Git リビジョンを選ぶことである。
可視性という利点
リコンサイルを超えて、Argo CD のダッシュボードは、何がデプロイされているか、それが Git とどう異なるか、各部分の健全性を正確に示します - 「実際に何が動いているのか?」を一目で分かるものに変えます。
pipeline における Argo CD
CI はイメージを build・push し、新しい tag または digest を manifest リポジトリに commit します。Argo CD は commit を検知してクラスタを同期します - GitOps pipeline の CD 側であり、CI からきれいに分離されています。
重要なポイント
- Argo CD は、クラスタを Git に同期する Kubernetes の GitOps controller です。
- Application は Git のソースをクラスタの宛先にマッピングし、drift を検知します。
- CI が新しいイメージを Git に commit し、Argo CD が rollout をリコンサイルします。