Kubernetes Tools/ArgoCD

[Ep.7] [Argo CD ์šด์˜ #2] Argo CD ์›น UI ํƒ์ƒ‰: ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ํ™œ์šฉ๋ฒ•

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

๐Ÿ”น Argo CD ์›น UI๋ž€?

Argo CD๋Š” ์›น UI, CLI, API๋ฅผ ํ†ตํ•ด Kubernetes ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ์ค‘ ์›น UI๋Š” ๋ฐฐํฌ ์ƒํƒœ๋ฅผ ์ง๊ด€์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ , ๋™๊ธฐํ™”(Sync) ๋ฐ ๋กค๋ฐฑ(Rollback) ๋“ฑ์˜ ์ž‘์—…์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

 

โœ… Argo CD ์›น UI์˜ ์ฃผ์š” ๊ธฐ๋Šฅ:
โœ” ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชฉ๋ก ๋ฐ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง
โœ” ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™๊ธฐํ™”(Sync) ๋ฐ ๋กค๋ฐฑ(Rollback)
โœ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค ํŠธ๋ฆฌ ๋ฐ ๋กœ๊ทธ ์กฐํšŒ
โœ” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ


๐Ÿ”น Argo CD ์›น UI ์ ‘์† ๋ฐฉ๋ฒ•

โœ… 1. ํฌํŠธ ํฌ์›Œ๋”ฉ์„ ์ด์šฉํ•œ ๋กœ์ปฌ ์ ‘์†

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

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

 

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

https://localhost:8080

โœ… 2. LoadBalancer ๋˜๋Š” Ingress๋ฅผ ์ด์šฉํ•œ ์™ธ๋ถ€ ์ ‘์†

ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” LoadBalancer ๋˜๋Š” Ingress๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Argo CD์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• 1: LoadBalancer ์„œ๋น„์Šค ๋…ธ์ถœ

kubectl get svc -n argocd

 

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

NAME            TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)
argocd-server   LoadBalancer   10.100.200.1     192.168.1.100   443:31234/TCP

์ด ๊ฒฝ์šฐ, https://192.168.1.100์œผ๋กœ ์ ‘์†ํ•˜๋ฉด Argo CD UI๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๋ฒ• 2: Ingress๋ฅผ ํ†ตํ•œ ๋„๋ฉ”์ธ ์ ‘๊ทผ

Helm์„ ์‚ฌ์šฉํ•˜์—ฌ Ingress๋ฅผ ์„ค์ •ํ•˜๋ฉด, https://argocd.example.com๊ณผ ๊ฐ™์ด ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

server:
  ingress:
    enabled: true
    hosts:
      - argocd.example.com

โœ… 3. Argo CD ๋กœ๊ทธ์ธ

Argo CD ์›น UI ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ admin ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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


๐Ÿ”น Argo CD ์›น UI ์ฃผ์š” ๊ธฐ๋Šฅ ์‚ดํŽด๋ณด๊ธฐ

โœ… 1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€์‹œ๋ณด๋“œ

๊ทธ๋ฆผ 1) argocd ๋Œ€์‹œ๋ณด๋“œ ์ดˆ๊ธฐํ™”๋ฉด

 

Argo CD ์›น UI์— ๋กœ๊ทธ์ธํ•˜๋ฉด, ๊ทธ๋ฆผ 1)๊ณผ ๊ฐ™์ด ํ˜„์žฌ ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชฉ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” **๋ฐฐํฌ ์ƒํƒœ(Sync Status)์™€ ๊ฑด๊ฐ• ์ƒํƒœ(Health Status)**๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

 

์ƒํƒœ ์„ค๋ช…
Synced ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Git ์ €์žฅ์†Œ์˜ ์„ ์–ธ๋œ ์ƒํƒœ์™€ ์ผ์น˜ํ•จ
OutOfSync ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Git ์ƒํƒœ์™€ ๋‹ค๋ฆ„ (์ˆ˜๋™/์ž๋™ ๋™๊ธฐํ™” ํ•„์š”)
Healthy ๋ชจ๋“  Kubernetes ๋ฆฌ์†Œ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ ์ค‘
Degraded ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์˜ค๋ฅ˜ ์ƒํƒœ
Missing ์„ ์–ธ๋œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์Œ

โœ… 2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ธ ํŽ˜์ด์ง€

๊ทธ๋ฆผ 2) ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ธ ํŽ˜์ด์ง€

 

