ArgoCD

Argo CD のインストールと設定ガイド(kind・本番環境)

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

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


スポンサードリンク

前提条件とインストール環境

Argo CD のデプロイには Kubernetes クライアントとコンテナ実行基盤が必要です。ここでは推奨バージョンと、各ツールの取得方法を最新リリースに合わせて記載します。

必要ツールと推奨バージョン

ツール 推奨バージョン (2026年時点) インストール例
kubectl v1.28 以上 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
Docker Engine 24.x 系列 Docker Desktop の公式サイトからインストーラを取得
kind v0.22.0 以上 GO111MODULE=on go install sigs.k8s.io/kind@v0.22.0

macOS、Linux、Windows(WSL2)それぞれ上記コマンドを実行すればインストール完了です。

ローカル kind クラスタ作成

ローカル環境で Argo CD を試すための最小構成クラスタを作ります。以下は 設定ファイル作成 → クラスタ生成 → 動作確認 の流れです。

kubectl get nodesReady を示せば、以降の手順はすべてこのローカルクラスタ上で実行できます。


Argo CD の公式マニフェストによるインストール

Argo CD は公式リポジトリから提供される install.yaml ひとつで全コンポーネントをデプロイできます。ここでは「最新安定版タグを取得」する方法と、バージョン固定の落とし穴について解説します。

最新リリースタグの取得

stable ブランチは過去に「常に最新」とされてきましたが、実際にはブランチの更新タイミングが遅れるケースがあります。安全策として GitHub API で現在の最新タグを取得 し、そのタグを URL に埋め込むことを推奨します。

ポイント$LATEST_TAG が自動で最新バージョンに置き換わるため、将来的に古いタグが残っていることを心配する必要はありません。

Namespace 作成とマニフェスト適用

デプロイ結果の確認

コンテナ名 推奨稼働状態
argocd-server Running
argocd-repo-server Running
argocd-application-controller Running
argocd-dex-server (任意) Running

すべて Running かつ READY=1/1 が確認できればインストールは成功です。


UI と CLI の初期設定

Argo CD は Web UI と argocd CLI の二本柱で操作します。本節では安全に管理者パスワードを取得し、TLS 設定が不完全な環境での --insecure 使用リスクと代替手段についても触れます。

Port‑Forward による UI アクセス

ブラウザで https://localhost:8080 にアクセスするとログイン画面が表示され、自己署名証明書の警告は 無視せず 「例外として追加」するだけに留めます。

初期 admin パスワード取得

出力された文字列は 初回ログイン専用 のパスワードです。必ず保存し、ログイン後に変更してください。

argocd CLI の取得(最新バイナリ)

Windows の場合は argocd-windows-amd64.exe を同様に取得し、PATH に追加してください。

CLI でのログインと --insecure の取扱い

運用環境でのリスク
- 中間者攻撃(MITM)に対して暗号化が無効になる
- 認証情報が平文で送信される可能性

