Argo CDの基本的な構築方法:初めてのGitOps

前提条件

Argo CDをインストールするには、以下の環境が整っている必要があります。

  1. Kubernetesクラスターが稼働していること
    • kubectlを使用してクラスターと通信できる。
    • もしまだクラスターを作成していない場合はkubesprayで簡単にクラスターを作成した記事を書いておりますのでそちらもご覧ください。
  2. Helmがインストールされていること
    • まだインストールしていない場合は以下のコマンドでインストールします。
      curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Argo CD のインストール手順

Namespace の作成

Argo CD専用のNamespaceを作成します。

kubectl create namespace argocd

Helmリポジトリの追加

Argo CDのHelmチャートを使用するためにリポジトリを追加します。

helm repo add argo https://argoproj.github.io/argo-helm
helm repo update

Argo CD のインストール

以下のコマンドでArgo CDをインストールします。

helm install argocd argo/argo-cd --namespace argocd

インストールが完了したら、以下のコマンドでリソースの状態を確認できます。

kubectl get all -n argocd

Argo CD の外部アクセス設定

Argo CDのデフォルト設定では、外部からアクセスできません。NodePortまたはLoadBalancerを使用して外部アクセスを有効にします。

NodePortでの公開

argocd-serverのServiceを編集してtype: NodePortに変更します。

kubectl edit svc argocd-server -n argocd

設定後、以下のコマンドでNodePort番号を確認します。

kubectl get svc argocd-server -n argocd

表示されるNodePortを使い、以下の形式でArgo CDにアクセスできます。

http://ノードのIP:NodePort

以下例
http://192.168.100.121:30808

以下のようにArgoCDのサイトが表示されていたら成功です。

Argo CDへのログイン

初期パスワードの取得は以下のコマンドで

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

初期ユーザー名はadminです。

このようにログインできたら成功です。(guestbookは次にデプロイするサンプルアプリケーションです)

サンプルアプリケーションのデプロイ

サンプルリポジトリの内容を確認

GitHub - argoproj/argocd-example-apps: Example Apps to Demonstrate Argo CD
Example Apps to Demonstrate Argo CD. Contribute to argoproj/argocd-example-apps development by creating an account on GitHub.

このリポジトリの中からguestbookをデプロイしてみます

サンプルリポジトリをArgo CDに登録

ログインしたあとに左上にあるNEW APPをクリックします。

以下を入力します。

アプリケーション設定

以下の内容を入力します

  • Application Name: guestbook
  • Project: default
  • Sync Policy: ManualまたはAutomatic
  • Repository URL: https://github.com/argoproj/argocd-example-apps
  • Revision: HEAD(デフォルトブランチ)
  • Path: guestbook
  • Cluster URL: https://kubernetes.default.svc
  • Namespace: default

それ以外のところは空白もしくはデフォルトのままでOKです。

Createボタンをクリックすると作成できます。

作成したアプリケーションをクリックすると詳細が表示され、上にSyncというボタンがあるのでクリックし、SYNCHRONIZEボタンを押すと以下のようになります。これでデプロイ完了です。

全部緑であれば正常に動いています。黄色や赤色の表示があるとどこかおかしいかもしれません。

構築したpodなどをクリックすると以下のように詳細を見れたりします。おかしい箇所があればここのログなどで調査ができます。おかしい箇所を見つけてコードを修正してgitにpushしてまたArgocdでSyncしなおすことでCI/CDができます。

今回はArgoCDを構築してみました。kubernetesクラスター環境をせっかく作ったのでもっと遊んでみようと思います。

タイトルとURLをコピーしました