ArgoCD

UbuntuでArgo CDをインストールする完全ガイド

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

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


スポンサードリンク

前提条件と環境準備

このセクションでは Ubuntu の基本的なセットアップから Docker・kubectl のインストール、ローカル Kubernetes クラスター(MicroK8s または Kind)の作成までを網羅します。
目的は、kubectl version --clientkubectl cluster-info がエラーなく実行できる状態にすることです。

Ubuntu パッケージの最新化

ポイント:システムが古いと依存関係でエラーになるケースが多いため、上記は必ず実行してください。

Docker のインストール(Kind 利用時に必要)

注記:Docker の最新バージョンは apt show docker.io で確認できます。企業環境などで別途 Docker CE を利用したい場合は公式サイトの手順に従ってください。

kubectl のインストール(公式バイナリ)

最新版取得のヒントstable.txt が常に最新安定版を指すので、スクリプトをそのまま流用できます。

ローカルクラスターの作成例

MicroK8s(Snap パッケージ)

Kind(Docker が前提)

バージョン注意:上記は GitHub API から最新リリースを取得する例です。スクリプト実行時点の最新版が自動的にダウンロードされます。

接続確認

両コマンドがエラーなく出力されたら、次の章へ進めます。


Argo CD の取得と公式マニフェストインストール

Argo CD を最小構成で導入する場合は、GitHub の stable ブランチが指す最新マニフェストを直接適用します。
本セクションのゴールは、argocd 名前空間に必要リソースがすべて作成され、Pod が Running 状態になることです。

install.yaml の取得先

最新版確認stable ブランチは常に最新安定版を指しますが、特定バージョンを狙う場合は v2.10.6 などタグ URL を使用してください。

インストール手順

デプロイ完了の確認

argocd-server, argocd-repo-server, argocd-application-controller がすべて Running になるまで待ちます。

参考リンク:Zenn に掲載されている同様の手順は次から参照できます。
Zenn 記事


Helm チャートでのインストール比較

Helm を使うと values.yaml に細かいパラメータを書き込むだけでカスタマイズが可能です。公式マニフェストとの違いを把握した上で、導入方式を選択してください。

Helm リポジトリ追加と基本設定

ポイント:Helm のバージョンは helm version で確認し、可能ならば最新の v3.x 系を使用してください。

主な values.yaml 設定ポイント(抜粋)

以下は Argo CD を NodePort 経由で外部公開する際に有用な項目例です。各パラメータは環境要件に合わせて調整します。

パラメータ 説明 推奨例
server.service.type Service の公開方式 (ClusterIP, NodePort, LoadBalancer) NodePort
configs.secret.createSecret 初期 admin パスワードを自動生成するか true
ingress.enabled Ingress を有効化するか true(HTTPS 化したい場合)
resources.limits.cpu コンテナ CPU 上限 "500m"
resources.limits.memory コンテナメモリ上限 "256Mi"

注記values.yaml に書く項目は Helm チャートの公式 README でも随時更新されます。導入前に必ず最新版を確認してください。

Helm デプロイ例

マニフェスト方式との比較ポイント

項目 公式マニフェスト Helm チャート
カスタマイズ性 限定的(kubectl edit が中心) values.yaml で包括的に変更可能
バージョン管理 Git にコミットしやすい Helm リポジトリのバージョンで管理
初期設定の自動化 Secret の手動作成が必要なケースあり configs.secret.createSecret で自動生成

結論:試験的に素早く導入したい場合は公式マニフェスト、運用段階で細かい調整が頻繁に発生するなら Helm が適しています。


UI アクセス、HTTPS 化、初期設定

Argo CD の管理画面へ安全にアクセスし、TLS 証明書を自動取得するまでの流れを解説します。
目的は、開発・検証フェーズでは簡易的に UI を確認し、本番環境では Ingress + cert‑manager による HTTPS 化を実現することです。

アクセス方法の選択肢

方法 手順概要 推奨シーン
NodePort kubectl get svc -n argocd でポート番号取得 → <node-ip>:<port> にブラウザでアクセス ローカルクラスターのデモ・テスト
LoadBalancer クラウドプロバイダーが自動作成(MicroK8s の metallb 推奨) 本番環境で外部公開
Port‑forward kubectl -n argocd port-forward svc/argocd-server 8080:443https://localhost:8080 デバッグや一時的な確認

初期 admin パスワード取得

取得した文字列を UI のログイン画面で admin ユーザーに入力します。

