Contents
Argo CD アプリケーション デプロイ 手順を解説|初心者向けステップバイステップガイド
Kubernetes環境でのアプリケーションデプロイを効率化するための手法として、GitOpsによるArgo CD導入が注目されています。本記事では、Argo CDのインストールから実際のアプリケーションデプロイまで、初学者向けに詳細な手順とベストプラクティスを解説します。記事内で掲載する手順は、現時点で最新の情報に基づいており、実際に自身の環境で試していただけるように構成しています。
Argo CD導入前の準備と環境構築
KubernetesクラスターとArgo CDを連携させるには、事前準備が不可欠です。まず、既存のクラスタ状態を確認し、必要なツールをインストールすることでスムーズな導入が可能になります。
Kubernetesクラスターの事前確認
既存のKubernetesクラスターが正常に動作しているかは、以下のように確認してください。
kubectl cluster-infoコマンドでクラスタの接続状態を確認するkubectl get nodesでノードリストとステータスをチェックする- クラスタに対して適切な権限を持っていることを確認(
kubectl auth can-iコマンド使用)
注意: マルチクラスター環境では、kubeconfigファイルの設定に注意が必要です。複数クラスターを管理している場合は、kubectl config use-context <context名>で切り替えが可能です。
必要なツールのインストール
Argo CDを導入するためには、以下のツールが前提となります。
kubectl: Kubernetes CLI(既にインストール済みの場合もあります)Helm: パッケージ管理用(公式リポジトリから簡単にインストール可能)- Gitクライアント: アプリケーション定義ファイルを管理するために必要
それぞれのツールは、公式ドキュメントに従って導入してください。
Argo CDのインストール方法
Argo CDはKubernetesクラスター上にデプロイする必要がありますが、導入方法には「Helmを使用したインストール」と「手動によるデプロイ」の2つの選択肢があります。
Helmを使用したインストール
HelmリポジトリURLの最新性確認:
現時点での公式リポジトリは https://argoproj.github.io/argo-helm ですが、定期的な更新が必要です。最新版を確認するには、helm repo update コマンドで更新してください。
-
HelmリポジトリにArgo CDを追加
bash
helm repo add argocd https://argoproj.github.io/argo-helm
helm repo update -
Argo CDをデプロイ
bash
helm install argocd argocd/argo-cd -n argocd --create-namespace -
インストール後の確認
| 名前 | ステータス | ポッド数 |
|------------|-------------|----------|
| argocd-server | Running | 1 |
| argocd-dex-server | Running | 1 |
エラーメッセージの解釈:
インストールに失敗した場合、kubectl describe pod -n argocd を実行し、以下を確認してください:
- Podステータス:
CrashLoopBackOffなどの状態が表示される場合、起動エラーがあります。 - イベントログ:
Error: unable to connect to the serverなど、具体的な原因が記載されています。
手動でのデプロイオプション
手動インストールは、カスタマイズが必要な場合に有効です。以下が基本ステップです。
-
Argo CDリソースファイルを取得
GitHubのリポジトリからinstall.yamlをダウンロードします。 -
YAMLファイルを適用
bash
kubectl apply -n argocd -f install.yaml -
サービスとエンドポイント設定
kubectl get svc -n argocdで公開されているポートを確認し、クラスタ外からアクセスできるようにする必要があります。
GitOpsによるアプリケーション設定ファイルの作成
Argo CDではGitリポジトリを使用してアプリケーションを管理します。設定ファイルの構造と配置手順を理解することで、効率的な運用が可能になります。
アプリケーション定義ファイル(app-of-apps)の構造
app-of-appsとは、複数のアプリケーションを統一して管理するためのアプローチです。たとえば、フロントエンド・バックエンド・データベースなどの各アプリケーションを1つのGitリポジトリで管理し、統一したデプロイフローを実現します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: sample-app spec: project: default source: repoURL: https://github.com/your-repo/app-config.git targetRevision: HEAD path: apps/sample-app destination: server: https://kubernetes.default.svc namespace: default |
このファイルでは、アプリケーションのリポジトリ位置やデプロイ先クラスタを指定しています。
Gitリポジトリへの配置手順
アプリケーション定義ファイルをGitリポジトリに配置する際は、以下の手順を実施してください:
- リモートリポジトリを作成(GitHubやGitLabで)
- 設定ファイルを
apps/ディレクトリ配下に配置 - 変更をコミットしてプッシュする
このようにすることで、Argo CDは自動的に変更を検知しデプロイを行います。
クラスタとの接続と認証設定
Argo CDサーバーがクラスターに接続できるようにするには、認証情報を適切に登録する必要があります。
Argo CDサーバーの初期設定
以下のようにargocd CLIを使用して初期設定を行います:
|
1 2 |
argocd login <argo-cd-server>:<port> |
ログイン後は、ユーザー認証情報を変更可能です(argocd account update-passwordコマンド使用)。
クラスターの認証情報登録手順
クラスターにアクセスするために、kubeconfigファイルをArgo CDサーバーに適用します。
kubectl config viewで現在の設定情報を取得-
クラスタ情報を
argocd cluster addコマンドで登録する
bash
argocd cluster add <cluster-server> --insecure-skip-tls-verify -
TLS証明書が存在する場合は、証明書を同期する
デプロイ自動化フローの構築
GitOpsの仕組みを活用することで、変更を検知して自動デプロイすることが可能です。
ウェブホックによる変更検知
GitHubやGitLabなどでウェブホックを設定すると、リポジトリに変更があるたびにArgo CDがデプロイを開始します。
| ツール | 有効なイベント | 対応方法 |
|---|---|---|
| GitHub Webhook | push, pull_request | argocd app setコマンド使用 |
| GitLab CI | pipeline実行 | Argo CD CLIと連携 |
自動デプロイパイプライン設計
CI/CDツール(例:GitHub Actions、Jenkins)と連携することで、自動リリースフローを構築できます。以下が例です:
- コード変更→プッシュ
- CIでテスト実行
- テスト成功したら、Argo CDにアプリケーション設定を更新
- Argo CDが自動的にデプロイ
エラーハンドリングとトラブルシューティング
Argo CDの導入・運用においては、エラーに対応する仕組みを構築しておく必要があります。
よくあるデプロイ失敗ケース
| エラー内容 | 対策 |
|---|---|
| リソースが存在しない | kubectl getで確認 |
| アクセス権限不足 | RBAC設定を再確認 |
| Gitリポジトリ接続失敗 | URL・アカウント情報を再確認 |
Argo CDのログ確認手順
以下のコマンドでログを確認できます:
|
1 2 |
kubectl logs -n argocd <pod-name> |
また、Argo CD UIからアプリケーションのsync statusもリアルタイムで確認可能です。ポリシー違反時の自動ロールバック機能も有効にしておくと、運用ミスに強い環境が構築できます。
まとめ
本記事では、以下のような内容を解説しました:
- Argo CD導入前の準備(クラスター確認・ツールインストール)
- Argo CDのインストール方法(Helmと手動デプロイ)
- GitOpsによるアプリケーション設定ファイル作成(YAML構造・リポジトリ配置)
- クラスタとの接続と認証設定(CLIでの初期化・kubeconfig適用)
- デプロイ自動化フローの設計(ウェブホック・CI/CD連携)
- エラーハンドリングとトラブルシューティング(失敗ケース対策・ログ確認)
これらの手順を参考に、自身の環境でArgo CDによるアプリケーションデプロイを試してみてください。