代替手段
1. Ingress/LoadBalancer に正規証明書を設定(Let's Encrypt など)
2. argocd-cm ConfigMap の tls.certificates 項目でサーバー証明書を直接注入
3. クライアント側に CA バンドルを配置し、--insecure を外す

本番環境では必ず 1 または 2 のいずれかを採用し、--insecure は使用しないよう徹底してください。


GitHub 連携とサンプルアプリのデプロイ

GitOps の核となるリポジトリ認証設定と、実際に Application を作成して自動同期させるまでを順番に解説します。ここでは SSH 鍵方式 を推奨しつつ、PAT(Personal Access Token)での代替手順も示します。

SSH キーによるリポジトリ認証(推奨)

HTTPS + PAT(代替手段)

手順 内容
1 GitHub の Settings → Developer settings → Personal access tokensrepo スコープ付きの PAT を作成
2 Secret 作成
kubectl -n argocd create secret generic github-pat --from-literal=username=<GitHubユーザ> --from-literal=password=<PAT>
3 UI/CLI の「Repository」追加画面で type: https とシークレット名を指定

Application マニフェスト(最小構成)

以下は公式サンプルリポジトリ argoproj/argo-cd-example-apps を対象にした Application 定義です。自動同期 (automated) が有効になっているため、Git にプッシュするだけで即時デプロイが走ります。

Sync 操作と結果確認

  • UI:Application 一覧 → 対象アプリ → SYNC ボタン → Synchronize
  • CLIargocd app sync guestbook

デプロイ成功の目安は以下コマンドで Pod が READY 1/1 になることです。


本番環境への移行と高度なセキュリティ対策

ローカルでの検証が完了したら、本番クラスタへ同一マニフェストを適用します。実運用では 永続化、Ingress 設計、リソース制限、RBAC の細分化 が必須です。

本番向け設定チェックリスト

項目 推奨内容
外部 DB / 永続化 argocd-dexredis などは StatefulSet と PVC を利用し、バックアップポリシーを策定
Ingress / LoadBalancer NGINX Ingress Controller またはクラウド LB(ALB/ELB)で HTTPS 終端。service.type=LoadBalancer のみでは外部からの証明書管理が困難
リソース上限 resources.requests.cpu: 200m, resources.limits.cpu: 500m, memory: 256Mi‑512Mi をベースに調整
Namespace 分離 本番環境は argocd-prod 等別名で作成し、開発・ステージングと RBAC を分離

admin パスワードの安全な変更方法

以下コマンドはシェル展開を正しく行い、admin.passwordMtime に現在の UNIX 時間を設定します。--type=merge で既存シークレットに上書きする形です。

ポイント$(date +%s) がシェル側で評価され、JSON に正しい数値が埋め込まれます。以前の "$()" を文字列として渡すミスを防げます。

本番向け RBAC 設計(詳細ポリシー例)

argocd-rbac-cm ConfigMap にはロールベースのアクセス制御を書き込みます。実運用では以下のように プロジェクト単位、名前空間単位 の細かい権限付与が推奨されます。

実務での留意点
- 最小権限の原則(Principle of Least Privilege) を徹底し、不要な * 許可は排除。
- OIDC / SAML 連携時は外部 IdP の属性マッピングでロール付与を自動化すると管理が楽になる。
- ポリシー変更後は必ず UI/CLI で権限テストを行い、意図しないアクセスが許可されていないか検証。

TLS 証明書の本番導入(Ingress 経由)

自己署名証明書から脱却し、公開 CA(例:Let’s Encrypt)で取得した証明書を Ingress に組み込みます。cert-manager がインストール済みの場合は以下だけで自動取得・更新が完了します。

適用後、kubectl get secret -n argocd argo-tls -o yaml で証明書が格納されていることを確認してください。


まとめ

  • 前提条件:最新版の kubectl・Docker・kind をインストールし、ローカル kind クラスタを作成すれば準備完了です。
  • 最新マニフェスト取得:GitHub API で取得したタグ ($LATEST_TAG) を用いることで、バージョン固定のリスクを回避できます。
  • 初期設定:Port‑Forward とシークレット取得で管理者パスワードを入手し、--insecure の使用はローカル限定に留め、実運用では正規証明書を必ず導入してください。
  • GitHub 連携:SSH 鍵方式が推奨です。PAT は代替として残しておくと便利です。
  • Application デプロイ:自動同期 (automated) により GitOps がシームレスに機能します。
  • 本番移行:永続化、Ingress 設計、リソース制限、細分化された RBAC ポリシーを組み込むことで、運用レベルの安全性が確保できます。

この手順通りに実施すれば、初心者でも ローカル環境から本番クラスタまで 安全かつ最新状態の Argo CD を構築でき、GitOps による継続的デリバリー基盤を即座に活用できます。

スポンサードリンク

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


-ArgoCD