๊ทธ๋ฆผ 2์™€ ๊ฐ™์ด ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํด๋ฆญํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐฐํฌ ์ƒํƒœ ๋ฐ ๋™๊ธฐํ™” ์ƒํƒœ ํ™•์ธ
  • ๊ฐ ๋ฆฌ์†Œ์Šค(Pod, Service, Deployment ๋“ฑ)์˜ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ์ด๋ฒคํŠธ ๋กœ๊ทธ ๋ฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ™•์ธ

โœ… 3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™๊ธฐํ™”(Sync) ๋ฐ ๋กค๋ฐฑ(Rollback)

๐Ÿ”น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™๊ธฐํ™”(Sync)

Git ์ €์žฅ์†Œ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋ฉด "OutOfSync" ์ƒํƒœ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
์ด๋•Œ "SYNC" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด Git์˜ ์ตœ์‹  ์ƒํƒœ๋กœ Kubernetes ๋ฆฌ์†Œ์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋ฆผ 3) History & Rollback ํ™”๋ฉด

 

๐Ÿ”น ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ๋กค๋ฐฑ(Rollback)

  • ๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด์ „ ์ƒํƒœ๋กœ ๋กค๋ฐฑ ๊ฐ€๋Šฅ
  • ๊ทธ๋ฆผ 3)๊ณผ ๊ฐ™์ด "HISTORY & ROLLBACK" ํƒญ์—์„œ ํŠน์ • ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  "ROLLBACK" ๋ฒ„ํŠผ ํด๋ฆญ

โœ… 4. ๋ฆฌ์†Œ์Šค ํŠธ๋ฆฌ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋กœ๊ทธ ์กฐํšŒ

 

๊ทธ๋ฆผ 4) Pod ๋กœ๊ทธ ํ™”๋ฉด

 

Argo CD UI์—์„œ๋Š” ์œ„์˜ ๊ทธ๋ฆผ 2)์™€ ๊ฐ™์ด ๊ฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌ๋˜์—ˆ๋Š”์ง€ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฆฌ์†Œ์Šค ํŠธ๋ฆฌ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ชจ๋“  Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ํ‘œ์‹œ
  • Pod ๋กœ๊ทธ ๋ณด๊ธฐ: ๊ทธ๋ฆผ 4)์™€ ๊ฐ™์ด ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธ

โœ… 5. ํ”„๋กœ์ ํŠธ ๋ฐ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

Argo CD๋Š” RBAC(Role-Based Access Control)๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ณ„ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœ์ ํŠธ(Project) ์ƒ์„ฑ: ํŠน์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ทธ๋ฃน์„ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ
  • ์‚ฌ์šฉ์ž(Role) ๋ฐ ๊ถŒํ•œ ์„ค์ •: ๊ฐœ๋ฐœ์ž, ๊ด€๋ฆฌ์ž ๋“ฑ ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด

๐Ÿ”น Argo CD ์›น UI ์ฃผ์š” ๊ธฐ๋Šฅ ์ •๋ฆฌ

 

๊ธฐ๋Šฅ  ์„ค๋ช…
๋Œ€์‹œ๋ณด๋“œ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชฉ๋ก ๋ฐ ์ƒํƒœ ํ™•์ธ
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ์„ธ ๋ณด๊ธฐ ๋ฐฐํฌ ์ƒํƒœ, ๋ฆฌ์†Œ์Šค ํŠธ๋ฆฌ, ๋กœ๊ทธ ํ™•์ธ
๋™๊ธฐํ™”(Sync) Git ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Kubernetes์— ๋ฐ˜์˜
๋กค๋ฐฑ(Rollback) ์ด์ „ ๋ฐฐํฌ ๋ฒ„์ „์œผ๋กœ ๋ณต๊ตฌ
๋ฆฌ์†Œ์Šค ํŠธ๋ฆฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์‹œ๊ฐํ™”
RBAC ๊ด€๋ฆฌ ํ”„๋กœ์ ํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ ‘๊ทผ ์ œ์–ด ์„ค์ •

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

๐ŸŸข Argo CD ์›น UI๋ฅผ ํ™œ์šฉํ•˜๋ฉด Kubernetes ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ง๊ด€์ ์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
๐ŸŸข ํฌํŠธ ํฌ์›Œ๋”ฉ, LoadBalancer, Ingress๋ฅผ ์ด์šฉํ•˜์—ฌ UI์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ• ํ•™์Šต
๐ŸŸข ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™๊ธฐํ™”(Sync), ๋กค๋ฐฑ(Rollback), ๋กœ๊ทธ ์กฐํšŒ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ UI์—์„œ ์‰ฝ๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅ
๐ŸŸข RBAC ์„ค์ •์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ๋ฐ ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

728x90