環境
- Kubernetes 1.24
ArgoCDで何ができるとかは他の記事に腐るほど書いてあるので、ここではArgoCDの構築メモ
インストール
公式サイトを見ましょう
kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.4.7/manifests/install.yaml
完全に機能するまでには少し時間かかる
ServiceのタイプをLoadBalancerに変更してアクセスできるようにする
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}' service/argocd-server patched
ブラウザアクセスで確認
IP確認 ここでは「192.168.16.31」
kubectl get svc argocd-server -n argocd NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE argocd-server LoadBalancer 10.111.221.140 192.168.16.31 80:31698/TCP,443:30200/TCP 4m38s
初期パスワードを確認
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo RrhFMie3-ibKn-ER
https://192.168.16.31 にブラウザにアクセスして admin / RrhFMie3-ibKn-ER でログインできる
ArgoCD CLIのインストール
MacからargocdコマンドでArgoCDの操作ができるようにする
インストール
brew install argocd
さっきのIPを指定してログイン
argocd login 192.168.16.31 WARNING: server certificate had error: x509: “Argo CD” certificate is not trusted. Proceed insecurely (y/n)? y Username: admin Password: 'admin:login' logged in successfully Context '192.168.16.31' updated
デプロイして確認
guestbookという有名なサンプルがあるので試してみる
追加
kubectl create ns test argocd app create guestbook --repo https://github.com/argoproj/argocd-example-apps.git --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace test
確認 この段階ではまだSyncしてないので「Health Status:Missing」になるはず
argocd app get guestbook Name: guestbook Project: default Server: https://kubernetes.default.svc Namespace: test URL: https://10.0.0.212/applications/guestbook Repo: https://github.com/argoproj/argocd-example-apps.git Target: Path: guestbook SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: OutOfSync from (53e28ff) Health Status: Missing GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service test guestbook-ui OutOfSync Missing apps Deployment test guestbook-ui OutOfSync Missing
いざsync
argocd app sync guestbook TIMESTAMP GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE 2022-07-21T11:28:11+09:00 Service test guestbook-ui OutOfSync Missing 2022-07-21T11:28:11+09:00 apps Deployment test guestbook-ui OutOfSync Missing 2022-07-21T11:28:12+09:00 Service test guestbook-ui Synced Healthy 2022-07-21T11:28:12+09:00 Service test guestbook-ui Synced Healthy service/guestbook-ui created 2022-07-21T11:28:12+09:00 apps Deployment test guestbook-ui OutOfSync Missing deployment.apps/guestbook-ui created 2022-07-21T11:28:12+09:00 apps Deployment test guestbook-ui Synced Progressing deployment.apps/guestbook-ui created Name: guestbook Project: default Server: https://kubernetes.default.svc Namespace: test URL: https://10.0.0.212/applications/guestbook Repo: https://github.com/argoproj/argocd-example-apps.git Target: Path: guestbook SyncWindow: Sync Allowed Sync Policy: <none> Sync Status: Synced to (53e28ff) Health Status: Progressing Operation: Sync Sync Revision: 53e28ff20cc530b9ada2173fbbd64d48338583ba Phase: Succeeded Start: 2022-07-21 11:28:11 +0900 JST Finished: 2022-07-21 11:28:12 +0900 JST Duration: 1s Message: successfully synced (all tasks run) GROUP KIND NAMESPACE NAME STATUS HEALTH HOOK MESSAGE Service test guestbook-ui Synced Healthy service/guestbook-ui created apps Deployment test guestbook-ui Synced Progressing deployment.apps/guestbook-ui created
せっかくなのでguestbookもサービスタイプをLoadBalancerに変更してアクセスできるようにする
kubectl patch svc guestbook-ui -p '{"spec": {"type": "LoadBalancer"}}' -n test
これで http://192.168.16.32/ にアクセスするとファンシー?な画面が出るはず
adminの初期パスワードを変更
argocd account update-password