HTTPS 化:Ingress + cert‑manager

cert‑manager の導入(最新版取得)

バージョン注意:上記は実行時点の最新リリースを自動取得します。環境で固定したい場合は ${CM_VERSION} を手動で置き換えてください。

ClusterIssuer の作成例(Let’s Encrypt Staging)

Argo CD 用 Ingress 設定(values.yaml に組み込む)

helm upgrade --install …(Helm 使用時)または kubectl apply -f ingress.yaml(マニフェスト使用時)で適用し、

の出力に ADDRESS が表示されたら HTTPS アクセスが可能です。


Git リポジトリ連携と基本操作例

Argo CD が対象リポジトリと正しく認証できれば、GitOps のフルサイクルが自動化されます。ここではアクセストークンの作成からアプリケーション登録・同期までを実演します。

パーソナルアクセストークン(PAT)の作成

プラットフォーム 手順概要
GitHub Settings → Developer settings → Personal access tokens → Generate new token → repo 権限のみ付与
GitLab User Settings → Access Tokens → apiread_repository スコープで作成

セキュリティベストプラクティス:トークンは最小権限(読み取り専用)に限定し、期限付きのものを使用してください。

トークンを Argo CD に登録

UI でも Settings → Repositories → Connect Repo から同様に設定できます。

サンプルアプリケーションの作成と同期

同期(デプロイ)

ロールバック例

UI の APP → Sync ボタンでも同様の操作が可能です。

ポイントまとめ:トークンは最小権限で発行し、Argo CD 側では Secret として安全に保管します。CLI と UI を併用すれば、GitOps のフローをスムーズに体感できます。


トラブルシューティングと次のステップ

導入後に遭遇しやすい障害とその対処法をチェックリスト形式でまとめました。続いて本番運用へ向けた拡張策をご紹介します。

よくある障害と対策

症状 主な原因 推奨対策
Pod が Pending ノードリソース不足、StorageClass 未設定 kubectl describe pod <pod> で詳細確認 → リソース増強または適切な StorageClass を作成
RBAC エラー ServiceAccount に権限が付与されていない テスト環境なら cluster-admin バインドを一時的に追加(本番では最小権限ポリシーを策定)
API Server 接続失敗 kubeconfig のコンテキスト不一致、ネットワークポリシー kubectl config current-context を確認し正しいクラスターへ切替
Ingress が 404 cert‑manager の Issuer 未設定、Ingress クラスミスマッチ Issuer と Ingress 注釈を再確認 → kubectl get ingress -A でステータスをチェック
admin パスワード取得失敗 Secret 名が変わっている、base64 デコード忘れ kubectl -n argocd get secret で正しい Secret を特定し再度デコード

次に進むべきこと

  1. 本番向けカスタマイズ
  2. リソースリクエスト/リミットの最適化
  3. OIDC・SAML 連携によるシングルサインオン導入(admin パスワード不要)

  4. 監視・可観測性の強化

  5. Prometheus と Grafana をデプロイし、argocd_server_sync_total 等のメトリクスを収集
  6. Alertmanager で障害通知ルール(Pod Pending, Sync Failure など)を設定

  7. GitOps パイプラインの拡張

  8. kustomizehelmfile を組み合わせ、環境別(dev / staging / prod)の差分管理を自動化
  9. PR ベースのレビューと Argo CD の自動同期(Auto‑Sync)でデプロイ速度を向上

  10. バックアップ戦略

  11. argocd 名前空間の etcd バックアップや Secret の暗号化保存手順を策定

まとめ

  • Ubuntu と Docker、kubectl を最新状態にし、MicroK8s または Kind でローカルクラスターを構築
  • install.yaml(公式マニフェスト)または Helm チャートのどちらかで Argo CD をデプロイ
  • UI アクセスは NodePort/Port‑forward で確認し、Ingress + cert‑manager による HTTPS 化へステップアップ
  • Git リポジトリとの連携は PAT と argocd repo add、アプリ作成・同期は CLI/GUI の両方で実施可能
  • トラブルはログと kubectl describe で素早く切り分け、必要に応じて RBAC やリソース調整を行う

以上の手順を踏めば、Ubuntu 上のローカル Kubernetes に Argo CD が確実に導入でき、GitOps のワークフローをすぐに体感できます。ぜひ本ガイドを参考に、ご自身の環境へ適用してみてください。

スポンサードリンク

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

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

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

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

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

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

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

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

Beyond Careerに無料相談する

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


-ArgoCD