Contents
Argo CD インストール 手順 Kubernetes:ローカル環境でのGitOps導入ガイド
Kubernetes運用環境を効率化するためのGitOpsワークフロー構築には、Argo CDが不可欠です。本記事では、ローカル環境からクラスタへの一連のインストール手順をステップバイステップで解説し、初心者でも実行可能な導入方法を提供します。
Kubernetesクラスター構築経験があるエンジニア層やDevOps担当者向けに、具体的なコマンドとセキュリティ設定のベストプラクティスまで網羅しています。
Kubernetesクラスターの事前準備手順
Argo CDをインストールするにはまず、Kubernetesクラスターが動作している必要があります。ローカル開発環境で利用可能なminikubeやDocker Desktop Kubernetesによる構築が一般的です。
minikubeを使用したローカルクラスタ構築
ローカルに仮想マシンを起動してKubernetesクラスターを構築します。以下はmacOSでの手順例です:
minikube startを実行し、クラスターを作成kubectl get nodesでノード状態を確認(Ready状態が表示されるまで待機)
Docker Desktop Kubernetesの有効化確認
Docker DesktopのKubernetes機能を使用する場合は以下の手順を実施:
- Docker Desktopを開き、「Kubernetes」タブでチェックボックスをONに
kubectl get nodesでクラスターが正しく動作することを確認
注意:いずれの環境でも、
kubectl version --shortでクライアントとサーバーのバージョンが一致しているかを必ず確認してください。
Argo CD CLIのインストール方法
Argo CDの操作にはCLIツールが必要です。macOSおよびLinux環境向けにHomebrewやwgetによる導入手順を記載します。
Homebrewによるインストール手順
macOSユーザーはHomebrew経由で簡単なインストールが可能です:
brew install argocdを実行argocd versionでバージョン確認(例: v2.7.0)
wget + バイナリ実行ファイルの導入
Linux環境では以下のように手動インストールできます:
-
公式サイトからバイナリをダウンロード:
bash
curl -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd-linux-amd64
sudo mv argocd-linux-amd64 /usr/local/bin/argocd -
argocd versionでインストール確認
Namespace作成とRBAC設定の基本
Argo CDをクラスターにデプロイする際は、Namespace分離と最小権限のRBAC設定がセキュリティ強化に不可欠です。
argo-cd用Namespaceの作成
|
1 2 |
kubectl create namespace argocd |
ClusterRoleとServiceAccountの定義
以下のようなYAMLでRBAC設定を適用します(最小限の権限を保証):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
apiVersion: v1 kind: ServiceAccount metadata: name: argocd-serviceaccount namespace: argocd --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: argocd-clusterrole rules: - apiGroups: [""] resources: ["secrets", "configmaps"] verbs: ["get", "list", "watch"] |
適用コマンド:
|
1 2 |
kubectl apply -f rbac.yaml |
HelmチャートによるArgo CDデプロイ
Helmチャートは、Argo CDのスケール可能な導入を可能にします。カスタム値ファイルでセキュリティ設定を適用する方法が推奨されます。
Helmリポジトリへの追加手順
|
1 2 3 |
helm repo add argocd https://argoproj.github.io/argo-helm helm repo update |
カスタム値ファイルの作成と適用
以下のようなvalues.yamlを作成し、セキュリティ強化を実施:
|
1 2 3 4 5 6 7 8 9 |
# values.yaml rbac: create: true clusterRole: rules: - apiGroups: [""] resources: ["secrets", "configmaps"] verbs: ["get", "list", "watch"] |
デプロイコマンド例:
|
1 2 |
helm install argocd argocd/argo-cd --namespace=argocd -f values.yaml |
初期管理者アカウントの取得方法
Argo CDの初期ログインには、管理者用パスワード生成とSecret参照が必須です。以下に手順を示します。
argo-cd CLIで管理者パスワード生成
|
1 2 |
argocd admin password generate |
出力されるトークンをメモし、後で使用します。
Secret参照による認証情報取得
クラスター内からSecret情報を確認するには:
|
1 2 |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d |
出力されるパスワードを初期ログインに使用します。
Webインターフェースへのアクセス手順
Argo CDのWebインターフェースは、ローカル環境でkubectl port-forwardを使用してアクセス可能です。
イングレスリソースの確認
|
1 2 |
kubectl -n argocd get svc argocd-server |
ClusterIPが表示される場合は、Port Forwardingが必要です。
ブラウザからの初期ログイン手順
以下を実行し、ブラウザでlocalhost:8080にアクセス:
|
1 2 |
kubectl port-forward svc/argocd-server -n argocd 8080:443 |
- ID: admin
- パスワード: 上記で取得した初期パスワードを入力
まとめ:ローカル環境でのGitOpsワークフロー体験
本記事では、Kubernetesクラスターの事前準備からWebインターフェースへのアクセスまでの一連の流れを解説しました。以下の手順が重要になります:
- Namespace分離と最小権限RBAC設定によりセキュリティ強化
- Helmチャートでスケーラブルなインストールを実現
- 初期アカウント生成とSecret参照でローカル環境での運用を開始
GitOpsワークフローの導入は、CI/CDプロセスの自動化とリソース管理の透明性向上に直接結びつきます。本記事の手順に従って実装することで、DevOpsエンジニアとしてのスキル向上が期待できます。