Contents
Argo CD の概要と主要機能
Argo CD は Git リポジトリに格納された Kubernetes マニフェストを 宣言的に同期 させる CNCF プロジェクトです。Git が唯一の真実(source of truth)となり、コードレビューだけで本番環境へのデプロイが完結します。本セクションでは Argo CD の構成要素と、公式ドキュメントで確認できる最新リリースの主要機能を整理します。
基本概念とコンポーネント
Argo CD は主に 3 つのコンポーネントから構成されます。これらはすべて Kubernetes の Deployment としてデプロイ可能で、Helm Chart(argo-cd)でも提供されています。
-
Controller
Git リポジトリとクラスタの実状態を比較し、差分が検出された場合に自動または手動で Sync(適用)します。 -
API Server / UI
REST API と Web UI を提供し、ユーザーや CI/CD ツールから Argo CD の操作を行えるエントリーポイントです。UI はアプリケーションごとの同期状態・ヘルスチェック結果を視覚的に表示します。 -
Repository Server
Git, Helm, Kustomize など複数のソースタイプに対応し、マニフェストの取得とテンプレート処理を担当します。
最新リリース(v2.10)で追加された主な機能
公式ドキュメント(2025 年 11 月リリース)に基づき、直近バージョンで注目すべき改善点は以下の通りです。情報はすべて argo-cd のリリースノートと公式ガイドに記載されています。
- ApplicationSet の機能拡張
- Generator として Git、Cluster、List など多様なソースを組み合わせ可能になり、マルチクラスター環境でのアプリケーション自動生成がシンプルに。
-
テンプレート変数(
{{cluster.name}}等)によるパラメータ化が強化され、環境別設定を一元管理できます。 -
認証・認可機能の改善
- OIDC プロバイダー(Google, Azure AD など)との統合が標準化され、CLI と UI の両方で SSO が有効に。
-
Project レベルの RBAC が細分化され、Namespace や Application 単位で最小権限を付与できるようになりました(公式ドキュメント「SSO & RBAC」参照)。
-
UI/UX のリファクタリング
- アプリケーション一覧の検索・フィルタ機能が高速化。
- 同期エラー時に自動で推奨対処手順を提示するインラインヘルプが追加されました。
公式情報は https://argo-cd.readthedocs.io/ja/stable/ をご参照ください。
Argo Rollouts の概要と主要機能
Argo Rollouts は Argo CD と同様に CNCF がホストするプロジェクトで、Kubernetes 上の 段階的リリース(Canary, Blue‑Green など)を宣言的に実装します。本セクションでは Rollout のコア概念と、最新安定版(v1.6)に盛り込まれた機能拡張について解説します。
基本概念とコンポーネント
Rollouts はカスタムリソース(CRD)として提供され、以下の要素で構成されます。
-
Rollout CR
デプロイ戦略(Canary, Blue‑Green, Progressive)を YAML に記述し、argo-rollouts-controllerが管理します。 -
AnalysisTemplate
Prometheus・Datadog など外部メトリクスと連携し、成功基準に満たない場合は自動でロールバックします。 -
Metric Provider
メトリクス取得のプラグイン機構で、公式では Prometheus が最も広く利用されています。
これらは Argo CD の Application と同様に Git 管理できるため、GitOps パイプライン全体にシームレスに組み込めます。
最新リリース(v1.6)でのハイライト
公式リリースノート(2025 年 9 月)によれば、注目すべき改善点は次のとおりです。
| 項目 | 内容 |
|---|---|
| ステップ制御 | Canary/Blue‑Green のトラフィックシフトを細かいパーセンテージ単位で段階的に実行でき、リスク低減が可能。 |
| パラレル Canary | 複数バージョンの Canary を同時走査し、A/B テスト的な比較評価ができるようになった。 |
| Prometheus アラート連携 | AnalysisTemplate と直接紐付くことで、SLO 逸脱時に自動ロールバックをトリガーできる。 |
| CLI 改良 | kubectl argo rollouts コマンドがリアルタイムでステータス表示・手動プロモート機能を提供。 |
詳細は https://argoproj.github.io/argo-rollouts/ をご確認ください。
GitOps ワークフローにおける役割分担と統合パターン
Argo CD と Argo Rollouts はそれぞれ 「状態同期」 と 「段階的リリース」 を担当し、組み合わせることでエンドツーエンドの GitOps が実現します。本節では両者の連携フローと実務で有効なパターンを紹介します。
連携の基本フロー
- Git リポジトリにマニフェストをプッシュ
Application定義(Argo CD)とRollout定義(Argo Rollouts)を同一リポジトリ内で管理。- Argo CD が自動 Sync
- 変更が検出されると Application が対象クラスターへマニフェストを適用し、Rollout CR が作成されます。
- Rollouts Controller がデプロイ戦略を実行
- 定義された Canary/Blue‑Green のステップに従いトラフィックシフトとメトリクス評価を開始。
- 結果が UI と Git に反映
- Argo CD のダッシュボードで Sync 状態、Rollouts のステータスが同時に確認でき、必要なら手動介入も可能です。
この流れにより「コードだけでデプロイから検証・ロールバックまで完結」する GitOps が実現します。
ApplicationSet と Rollout を組み合わせたマルチクラスター例
| 手順 | 内容 |
|---|---|
| 1. クラスタリスト作成 | clusters.yaml に全環境(dev, staging, prod)を列挙し、ApplicationSet の ClusterGenerator で自動展開。 |
| 2. Rollout マニフェスト配置 | 各 Application の spec.source.path 配下に rollout.yaml を置き、Canary 戦略を記述。 |
| 3. Sync 設定 | Argo CD の自動同期(Auto‑Sync)を有効化し、全クラスターへ即時適用。 |
| 4. メトリクス評価 | Prometheus と AnalysisTemplate を紐付け、SLO 逸脱時にロールバックが走るよう設定。 |
このパターンは「環境ごとに同一のデプロイパイプラインを保ちつつ、段階的リリースでリスク管理したい」ケースに最適です。
機能比較表
以下の表は 2025 年末時点の最新版情報に基づき、Argo CD と Argo Rollouts の主要機能を対比しています。選定時の参考にしてください。
| 項目 | Argo CD | Argo Rollouts |
|---|---|---|
| デプロイ方式 | Git → Sync(宣言的) | Rollout CR による Canary / Blue‑Green など段階的ロジック |
| 対象リソース | 全ての Kubernetes マニフェスト | デプロイメント系リソースに特化した CRD |
| UI/CLI | Web UI が充実、argocd CLI が豊富 |
kubectl argo rollouts コマンドでリアルタイム監視・操作 |
| CI/CD 連携 | PR → 自動 Sync が標準。GitHub Actions, GitLab CI 等とシンプルに統合 | 同様に Git 管理が前提だが、AnalysisTemplate の定義が追加作業になる |
| 分析・ロールバック | ヘルスチェックのみ(手動ロールバック) | メトリクス評価で自動ロールバック可能 |
| スケーラビリティ | ApplicationSet により数千アプリの管理が実績あり | CRD 増加に伴うコントローラ負荷は注意が必要 |
| 認証・認可 | OIDC/SAML SSO、Project 単位 RBAC が公式サポート | 標準 Kubernetes RBAC に依存(AnalysisTemplate は追加権限が必要) |
| コミュニティ | CNCF プロジェクト、活発な Slack/GitHub コミュニティ | 同じく CNCF 配下で Argo CD との連携情報が豊富 |
導入・移行ガイド
1. シンプルなマニフェスト同期だけを実現したい場合
- 対象:社内ツールやバックエンドサービスなど、頻繁にリソース変更がなく即時デプロイで問題ないケース。
- 構成例
- Argo CD のみインストール(Helm
argo-cd推奨)。 - 各アプリケーションは
Applicationリソースだけで管理し、Sync ポリシーを Automatic に設定。 - SSO と Project RBAC を有効化し、チームごとの閲覧権限を最小化。
2. カナリア/Blue‑Green が必要なケースのベストプラクティス
| 手順 | 内容 |
|---|---|
| ① Argo CD + ApplicationSet | 全クラスターに共通アプリケーションを自動生成し、管理負荷を削減。 |
| ② Rollout 定義追加 | spec.source.path 配下に Canary 用 rollout.yaml を配置。 |
| ③ メトリクス評価設定 | Prometheus の ServiceMonitor と AnalysisTemplate を作成し、SLO 逸脱時に自動ロールバックを設定。 |
| ④ デプロイ実行と監視 | Argo CD が Sync 後、Rollouts が段階的リリースを開始。CLI (kubectl argo rollouts get rollout <name> --watch) でリアルタイムに進捗確認。 |
このフローは「Git の変更だけで安全なカナリアテストが実行できる」点が評価されています。
3. 既存 Argo CD 環境へ Rollouts を段階的に導入する手順
- CRD インストール
bash
kubectl apply -f https://github.com/argoproj/argo-rollouts/releases/download/v1.6.0/install.yaml - RBAC の拡張
argocd-application-controllerに Rollouts が参照できる権限(rollouts-get,rollouts-update)を付与。 - Metric Provider 構築
Prometheus Operator をデプロイし、対象サービスにServiceMonitorを追加。 - ApplicationSet の更新
既存 Application に Rollout マニフェストへのパス(例:apps/rollouts/canary.yaml)を追記し、Auto‑Sync を有効化。 - ステージングで検証
Staging 環境で Canary デプロイを実行し、AnalysisTemplate の結果が期待通りか確認。
本手順は公式インストールガイド(https://argoproj.github.io/argo-rollouts/installation/)に準拠しています。
4. Rollouts 単体から Argo CD に統合する逆パターン
- Argo CD を導入(Helm
argo-cd)。 - 現行の Rollout マニフェストを Git リポジトリに移動し、
Applicationのspec.source.pathに設定。 - 必要に応じて ApplicationSet を作成し、マルチクラスター展開を自動化。
- UI 上で Sync 状態 と Rollout ステータス が同時に確認できることを検証。
この手順により、既存の段階的リリースロジックは維持しつつ、Argo CD の統合管理画面から全体像を俯瞰できます。
まとめ
- Argo CD は Git ↔︎ Kubernetes の状態同期を担い、ApplicationSet と SSO/RBAC 強化により大規模マルチクラスター運用が容易です。
- Argo Rollouts は Canary・Blue‑Green といった段階的リリースをメトリクス駆動で実装し、失敗時の自動ロールバック機能が特徴です。2025 年最新版ではステップ制御やパラレル Canary が追加されています。
- GitOps ワークフロー では Argo CD が「宣言的デプロイ」、Rollouts が「段階的リリース」をそれぞれ担当し、ApplicationSet と組み合わせることでマルチテナント・マルチクラスター環境でも一貫したパイプラインが構築できます。
- 導入ガイド に沿ってシンプルな同期だけのケースから、カナリアテストを含む高度な運用まで段階的に拡張すれば、リスクを抑えた継続的デリバリーが実現します。
公式ドキュメントとコミュニティ情報を定期的にチェックしながら、自社の開発フローに最適な構成を選択してください。