😸
シン・お家クラウドを構築する【2】- HAなArgoCDのセットアップ編
前回のあらすじ…
MetalLBをセットアップした!
以上!
やること
ArgoCDとか呼ばれるKubernetesユーザならおなじみのCDツールをHA構成で導入していく。
ArgoCDって何なのか?
TODO:
手順
1. Namespaceを作る
kubectl create ns argocd
ArgoCDをデプロイするネームスペースを作る。ここにデプロイするぞ~
2. ArgoCDをApplyする
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.10.7/manifests/ha/install.yaml
当時最新のv2.10.7をapplyしてます。リリースについてはこちらから。
kubectl get pods -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 12d
argocd-applicationset-controller-749957bcc9-cgj75 1/1 Running 0 12d
argocd-dex-server-868bf8bc97-44f46 1/1 Running 0 12d
argocd-notifications-controller-5fff689764-c8zwn 1/1 Running 0 12d
argocd-redis-ha-haproxy-546c8d69d5-2l8vz 1/1 Running 0 12d
argocd-redis-ha-haproxy-546c8d69d5-rcbzp 1/1 Running 0 12d
argocd-redis-ha-haproxy-546c8d69d5-v67rh 1/1 Running 0 12d
argocd-redis-ha-server-0 2/2 Running 0 12d
argocd-redis-ha-server-1 2/2 Running 0 12d
argocd-redis-ha-server-2 2/2 Running 0 12d
argocd-repo-server-7984fb9d8b-7bnl2 1/1 Running 0 12d
argocd-repo-server-7984fb9d8b-x96rf 1/1 Running 0 12d
argocd-server-5cd4579cb6-jchjs 1/1 Running 0 10d
argocd-server-5cd4579cb6-rhw2c 1/1 Running 0 10d
全部がRunningになるまで待とう!
WebUIにアクセスしたい。
kubectl get svc -n argocd
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
argocd-applicationset-controller ClusterIP 10.110.26.103 <none> 7000/TCP,8080/TCP 12d
argocd-dex-server ClusterIP 10.111.188.113 <none> 5556/TCP,5557/TCP,5558/TCP 12d
argocd-metrics ClusterIP 10.96.182.124 <none> 8082/TCP 12d
argocd-notifications-controller-metrics ClusterIP 10.109.0.105 <none> 9001/TCP 12d
argocd-redis-ha ClusterIP None <none> 6379/TCP,26379/TCP 12d
argocd-redis-ha-announce-0 ClusterIP 10.101.140.45 <none> 6379/TCP,26379/TCP 12d
argocd-redis-ha-announce-1 ClusterIP 10.109.140.202 <none> 6379/TCP,26379/TCP 12d
argocd-redis-ha-announce-2 ClusterIP 10.99.19.130 <none> 6379/TCP,26379/TCP 12d
argocd-redis-ha-haproxy ClusterIP 10.105.95.244 <none> 6379/TCP 12d
argocd-repo-server ClusterIP 10.100.22.0 <none> 8081/TCP,8084/TCP 12d
argocd-server ClusterIP 10.101.240.204 <none> 80:32615/TCP,443:30333/TCP 12d
argocd-server-metrics ClusterIP 10.97.250.191 <none> 8083/TCP 12d
多分今こんな感じになってると思う。
ここからk8s外からアクセスするには大体3通り、
- portforwardする
- argocd-serverのServiceTypeをLoadBalancerにする
- ingressをデプロイする
一旦簡単にできる2の方でやっていく。
# `.spec.type`の値を ClusterIPから LoadBalancerに変えるだけでイケる
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'
# argocd-server LoadBalancer 10.101.240.204 10.0.100.1 80:32615/TCP,443:30333/TCP 12d
argo-serverにExternal-IPが振られたらそこにアクセス。
ああ見慣れた画面。
初期passwordを取得する。
初期パスワードは、secret/argocd-initial-admin-secretの .data.passwordに格納してある。
kubectl -n argocd get secret/argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d && echo
こんな感じにやるといい感じに取得できるはずなので
username | password |
---|---|
admin | さっき取得したやつ |
でログイン押すとログインできる!
まとめ
一旦ArgoCDはセットアップできたので今後はこいつを使っていろいろ必要な奴デプロイしていこう!
Discussion