GitOpsを実現するツールArgo CDを試した
Kubernetesにおけるデプロイ方法はGitOpsがデファクトスタンダードになったと思います。
GitOpsを実現するツールの中で、今回はArgo CDの使い方を紹介します。
内容
セットアップ
Argo CDをインストールします。
$ kubectl create namespace argocd $ kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Argo CDのCLIツールをインストールします。
$ brew install argocd
ポートフォワーディングでArgo CDのWebアプリケーションに接続できるようにします。
$ kubectl port-forward svc/argocd-server -n argocd 8080:443
デフォルトユーザのパスワードを変更する
デフォルトユーザはadmin
になります。
下記のコマンドで取得できるpod名がadmin
の デフォルトパスワードになります。
$ kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server -o name | cut -d'/' -f 2
パスワードを変更します。
$ argocd login 127.0.0.1:8080 $ argocd account update-password
使い方
Argo CDのWebアプリケーションを使います。
$ open https://localhost:8080
ユーザ名admin
、先ほど変更したパスワードでログインします。
プライベートリポジトリを扱うには、リポジトリの設定を行います。
Repositoriesを選択します。
CONNECT REPO USING SSH または CONNECT REPO USING HTTPSでリポジトリを登録します。
正常に登録完了するとCONNECTION STATUSがSuccessfulとなり、リポジトリが表示されます。
New APPボタンでデプロイするアプリケーションを作成します。
KustomizeやHelmを認識して、各ツール独自の設定内容を変更することができます。
アプリケーションを作成後にSyncボタンを押すとリポジトリにあるマニフェストの内容でデプロイが行われます。
手動でSyncを実行しなくても定期的にリポジトリの内容がポーリングされて、Syncが行われます。
同じArgo ProjectのツールであるArgo Rolloutsを利用すると、Argo CDのUIからResumeボタンを使ってカナリアデプロイのStepを進めることができます。
まとめ
今回試してみてArgo CDを利用すると、ある程度簡単かつ、スマートなデプロイフローになると思いました。
また、Web UIでデプロイ状況が可視化できるのが便利です。