ArgoCD

GitOpsとブルーグリーンデプロイのKubernetes実践ガイド

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

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


スポンサードリンク

GitOpsとブルーグリーンデプロイの概要

GitOpsとブルーグリーン戦略は、Kubernetes環境における信頼性のあるデプロイを実現するための組み合わせです。GitOpsはコードでインフラやアプリケーションを管理し、ブルーグリーン戦略はデプロイ中にサービス停止を防ぐ手法として注目されています。以下では両者の相性と具体的なメリットについて解説します。

GitOps vs ブルーグリーン戦略の比較

GitOpsとブルーグリーン戦略は異なる目的を持ちながらも、連携することで効果的なデプロイ手法になります。以下に両者の特徴を比較します。

項目 GitOps ブルーグリーン戦略
目的 インフラとアプリケーションのコード管理 実行中のサービス停止を防ぐデプロイ戦略
実現方法 Gitリポジトリを起点に自動でクラスターを同期 ブルー環境とグリーン環境を並列運用してトラフィックを切り替える
メリット 人為ミスの防止・再現性が高まる エラー時のロールバックが容易・可用性が向上

Kubernetesクラスターの事前設定

ローカルでの検証環境構築には、minikubeやkindを使用するのが一般的です。以下に必要な手順と確認ポイントをまとめました。

事前準備が必要なツールと知識

  • Kubernetesの基本理解kubectlコマンドやクラスターの基本的な構造についての知識が必要です。
  • Helmの基礎: チャート管理やリポジトリの追加方法について説明します。

1. minikube/kindによるローカル環境構築

以下に各ツールのインストール手順とクラスター作成のステップを示します。

  • minikubeでのクラスター起動:
    bash
    # macOS/Linux
    brew install minikube
    minikube start

    Windowsではchoco install minikubeや公式サイトからインストーラーを使用してください。

  • kindでのクラスター起動(Docker環境前提):
    bash
    # Linux/macOS
    curl -sSL https://raw.githubusercontent.com/kubernetes-sigs/kind/main/cmd/kind completions/bash | sudo tee /etc/bash_completion.d/kind > /dev/null
    kind create cluster --name blue-green-demo

2. kubectlとArgeCD関連ツールのインストール確認

  • kubectl versionでクライアントとサーバーのバージョンが一致しているか確認します。
  • ArgoCD用プラグインは、以下のようにインストールします:
    bash
    # macOS
    brew install argocd

# Linux (apt)
curl -sSL https://argoproj.github.io/argo-cd/install.yaml | kubectl apply -f -

注意事項: ArgoCDの動作にはKubernetesクラスターとHelmが前提となります。初期構築時に必要な依存関係を確認してください。


ArgoCDとArgo Rolloutsの連携環境構築

ArgoCDはGitOpsを実現するツールであり、Argo Rolloutsは段階的デプロイ戦略を提供します。両者を連携させることで、ブルーグリーンデプロイが可能になります。

インストール手順と前提条件

  • Istioのインストール: Istioによるトラフィックルーティングを使用する場合、事前にIstioをクラスターにインストールしてください(公式ガイド)。
  • ArgoCDとRolloutsのHelmインストール:
    bash
    helm repo add argo https://argoproj.github.io/argo-helm
    helm install argocd argo/argo-cd --namespace argocd
    helm install argo-rollouts argo/argo-rollouts --namespace argocd

クロスプラットフォーム対応のため: brewコマンドを使用する代わりに、各OSに対応したインストーラーを用意してください(例: WindowsならChocolatey)。


Helmチャートとブルーグリーンデプロイの統合

Helmチャートを活用することで、複数バージョンのアプリケーションを管理しやすくなります。以下に具体的な手順を示します。

サービス定義ファイルの分離構造

  • ブルー環境: blue-service.yamlでサービスを定義します。
    yaml
    apiVersion: v1
    kind: Service
    metadata:
    name: blue-green-blue
    spec:
    ports:

    • port: 80
      targetPort: 8080
      selector:
      app: blue
  • グリーン環境: green-service.yamlを作成し、セレクタを変更します。
    yaml
    apiVersion: v1
    kind: Service
    metadata:
    name: blue-green-green
    spec:
    ports:

    • port: 80
      targetPort: 8080
      selector:
      app: green

Rolloutsによるトラフィックシフト設定

Argo Rolloutsを使用する際、Istioでトラフィックをルーティングする例を示します。

ブルーグリーンデプロイのRollouts設定ファイル(rollout.yaml

注意事項: blue-green-virtualserviceは別途定義が必要です。以下に例を示します:


ロールバック手順と継続的監視

デプロイ中に問題が発生した場合、迅速なロールバックと監視が必要です。以下に具体的な方法を解説します。

ArgoCDによるバージョン回帰操作

  1. ArgoCDのUIからロールバック: GUIでアプリケーションのバージョンを選択し、「Rollback」ボタンを使用します。
  2. CLIでの手動ロールバック:
    bash
    argocd app set blue-green-app --sync-policy auto --revision v1.0.0

Prometheus/Grafanaでのメトリクス可視化

  • Prometheusの設定例(一部抜粋):
    yaml
    scrape_configs:

    • job_name: 'kubernetes-apiservers'
      kubernetes_sd_configs:

      • role: endpoints
        metrics_path: '/metrics'
        relabel_configs:
      • source_labels: [meta_kubernetes_endpoints_annotation_prometheus_io_port]
        target_label: __address

注意事項: 上記の設定は一部であり、実際にはさらにkubernetes-service-endpointsnode-exporterなどのジョブを追加する必要があります。

  • Grafanaダッシュボード: Prometheusから取得したメトリクスを可視化し、成功率レイテンシーの変動をリアルタイムで確認します。

GitOpsとブルーグリーン戦略の連携方法

GitOpsとブルーグリーンデプロイはお互いに補完する関係にあります。以下に具体的な連携方法を示します。

サポートされるワークフロー例

  1. コードベースの変更: Gitリポジトリにアプリケーションやサービス定義をコミット。
  2. GitOpsによる自動デプロイ: ArgoCDが差分を検出し、新バージョンをグリーン環境でデプロイ。
  3. トラフィック移行: Argo RolloutsでIstio経由でトラフィックを切り替える。
  4. 監視とロールバック: Prometheus/Grafanaでメトリクスを確認し、異常発生時はArgoCDでロールバック。

メリット: すべてのステップがコード化されており、再現性と自動化が可能になります。人為ミスのリスクも大幅に軽減できます。


まとめ

GitOpsとブルーグリーン戦略は、Kubernetes環境における信頼性の高いデプロイを実現するための強力なツールです。コードベースでの管理と自動化により、開発者と運用チーム双方にとって効率的なワークフローが可能になります。この記事では具体的な設定例や連携方法について解説しました。


スポンサードリンク

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


-ArgoCD