ArgoCD

Argo CDとArgo RolloutsのGitOpsワークフロー構築ガイド | Kubernetes運用

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

Argo CDとArgo Rolloutsの概要と役割

Kubernetes運用やDevOpsエンジニアにとって、GitOpsワークフロー構築において「何をいつどのように使うか」が課題です。Argo CDはアプリケーションのデプロイを自動化し、Argo Rolloutsはリリース戦略(例:カナリアリリース)を管理するツールとして知られています。両者を組み合わせることで、GitOpsによる自律的な運用が可能になります。

GitOpsワークフローにおける位置付け

  • Argo CDの主な役割は、「コードベースでのクラスタ状態管理」です。YAMLファイルに定義されたアプリケーション構成をクラスターと同期させます。
  • Argo Rolloutsは「リリース戦略の実行制御」を担当します。カナリアリリースやロールバックなどの複雑なデプロイパターンを扱います。

両ツールの特徴的機能

ツール 主な機能 対象用途
Argo CD アプリケーション同期・ロールバック・アラート 基本的なデプロイと運用状態管理
Argo Rollouts カナリアリリース・グレードアップ・手動承認 高可用性やリスク制御が求められる複雑なリリース

Argo CD v2.9の新機能とRolloutsとの親和性

現在(2023年時点)では、Argo CD v2.9は2023年4月にリリースされています。このバージョンでは、GitOpsワークフローにおける柔軟性が大きく向上しました。特に、カナリアリリースとの連携設計で注目すべき変更点があります。

v2.9リリースの主要アップデート

  1. Rollouts APIとの統合強化: Argo CDがRolloutsのリソース(例:RolloutAnalysisRun)を直接操作できるようになりました。これにより、WebUI経由でのカナリアリリース管理が可能になります。
  2. GitOpsイベントの拡張: gitops.eventという新イベントタイプが追加され、Rolloutsのステータス変化を自動検知・反映する仕組みが整いました。
  3. UI操作パネルの刷新: アプリケーションデプロイとRollouts管理を一画面で扱えるようになり、運用効率が向上しています。

Rollouts連携向けの設計変更

  • Kustomizeベースの定義サポートkustomize.argo.rollouts拡張)により、RolloutsリソースをGitOpsレポジトリに統合しやすくなりました。
  • argocd.argoproj.io/rollout-nameのようなカスタムアノテーションが導入され、Argo CDからRolloutsリソースの参照が可能になりました。

注意: MermaidフローチャートにおけるHealth Checkの記述は、Rolloutsの最新仕様(2024年1月時点)と整合性があるか再確認が必要です。現状の説明は「AnalysisRunのステータス監視」に焦点を当てています。


WebUI経由でのRollouts操作設定

Argo RolloutsのWebUIによる操作は、RBAC設定を正しく構成しないと制限されます。公式ドキュメントに記載された手順に基づく実装例を紹介します。

RBAC制御のベストプラクティス

権限を細かく制限することで、誤操作リスクを最小化できます。

  • 必要なRole: argo-rollouts:rollout-manage(Rolloutsリソースの作成・更新許可)
  • RoleBindingの対象ユーザー: Kubernetesクラスター内でのロール(例:system:serviceaccounts:argocd:argo-cd

上記サンプルでは、Namespaceはargocdに指定し、ServiceAccount名をargo-cdとした。実環境ではクラスタ構成に応じて変更が必要。

UI操作フローの手順

  1. Argo CD WebUIで「アプリケーション」リストから対象リソースを選択。
  2. 右側パネルで「Rollouts」タブを開き、カナリアリリースを実行またはロールバックします。
  3. 「分析ステータス」をクリックすることで、AnalysisRunの詳細(例:Health Check結果)が確認可能です。

カナリアリリースにおける役割分担

カナリアリリースは、Argo CDとRolloutsの連携で実現されます。それぞれのツールが担当する領域を明確にします。

Argo CDのアプリケーション管理

  • デプロイ対象のバージョン管理: GitOpsレポジトリ内のYAMLファイルで、新旧バージョンを定義。
  • 同期状態監視: Rolloutsリソースがクラスターと一致するかを監視し、不一致があれば自動修正。

Rolloutsによるグレードアップ戦略

作業 Argo CDの役割 Argo Rolloutsの役割
新バージョンの適用 リソース定義をクラスターに反映 バージョン切り替え・トラフィック制御
健康状態監視 アラート発信 自動リトライ/ロールバック判定

GitOpsワークフロー構築時の連携シナリオ

Argo CDとRolloutsを組み合わせた典型的なGitOpsワークフローを解説します。カナリアリリースを含む複雑なケースまで想定しました。

自動デプロイと手動承認の統合

  1. GitOpsレポジトリにrollout.yamlをコミット。
  2. Argo CDが変更を検知し、Rolloutsリソースを作成。
  3. 承認フロー(例:Slack通知 + チーム承認)で手動ステップを経た後、カナリアリリース開始。

イベント駆動型の更新フロー

上記フローチャートにおける「Health Check」の処理フローは、Rollouts v0.25以降の仕様に基づいています。最新版ではAnalysisRunのカスタムメトリクスの追加が可能となっています。


現場での選定基準と導入アドバイス

両ツールの比較結果をもとに、導入時の設計ポイントを整理します。

要件に合ったツールチョイスのポイント

  • 単純なデプロイが主な目的なら:Argo CDのみで十分。
  • 複雑なリリース戦略(カナリア、グレードアップなど)が必要な場合:Argo Rolloutsとの連携が必須。

公式ドキュメント活用法


導入検討中の方は、最新バージョンの公式ドキュメントを参照しつつ、自社要件に合ったツール選定を行ってください。

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-ArgoCD