Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新しいプロダクトのデプロイパイプラインにArgo CDを使った話

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

新しいプロダクトのデプロイパイプラインにArgo CDを使った話

Avatar for Cloud Ace

Cloud Ace

April 07, 2025
Tweet

More Decks by Cloud Ace

Other Decks in Technology

Transcript

  1. | © 2025 Cloud Ace, Inc 自己紹介 北野 敦資 @Aquamarine_1010 クラウドエース株式会社

     DevSecOps 事業部 Expert • 2019年 6月よりGoogle Cloudへのシステムの提案・設計から運用までの実施 • 前職ではシステムの運用管理の自動・自律化の研究、プライベートクラウドの運用・ 開発
  2. | © 2025 Cloud Ace, Inc • サービスの機能 ◦ 認証基盤: Keycloak

    ◦ ダッシュボード: Grafana ◦ ナレッジ管理: Backstage ◦ チケット管理: Redmine ◦ サービスデスク: 独自アプリ ◦ インシデント管理: Pagerduty • アプリ基盤 ◦ GKE・Cloud Run サービスのシステム構成概要 GKE と Cloud Run でアプリケーションを構成
  3. | © 2025 Cloud Ace, Inc 実現したいデプロイパイプライン • 運用ミスをなくすパイプライン ◦ 専用の基盤からのみの変更

    ◦ 構成情報のコード化 ◦ 統一的なデプロイフロー ◦ 本番環境への変更を明示的に行う • 変更に気づける ◦ 変更作業の失敗への通知 信頼性の高い CI / CD パイプライン
  4. | © 2025 Cloud Ace, Inc デプロイパイプラインの設計 信頼性の高いデプロイの実現 • デプロイ専用環境の構築 ◦

    Google Cloudの専用プロジェクトを準備 し、開発・本番環境に横断的に構成変更 の実施 • CIとCD のパイプラインの分離 • IaCを採用し変更作業のコード化 • GitOpsの採用 • リポジトリ戦略の設計 ◦ タグ作成により本番環境のリリース • Slackで変更作業者への通知
  5. | © 2025 Cloud Ace, Inc デプロイ方法の設計 • アプリケーションのデプロイ ◦ Argo

    CD + Kustomizeによるデプロイ • Google Cloud上のアプリの設定 ◦ Cloud Build + Terraformによるデプロイ ▪ 特定のIPから変更できるようにする • Google CloudとSaaSの設定 ◦ GitHub Actions + Terraformによるデプロイ 種類ごとにデプロイエージェントとコードの使い分け
  6. | © 2025 Cloud Ace, Inc Argo CD の設計 • 単一Argo

    CDで複数のGKEの管理 ◦ GKE の Fleet 機能 + Connect Gateway による全環 境への接続 ◦ argocd-fleet-sync によるクラスタの情報の同期 • Argo CDのprojectに各環境の分離 ◦ プロジェクトで設定する内容 ▪ デプロイ先のクラスタ情報 ▪ 各環境のアクセス権限 ▪ 参照するリポジトリ • システムのKeycloakによるSSOの実現 ◦ Keycloak のグループによるログイン • Argo CD NotificationによるSlack通知 ◦ エラー発生時に @channel で全員への連絡 安全かつ効率的なArgo CD 環境の実現
  7. | © 2025 Cloud Ace, Inc Argo CD の Application 設計

    • 自前のアプリケーションは Kustomizeで管理 ◦ baseの内容を overlays で環境に沿った変更する ▪ 例: イメージのバージョン、Podのresourcesなど • Application : 管理するアプリケーション = 1:1 ◦ Keycloak、 Grafana、 サービスデスクを1つのApplicationとし て管理する • 作成したGKE上のリソースを Application で管理 ◦ GKE のエクステンション、Argo CD 自体も Applicationで管理 • Applicationは ApplicationSetで管理 ◦ 本番環境は自動同期しないように設定 ▪ 管理者が差分を目視確認してSYNCする Kustomizeを使った効率的なアプリケーション管理
  8. | © 2025 Cloud Ace, Inc Argo CD と 連携するリポジトリの設計 •

    デプロイ用のリポジトリの作成 ◦ KubernetesのマニフェストとCloud Run の 構成情報の管理 ◦ Argo CDと連携 • アプリケーションのリポジトリでの実施 内容 ◦ Dockerイメージの作成 ◦ 開発環境の アプリの更新 ▪ Github Actions デプロイ用のリポジト リのマニフェストの更新 CI と CDを明確に分離するように設計 a イメージの作成とバージョン更新
  9. | © 2025 Cloud Ace, Inc Argo CD での Cloud Run

    の管理 • Workload IdentityによるGoogle Cloudへの認証 • V2ServiceプロバイダによりCloud Runの管理 • Argo CDにCrossplaneのステータス追跡の設定 ◦ resourceのトラッキング・ステータスの設定 Crossplane によるCloud Runのデプロイ V2Service Provider デプロイ デプロイ 同期 Cloud Run Argo CD
  10. | © 2025 Cloud Ace, Inc まとめ • Argo CD のシステム設計

    ◦ GKE Fleet + Connect Gateway + argocd-fleet-sync による複数クラスタの管理 ◦ Keycloak + Argo CDのプロジェクトによる安全なデプロイパイプラインの実現 ◦ Argo CD NotificationによるSlackへの通知 • デプロイパイプラインの設計 ◦ デプロイ用のリポジトリを個別に作成 ◦ アプリケーションパイプラインから開発環境のデプロイ • CrossplaneによるCloud Runの管理 ◦ Workload Identityの活用で安全な認証 ◦ V2ServiceプロバイダによるCloud Runの制御 Argo CD とCrossplaneで安全なデプロイパイプラインの作成
  11. | © 2025 Cloud Ace, Inc 参考URL • GKE での Argo

    CD の構築 • Argo CD でのGKE のマルチクラスタ管理 • Argo CD で Google アカウントによる SSO する方法 • Argo CD で Crossplane を使った Cloud Runのデプロイ • Argo CD が参照していないリポジトリからイメージバージョンを更 新する方法 • Crossplane で GKE の Workload Identityによる認証方法