ArgoCDについて勉強したいと思っていたので、まずは使える環境を用意したいと思います。
- ArgoCDとは
- Kubernetes環境を用意する
- ArgoCDをインストールする
- GitHubレポジトリを登録する
ArgoCDとは
ArgoCDの定義は、公式サイトで以下の記述があります。
Argo CDは、Kubernetes用の宣言型GitOps継続的デリバリーツールです。
引用元:ArgoCD公式サイト
GitOpsという言葉は、Cloud Native Computing Foundationのカンファレンスで紹介された開発手法です。コマンドラインツールを用いず、Gitにpushした変更をKubernetesのリソースに反映することで、開発の自動化、オペミスの削減、プルリクエストの承認によるガバナンス強化などのメリットをもたらします。
ArgoCDは、GitOpsを実現するのに必要な機能を提供するツールで、以下の内容を補います。
アプリケーションの定義、構成、および環境は、宣言的でバージョン管理されている必要があります。アプリケーションのデプロイメントとライフサイクル管理は、自動化され、監査可能で、理解しやすいものでなければなりません。
引用元:ArgoCD公式サイト
Kubernetes環境を用意する
Kubernetes環境にはMicroK8s for MacOSを利用します。
MicroK8sの公式サイトは以下のURLです。
MicroK8sはのインストールは以下の記事でインストール済みです。
ArgoCDをインストールする
公式サイトを参考に、ArgoCDをMicroK8s上にインストールします。
ArgoCD用のnamespaceを作成します。
ubuntu@microk8s-vm:~$ microk8s.kubectl create namespace argocd namespace/argocd created
以下のコマンドで、ArgoCDに必要なリソースを作成します。
ubuntu@microk8s-vm:~$ microk8s.kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml customresourcedefinition.apiextensions.k8s.io/applications.argoproj.io created customresourcedefinition.apiextensions.k8s.io/appprojects.argoproj.io created serviceaccount/argocd-application-controller created serviceaccount/argocd-dex-server created serviceaccount/argocd-server created role.rbac.authorization.k8s.io/argocd-application-controller created role.rbac.authorization.k8s.io/argocd-dex-server created role.rbac.authorization.k8s.io/argocd-server created clusterrole.rbac.authorization.k8s.io/argocd-application-controller created clusterrole.rbac.authorization.k8s.io/argocd-server created rolebinding.rbac.authorization.k8s.io/argocd-application-controller created rolebinding.rbac.authorization.k8s.io/argocd-dex-server created rolebinding.rbac.authorization.k8s.io/argocd-server created clusterrolebinding.rbac.authorization.k8s.io/argocd-application-controller created clusterrolebinding.rbac.authorization.k8s.io/argocd-server created configmap/argocd-cm created configmap/argocd-rbac-cm created configmap/argocd-ssh-known-hosts-cm created configmap/argocd-tls-certs-cm created secret/argocd-secret created service/argocd-dex-server created service/argocd-metrics created service/argocd-redis created service/argocd-repo-server created service/argocd-server-metrics created service/argocd-server created deployment.apps/argocd-application-controller created deployment.apps/argocd-dex-server created deployment.apps/argocd-redis created deployment.apps/argocd-repo-server created deployment.apps/argocd-server created
Podが全てRunningになっていることが確認できれば、インストール完了です。
ubuntu@microk8s-vm:~$ microk8s.kubectl get pods -n argocd -w NAME READY STATUS RESTARTS AGE argocd-application-controller-5cfb8d686c-fzkzk 1/1 Running 0 5m15s argocd-dex-server-5cf8dd69f5-qc4j2 1/1 Running 0 5m14s argocd-redis-6d7f9df848-cmmg5 1/1 Running 0 5m14s argocd-repo-server-56b75988dc-9vkk8 1/1 Running 0 5m14s argocd-server-6766455855-w6tx8 1/1 Running 0 5m14s
Argoにアクセスする必要があるので、ServiceのタイプをClusterIPからNodePortに変更します。以下のコマンドでエディタを開き、spec.typeをNodePortに編集して保存します。
ubuntu@microk8s-vm:~$ microk8s.kubectl get svc argocd-server -n argocd NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-server ClusterIP 10.152.183.4 <none> 80/TCP,443/TCP 24m ubuntu@microk8s-vm:~$ microk8s.kubectl edit svc argocd-server -n argocd service/argocd-server edited ubuntu@microk8s-vm:~$ microk8s.kubectl get svc argocd-server -n argocd NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-server NodePort 10.152.183.4 <none> 80:31946/TCP,443:30001/TCP 29m
上記の場合、https://[multipass-vmのIP]:30001でアクセスすると以下の画面になります。初期ユーザーID/パスワードは、admin/[ArgoCDのpod名]でした。

GitHubレポジトリを登録する
試しに一つArgoCDにGitHubを登録してみます。
ログイン後、「設定」タブから「Repositories」をクリックします。

「CONNECT REPO USING HTTP」をクリックします。

「Type」をgitにして、「Repository URL」「Username(optional)」「Password(optional)」を入力し、「CONNECT」をクリックします。

同期が完了すると以下のように登録されます。

以上です。今日はインストールだけにして、明日以降また色々と試してみたいと思います。
コメント
コメントは停止中です。