【あるごしーでぃー】

Argo CD とは?

最終更新:
💡 Kubernetesのあるべき状態をGitで管理し、差分を同期

Kubernetes用のGitOps継続的デリバリーツール。Gitに定義した望ましい状態とクラスタの状態を比較し、手動または設定に応じた自動同期で反映する。

📌 このページのポイント
Argo CD:Gitとクラスタを比較して同期Gitの定義望ましい状態DeploymentServiceArgo CD差分を検知手動または設定で自動同期Kubernetes実際の状態DeploymentService / Pod取得適用クラスタの状態を取得Synced比較した状態が一致OutOfSync比較した状態に差分自動同期・prune・selfHealは個別設定同期状態とアプリの健全性は別
矢印は定義の取得・適用・状態の取得。自動同期・自動削除・自己修復の動作は、それぞれの設定に応じる。
ひよこ ひよこ
普通のCI/CDツールと何が違うの?
ペンギン先生 ペンギン先生
CIでビルド・テストを行い、Argo CDでGitに定義した状態とKubernetesの状態を比較して反映する、という役割分担ができるよ。CI製品自体が必ずPush型というわけではなく、デプロイ方法は構成次第なんだ。
ひよこ ひよこ
同期って具体的に何をするの?
ペンギン先生 ペンギン先生
Gitリポジトリ内のKubernetesマニフェストとクラスタの実際の状態を比較して、差分があれば自動(または手動承認で)反映する。「Synced」なら一致、「OutOfSync」なら差分あり。Web UIでリソースツリーが視覚的に見えるから、どのPodがどのReplicaSetに属しているか一目でわかるんだよ
ひよこ ひよこ
Flux CDとどう違う?
ペンギン先生 ペンギン先生
製品の規模だけで決めるより、必要な操作画面・権限・運用方法を比べよう。Argo CDにはWeb UI、RBAC、複数クラスタ管理などの機能がある。自分たちの承認や復旧手順を実現できるか確かめるといいね。
ひよこ ひよこ
導入時の注意点は?
ペンギン先生 ペンギン先生
コードとデプロイ設定のリポジトリ分離は公式でも推奨されているよ。また自動同期・削除するprune・手動変更を戻すselfHealの設定を別々に理解しよう。Gitに書かれた差分を検知することと、自動的に直すことは同じではないんだ。
もっと詳しく知りたい人へ

自動同期を有効にすれば削除や手動変更の修復も行うの?

個別の設定が必要です。Gitから消えたリソースを自動削除するにはprune、クラスタ側だけの変更で再同期を起こすにはselfHealを確認します。どちらも自動同期の既定では有効になりません。同期状態とアプリの健全性も別の指標です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Argo CD」って出てきたら「KubernetesをGitOpsで管理するCDツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Argo CD」 = Argoの継続的デリバリー(Continuous Delivery)ツール
💬 CDはContinuous Deliveryの略。Gitのアプリケーション定義をKubernetesへの継続的な反映に使う。

参考資料

← 用語集にもどる