😸

シン・お家クラウドを構築する【2】- HAなArgoCDのセットアップ編

2024/04/19に公開

前回のあらすじ…

https://zenn.dev/murasame29/articles/0dd158020c65e4
k8sをセットアップした!
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通り、

  1. portforwardする
  2. argocd-serverのServiceTypeをLoadBalancerにする
  3. 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