Kubernetes Tools/ArgoCD

[Ep.5] [GitOps์™€ Argo CD์˜ ๊ธฐ์ดˆ #5] Argo CD ์„ค์น˜ ๊ฐ€์ด๋“œ: Helm์„ ํ™œ์šฉํ•ด Kubernetes์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

ygtoken 2025. 3. 17. 13:05
728x90

๐Ÿ”น Argo CD ์„ค์น˜ ๊ฐœ์š”

Argo CD๋ฅผ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • kubectl์„ ์ด์šฉํ•œ ์ˆ˜๋™ ์„ค์น˜
  • YAML ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ง์ ‘ ์ ์šฉ
  • Helm Chart๋ฅผ ํ™œ์šฉํ•œ ๋ฐฐํฌ (์ถ”์ฒœ ๋ฐฉ๋ฒ•)

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Helm Chart๋ฅผ ํ™œ์šฉํ•˜์—ฌ Argo CD๋ฅผ Kubernetes์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
Helm์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ค์น˜๊ฐ€ ๊ฐ„ํŽธํ•˜๊ณ , ๊ตฌ์„ฑ์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•ํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


๐Ÿ”น Argo CD ์„ค์น˜๋ฅผ ์œ„ํ•œ ์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ

โœ… 1. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์ค€๋น„

Argo CD๋Š” Kubernetes ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ, ์‚ฌ์ „์— ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ค€๋น„๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ํ™•์ธ
kubectl cluster-info
kubectl get nodes

โœ… 2. Helm ์„ค์น˜ ํ™•์ธ

Helm์€ Kubernetes์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ, Helm Chart๋ฅผ ์ด์šฉํ•ด Argo CD๋ฅผ ์†์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Helm์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
helm version

 

Helm์ด ์„ค์น˜๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# Helm ์„ค์น˜ (Linux/Mac)
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

๐Ÿ”น Helm์„ ์‚ฌ์šฉํ•œ Argo CD ์„ค์น˜

โœ… 1. Argo CD Helm Chart ์ €์žฅ์†Œ ์ถ”๊ฐ€

๋จผ์ €, Argo CD์˜ Helm Chart ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

helm repo add argo https://argoproj.github.io/argo-helm
helm repo update

โœ… 2. Argo CD ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ

Argo CD๋ฅผ ๋ฐฐํฌํ•  ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

kubectl create namespace argocd

โœ… 3. Helm Chart๋ฅผ ์ด์šฉํ•œ Argo CD ์„ค์น˜

์ด์ œ Helm์„ ์‚ฌ์šฉํ•˜์—ฌ Argo CD๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

helm install argocd argo/argo-cd --namespace argocd

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด Argo CD์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ(API ์„œ๋ฒ„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ, ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ ์„œ๋ฒ„ ๋“ฑ)๊ฐ€ ์ž๋™์œผ๋กœ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์„ค์น˜ ํ›„, ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

kubectl get pods -n argocd

 

์ถœ๋ ฅ ์˜ˆ์‹œ:

NAME                                     READY   STATUS    RESTARTS   AGE
argocd-application-controller-0          1/1     Running   0          2m
argocd-dex-server-769c9db6bd-wzcq6       1/1     Running   0          2m
argocd-redis-6cf9dbd7bc-5nxx8            1/1     Running   0          2m
argocd-repo-server-848fc7fd64-pvbj8      1/1     Running   0          2m
argocd-server-6cf9dbd7bc-lwqz8           1/1     Running   0          2m

๐Ÿ”น Argo CD ์ดˆ๊ธฐ ์„ค์ • ๋ฐ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

โœ… 1. Argo CD ์„œ๋ฒ„ ํฌํŠธ ํฌ์›Œ๋”ฉ (๋กœ์ปฌ์—์„œ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•)

๊ธฐ๋ณธ์ ์œผ๋กœ Argo CD๋Š” argocd-server๋ผ๋Š” ์„œ๋น„์Šค๋กœ ๋ฐฐํฌ๋˜๋ฉฐ, ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๋ ค๋ฉด ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

kubectl port-forward svc/argocd-server -n argocd 8080:443

์ด์ œ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ https://localhost:8080์œผ๋กœ ์ ‘์†ํ•˜๋ฉด Argo CD UI์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ… 2. ์ดˆ๊ธฐ ๊ด€๋ฆฌ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ

Argo CD์˜ ๊ธฐ๋ณธ ๊ด€๋ฆฌ์ž ๊ณ„์ •์€ admin์ด๋ฉฐ, ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” argocd-initial-admin-secret์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 --decode

 

์ถœ๋ ฅ ์˜ˆ์‹œ:

s3cr3tPa$$w0rd

 

์ด์ œ Argo CD UI์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • URL: https://localhost:8080
  • Username: admin
  • Password: ์œ„์—์„œ ํ™•์ธํ•œ ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ

๋กœ๊ทธ์ธ ํ›„์—๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

argocd login localhost:8080
argocd account update-password

๐Ÿ”น Argo CD Ingress ์„ค์ • (๋„๋ฉ”์ธ์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ)

๊ธฐ๋ณธ์ ์œผ๋กœ Argo CD๋Š” LoadBalancer ๋˜๋Š” Ingress๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
Helm Chart์—์„œ values.yaml์„ ์ˆ˜์ •ํ•˜๋ฉด Ingress ์„ค์ •์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

server:
  ingress:
    enabled: true
    hosts:
      - argocd.example.com
    paths:
      - /
    tls:
      - secretName: argocd-tls
        hosts:
          - argocd.example.com

 

์ด์ œ Helm์„ ์‚ฌ์šฉํ•ด Ingress๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

helm upgrade argocd argo/argo-cd --namespace argocd -f values.yaml

์ดํ›„ argocd.example.com์œผ๋กœ ์ ‘์†ํ•˜๋ฉด Argo CD UI์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”น Helm ์„ค์น˜ ํ›„ ์ฃผ์š” ๋ช…๋ น์–ด ์ •๋ฆฌ

๋ช…๋ น์–ด ์„ค๋ช…

helm install argocd argo/argo-cd --namespace argocd Argo CD ์„ค์น˜
helm list -n argocd Argo CD ์„ค์น˜ ํ™•์ธ
helm upgrade argocd argo/argo-cd --namespace argocd Argo CD ์„ค์ • ๋ณ€๊ฒฝ ํ›„ ์—…๊ทธ๋ ˆ์ด๋“œ
helm uninstall argocd -n argocd Argo CD ์‚ญ์ œ

๐Ÿ”น ๊ฒฐ๋ก : ์ด๋ฒˆ ๊ธ€์—์„œ ๋ฐฐ์šด ํ•ต์‹ฌ ๋‚ด์šฉ ์ •๋ฆฌ

๐ŸŸข Helm Chart๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Argo CD๋ฅผ ์†์‰ฝ๊ฒŒ ๋ฐฐํฌ ๊ฐ€๋Šฅ
๐ŸŸข ํฌํŠธ ํฌ์›Œ๋”ฉ, LoadBalancer, Ingress๋ฅผ ํ™œ์šฉํ•˜์—ฌ Argo CD UI์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•™์Šต
๐ŸŸข ์ดˆ๊ธฐ ๊ด€๋ฆฌ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ๋ฐ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ํ•„์š”
๐ŸŸข Helm์„ ์‚ฌ์šฉํ•œ Argo CD ์„ค์น˜ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ช…๋ น์–ด ์ •๋ฆฌ

728x90