ArgoCDをHelmで簡単導入!Kubernetes環境でGUIにアクセスするまでの手順

3分で読了
更新日
Progress 5 / 18
目次

最近、「そろそろGitOpsっぽい運用をやってみたいなぁ」と思い始めました。手動でkubectl applyとかするの、正直だんだん面倒になってきますし…。
ということで、ArgoCDを使ってGitOpsの第一歩を踏み出してみよう!と思ったのですが、導入のハードルがちょっと高く感じて、なかなか腰が重かったんですよね。

今回は、**「とりあえずコマンドだけでArgoCDを入れて、GUIをローカルから覗けるようにする」**というところまでを、シンプルにやってみようと思います。Bootstrappingとかリポジトリ追加とか、そのへんはまた別の記事で!まずはArgoCDの顔を見ることを目標に、最短距離でやっていきます。

前提

kubernetesは導入済であるとします。まだの方は以下とかを参考にどうぞ

おうちKubernetesを構築してみた話【kubeadm + CRI-O + Cilium】

>-

blog.otama-playground.com

手順

ArgoCDを導入

ラクをするためにhelmを使います

参考: https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd

Terminal window
kubectl create namespace my-namespace
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd --namespace argocd

ArgoCD ServiceのtypeをNodePortに変更する

CLIでmanifestをいじります。

Terminal window
kubectl get svc argocd-server -n argocd

以下の箇所を修正。ポート番号を省略した場合は自動で割り振られます。

spec:
ports:
- name: http
nodePort: 30992 # 行を追加(任意)
port: 80
protocol: TCP
targetPort: 8080
- name: https
nodePort: 30080 # 行を追加(任意)
port: 443
protocol: TCP
targetPort: 8080
type: NodePort # ClusterIPから変更

※ デフォルトのエディタがvimなので慣れてない人は頑張ってください。とりあえず以下を把握してれば編集はできそうな気がします。

  • i 編集モードに移動する
  • esc 編集モードから出る
  • :w 保存する
  • :q エディタを終了する
  • :wq 保存して終了
  • :q! 強制的に終了

GUIにアクセスする

ブラウザからhttps://{NodeのIPアドレス}:30080にアクセスしてみます。オレオレ証明書なので接続時にwarningが出ますが無視しましょう。以下のような画面が出れば成功です。

GUIにアクセスする 1
GUIにアクセスする 1

ログインしてみる

管理者用の初期パスワードを取得

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

ログイン

以下の情報でログインする

  • user: admin
  • password: 先ほど取得したパスワード
ArgoCD ログイン後の画面
ArgoCD ログイン後の画面

気になりポイント

ログアウト後にexample.argocd.comに遷移する

configmapに設定項目があるので修正します。

Terminal window
kubectl edit configmap argocd-cm -n argocd

以下の箇所を実際の値に変更。

data:
# https://argocd.example.comから変更
url: https://{NodeのIPアドレス}:30080

終わり

というわけで、今回はArgoCDをとりあえずローカルで触ってみるところまでをCLIだけでやってみました。Helmでインストールして、ServiceのtypeをNodePortにして、GUIにアクセス。
ついでにログイン情報を拾って、ダッシュボードに入るところまでできれば、あとはもう「ArgoCD使ってる人」って名乗っていいんじゃないかと思います(たぶん)。

まだまだ「やりたいこと」はたくさんあるんですが、今回はこのへんでいったん一区切りにします。Bootstrappingとかアプリの自動同期とか、触ってみて「おっ」と思ったことはまた記事にしていく予定なので、よかったらまた遊びに来てください!