Otama's Playground > サーバー > ArgoCDをCLIとHelmで簡単導入!Kubernetes環境でGUIにアクセスするまでの手順

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

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

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

前提

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

手順

ArgoCDを導入

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

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

Bash
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をいじります。

Bash
kubectl get svc argocd-server -n argocd

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

YAML
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が出ますが無視しましょう。以下のような画面が出れば成功です。

ログインしてみる

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

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

ログイン

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

  • user: admin
  • password: 先ほど取得したパスワード

気になりポイント

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

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

Bash
kubectl edit configmap argocd-cm -n argocd

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

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

終わり

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

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

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です