곡지
λ‰΄μŠ€λ ˆν„° ν”Œλž«νΌ λ³€κ²½ μ•ˆλ‚΄

CICD

πŸ”­GitOps 툴 Argo CD의 v2.11 μ—…λ°μ΄νŠΈ!

GitOps 툴둜 널리 μ“°μ΄λŠ” Argo CDκ°€ v2.11둜 μ—…λ°μ΄νŠΈλ©λ‹ˆλ‹€.

2024.04.15 | 쑰회 946 |
0
|

μ•ˆλ…•ν•˜μ„Έμš” κ΅¬λ…μžλ‹˜, μ΅œμ‹  DevOps μ†Œμ‹μ„ μ •λ¦¬ν•΄μ„œ κ³΅μœ ν•΄λ“œλ¦¬λŠ” DevOps 여행을 μœ„ν•œ μ†Œμ‹μ§€μž…λ‹ˆλ‹€.

봄이 μ˜€λ‚˜ ν–ˆλ”λ‹ˆ 슬금슬금 λ”μ›Œμ§€λŠ” 4μ›”μΈλ°μš”. 

이번 μ†Œμ‹μ§€μ—μ„œλŠ” Argo CD의 v2.11 μ—…λ°μ΄νŠΈμ— λŒ€ν•΄ 닀뀄볼 μ˜ˆμ •μž…λ‹ˆλ‹€. μ§€λ‚œ 1μ›” μ†Œμ‹μ§€μ—μ„œ Argo CD의 v2.10 μ—…λ°μ΄νŠΈμ— λŒ€ν•΄ 닀룬 적이 μžˆμ—ˆλŠ”λ°μš”. κ·Έ ν›„λ‘œ μ–΄λŠμƒˆ 3κ°œμ›”μ΄ μ§€λ‚¬μœΌλ‹ˆ μ‹œκ°„μ΄ μ°Έ λΉ λ₯΄λ‹€λŠ” 생각이 λ“­λ‹ˆλ‹€.πŸ˜…

μ§€λ‚œ Argo CD의 v2.10 μ—…λ°μ΄νŠΈμ— λŒ€ν•΄ κΆκΈˆν•˜μ‹œλ‹€λ©΄ μ—¬κΈ°μ„œ ν™•μΈν•΄λ³΄μ„Έμš”.

μ΄λ²ˆμ—λŠ” Argo CD와 GitOps에 λŒ€ν•΄ μ’€ 더 μ‚΄νŽ΄λ³Έ λ‹€μŒ μ΅œμ‹  μ—…λ°μ΄νŠΈ μ†Œμ‹μ„ μ†Œκ°œν•΄λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

 

πŸ“Git λ ˆνŒŒμ§€ν† λ¦¬ 기반으둜 μ„œλΉ„μŠ€λ₯Ό μš΄μ˜ν•˜λŠ” GitOps νŒ¨ν„΄

GitOpsλŠ” CI/CDλ₯Ό Git 기반으둜 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ νŒ¨ν„΄μž…λ‹ˆλ‹€.
GitOpsλŠ” CI/CDλ₯Ό Git 기반으둜 μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ νŒ¨ν„΄μž…λ‹ˆλ‹€.

Argo CD의 곡식 ν™ˆνŽ˜μ΄μ§€μ—μ„œλŠ” Argo CDλ₯Ό Kubernetes 기반의 GitOps 툴이라고 μ†Œκ°œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. κ·Έλ ‡λ‹€λ©΄ GitOpsλž€ λ¬΄μ—‡μΌκΉŒμš”? Gitκ³Ό Opsλ₯Ό λ‚˜λˆ μ„œ 생각해보면 쒀더 μ‰½κ²Œ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ¨Όμ € Git은 μš°λ¦¬κ°€ κ°œλ°œμ— ν”νžˆ μ‚¬μš©ν•˜κ³  μžˆλŠ” μ½”λ“œ ν˜•μƒ 관리 νˆ΄μž…λ‹ˆλ‹€. 참고둜 이λ₯Ό 원격 μ €μž₯μ†Œμ—μ„œ 관리할 수 μžˆλŠ” μ†”λ£¨μ…˜ 쀑 ν•˜λ‚˜κ°€ GitHub이죠.

OpsλŠ” Operation의 μ€„μž„λ§μ΄λ©° μ„œλΉ„μŠ€ 운영 및 관리λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

즉, GitOpsλŠ” μ„œλΉ„μŠ€λ₯Ό 배포할 λ•Œ μ‚¬μš©λ˜λŠ” μ½”λ“œλ₯Ό Git을 μ΄μš©ν•΄ κ΄€λ¦¬ν•˜λŠ” 기법이라고 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

Kubernetes ν΄λŸ¬μŠ€ν„°μ— μ„œλΉ„μŠ€λ₯Ό λ°°ν¬ν•˜λŠ” 경우λ₯Ό 예둜 λ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μš°λ¦¬κ°€ k8s ν΄λŸ¬μŠ€ν„°μ— μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•œλ‹€λ©΄ Service, Deployment, ConfigMap λ“± λ‹€μ–‘ν•œ Kubernetes κ΄€λ ¨ Manifest νŒŒμΌλ“€μ΄ μžˆμ–΄μ•Ό ν•  ν…λ°μš”.

배포에 ν•„μš”ν•œ νŒŒμΌλ“€μ„ Git μ €μž₯μ†Œμ— 관리λ₯Ό ν•˜λŠ” κ°œλ…μ΄ GitOpsμž…λ‹ˆλ‹€.

GitOps νŒ¨ν„΄μ„ μ΄μš©ν•  경우, ν•˜λ‚˜μ˜ μ €μž₯μ†Œμ—μ„œ 배포에 ν•„μš”ν•œ νŒŒμΌλ“€μ„ ν•¨κ»˜ 관리할 수 μžˆμ–΄ νŒ€μ›λ“€μ΄ ν˜‘μ—…ν•˜κΈ°μ— μš©μ΄ν•˜κ³  일관성 μžˆλŠ” 배포가 κ°€λŠ₯ν•˜λ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. 

 

πŸ™GitOps νŒ¨ν„΄μœΌλ‘œ Kubernetes 기반 배포가 κ°€λŠ₯ν•œ Argo CD

Argo CD의 κΈ°λ³Έ λŒ€μ‹œλ³΄λ“œμ—μ„œλŠ” ν˜„μž¬ k8s ν΄λŸ¬μŠ€ν„°μ— 배포된 μ„œλΉ„μŠ€λ“€μ„ μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
Argo CD의 κΈ°λ³Έ λŒ€μ‹œλ³΄λ“œμ—μ„œλŠ” ν˜„μž¬ k8s ν΄λŸ¬μŠ€ν„°μ— 배포된 μ„œλΉ„μŠ€λ“€μ„ μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆκΉŒμ§€ GitOps νŒ¨ν„΄μ— λŒ€ν•΄ μ•Œμ•„λ΄€λŠ”λ°μš”. κ·Έλ ‡λ‹€λ©΄ Kubernetes ν΄λŸ¬μŠ€ν„°μ— μ„œλΉ„μŠ€λ₯Ό 배포할 λ•Œ GitOps 기반 Argo CDλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ 얻을 수 μžˆλŠ” μž₯점엔 무엇이 μžˆμ„κΉŒμš”?  

  • μœ„μ—μ„œλ„ 잠깐 μ‚΄νŽ΄λ³Έ κ²ƒμ²˜λŸΌ, Kubernetes ν™˜κ²½μ— μ„œλΉ„μŠ€λ₯Ό 배포할 λ•Œ ν•„μš”ν•œ νŒŒμΌλ“€μ„ 단일 μ €μž₯μ†Œμ—μ„œ 관리할 수 μžˆμ–΄ 일관성 μžˆλŠ” 배포가 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • λ˜ν•œ Git μ €μž₯μ†Œμ˜ 파일 버전 관리 κΈ°λŠ₯을 ν™œμš©ν•  수 μžˆμ–΄ μƒˆλ‘œ μˆ˜μ •ν•œ νŒŒμΌμ— λ¬Έμ œκ°€ μžˆμ„ 경우 이전 λ²„μ „μ˜ 파일둜 λ³΅μ›μ‹œν‚€κΈ°λ„ μš©μ΄ν•©λ‹ˆλ‹€.
  • λ§ˆμ§€λ§‰μœΌλ‘œ Argo CDμ—μ„œ μ œκ³΅ν•˜λŠ” λŒ€μ‹œλ³΄λ“œλ₯Ό 톡해 배포 ν˜„ν™© 및 μ—¬λŸ¬ 정보λ₯Ό μ‰½κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

Argo CDλŠ” λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μ„€μΉ˜ κ°€λŠ₯ν•©λ‹ˆλ‹€. 곡식 Gitμ—μ„œ Kubernetes yaml νŒŒμΌμ„ λ‹€μš΄λ°›κ±°λ‚˜, Command Line ν™˜κ²½(CLI)μ—μ„œ νŒ¨ν‚€μ§€λ‘œ λ‹€μš΄λ°›μ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ ‡κ²Œ μ„€μΉ˜λœ Argo CDλŠ” Kubernetes ν΄λŸ¬μŠ€ν„° λ‚΄μ—μ„œ λ™μž‘ 쀑인 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 계속 λͺ¨λ‹ˆν„°λ§ν•©λ‹ˆλ‹€. Argo CDλŠ” Git μ €μž₯μ†Œμ— μ €μž₯된 νŒŒμΌλ“€μ˜ λ³€ν™”λ₯Ό Webhook으둜 감지할 수 있기 λ•Œλ¬Έμ—, Gitμ—μ„œ PR Merge둜 μ—…λ°μ΄νŠΈλœ νŒŒμΌμ„ κ°μ§€ν•˜μ—¬ 이에 맞좰 μžλ™μœΌλ‘œ μƒˆλ‘œ 배포할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 

즉, Argo CDλŠ” Git μ €μž₯μ†Œμ— μ €μž₯된 배포 κ΄€λ ¨ νŒŒμΌλ“€μ˜ μƒνƒœλ₯Ό 계속 ν™•μΈν•˜λ©΄μ„œ μ‹€μ œ 배포 ν˜„ν™©κ³Ό Syncλ₯Ό λ§žμΆ”λŠ” 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

 

κ·Έλ ‡λ‹€λ©΄ Argo CD의 v2.11 μ—…λ°μ΄νŠΈμ—μ„  μ–΄λ–€ λ³€ν™”κ°€ μžˆμ—ˆμ„κΉŒμš”?

  • 배포λ₯Ό μ‹œμž‘ν•œ μ‚¬μš©μž 이름 ν‘œμ‹œ κΈ°λŠ₯ μΆ”κ°€
    • Argo CDμ—μ„œ auto-sync κΈ°λŠ₯을 μ‚¬μš©ν•˜μ§€ μ•Šκ³  배포된 μ„œλΉ„μŠ€μ˜ 경우, κΈ°μ‘΄μ—λŠ” 배포 μ‹œμ μ˜ Git Hash κ°’ μ™Έμ—λŠ” 배포 μ‹œμ μ— κ΄€ν•œ 별닀λ₯Έ 정보가 ν‘œμ‹œλ˜μ§€ μ•Šμ•˜λŠ”λ°μš”.
    • 이번 μ—…λ°μ΄νŠΈ μ΄ν›„λΆ€ν„°λŠ” λ°°ν¬ν•œ μ‚¬μš©μžμ˜ 이름이 ν‘œμ‹œλ˜μ–΄ νŽΈμ˜μ„±μ„ λ†’μ˜€μŠ΅λ‹ˆλ‹€.
  • λ‹€μ–‘ν•œ μ†ŒμŠ€(Multi-source)λ‘œλΆ€ν„° μ •μ˜λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 지원 고도화
    • Argo CD v2.6λΆ€ν„° Multi-sourceλ₯Ό ν™œμš©ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ •μ˜ κΈ°λŠ₯이 μ§€μ›λ˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 곡개 μ €μž₯μ†Œμ˜ Helm chart와 λΉ„κ³΅κ°œ μ €μž₯μ†Œμ˜ values νŒŒμΌμ„ Argo CDλ₯Ό 톡해 ν•¨κ»˜ λ°›μ•„μ™€μ„œ μ‘°ν•© ν›„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•˜λŠ” κΈ°λŠ₯μΈλ°μš”.
    • Argo CD CLI와 UI 쀑 일뢀 μ˜μ—­μ—μ„  Multi-source둜 μ •μ˜λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ Single-source둜 μ •μ˜λœ κ²ƒμœΌλ‘œ μ·¨κΈ‰λ˜μ–΄μ™”μŠ΅λ‹ˆλ‹€.
    • ν•˜μ§€λ§Œ 이번 v2.11 μ—…λ°μ΄νŠΈ 이후뢀턴 Argo CD CLI μƒμ—μ„œ 더 λ§Žμ€ λͺ…λ Ήμ–΄κ°€ Multi-source둜 μ •μ˜λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 지원할 μ˜ˆμ •μž…λ‹ˆλ‹€.

 

πŸ”­λ§ˆμΉ˜λ©°...

이번 μ†Œμ‹μ§€μ—μ„  Argo CD의 μ΅œμ‹  μ†Œμ‹μ„ μ†Œκ°œν•˜λ©΄μ„œ GitOps와 Argo CD에 λŒ€ν•΄μ„œλ„ κ°„λž΅νžˆ λ‹€λ€„λ³΄μ•˜μŠ΅λ‹ˆλ‹€.  

ν˜Ήμ‹œ 이번 λ‚΄μš© κ΄€λ ¨ν•΄μ„œ 더 κΆκΈˆν•œ 점이 μžˆμœΌμ‹œλ‹€λ©΄ μ•„λž˜ 메일리 λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”.πŸ˜€

그럼, λ‹€μŒ μ†Œμ‹μ§€μ—μ„œ 보닀 μ•Œμ°¨κ³  ν₯미둜운 λ‚΄μš©μœΌλ‘œ μ°Ύμ•„λ΅™κ² μŠ΅λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€. 😺

 

πŸ”—References

 

 

이번 μ†Œμ‹μ§€ λ‚΄μš©μ€ μ–΄λ– μ…¨λ‚˜μš”? μ†Œμ‹μ§€λ₯Ό 더 λ‚˜μ€ λ°©ν–₯으둜 κ°œμ„ ν•˜κΈ° μœ„ν•΄ μ•„λž˜ νΌμ—μ„œ 1~2λΆ„ 정도면 λλ‚˜λŠ” 짧은 ν”Όλ“œλ°±μ„ λ°›κ³  μžˆμ–΄μš”.πŸ‘‡

https://forms.gle/jjkvp9htV3atYLHG8

μ—¬λŸ¬λΆ„λ“€μ˜ μ†Œμ€‘ν•œ μ˜κ²¬μ— 항상 κ°μ‚¬ν•©λ‹ˆλ‹€!

 

λ³Έ μ†Œμ‹μ§€λ₯Ό μ•„μΉ΄μ΄λΉ™ν•˜κ³  λ‹€μ–‘ν•œ 정보λ₯Ό κ³΅μœ ν•˜λŠ” λΈ”λ‘œκ·Έλ„ 운영 μ€‘μž…λ‹ˆλ‹€ :)

πŸ”­Aiden's Lab λ‘˜λŸ¬λ³΄κΈ°

 

λ‹€κ°€μ˜¬ λ‰΄μŠ€λ ˆν„°κ°€ κΆκΈˆν•˜μ‹ κ°€μš”?

μ§€κΈˆ κ΅¬λ…ν•΄μ„œ μƒˆλ‘œμš΄ λ ˆν„°λ₯Ό λ°›μ•„λ³΄μ„Έμš”

βœ‰οΈ

이번 λ‰΄μŠ€λ ˆν„° μ–΄λ– μ…¨λ‚˜μš”?

Aidens Lab λ‰΄μŠ€λ ˆν„° λ‹˜μ—κ²Œ β˜•οΈ 컀피와 βœ‰οΈ μͺ½μ§€λ₯Ό λ³΄λ‚΄λ³΄μ„Έμš”!

λŒ“κΈ€

μ˜κ²¬μ„ λ‚¨κ²¨μ£Όμ„Έμš”

확인
의견이 μžˆμœΌμ‹ κ°€μš”? 제일 λ¨Όμ € λŒ“κΈ€μ„ λ‹¬μ•„λ³΄μ„Έμš” !

λ‹€μŒ λ‰΄μŠ€λ ˆν„°

λ‹€λ₯Έ λ‰΄μŠ€λ ˆν„°

Β© 2026 Aidens Lab λ‰΄μŠ€λ ˆν„°

DevOps μ—”μ§€λ‹ˆμ–΄κ°€ μ—„μ„ ν•œ ν₯미둜운 IT 기술/업계 이야기λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

λ‰΄μŠ€λ ˆν„° 문의eduukulelekim@gmail.com

메일리 둜고

도움말 였λ₯˜ 및 κΈ°λŠ₯ κ΄€λ ¨ 제보

μ„œλΉ„μŠ€ 이용 문의admin@team.maily.so μ±„νŒ…μœΌλ‘œ λ¬Έμ˜ν•˜κΈ°

메일리 μ‚¬μ—…μž 정보

메일리 (λŒ€ν‘œμž: μ΄ν•œκ²°) | μ‚¬μ—…μžλ²ˆν˜Έ: 717-47-00705 | μ„œμšΈνŠΉλ³„μ‹œ μ†‘νŒŒκ΅¬ μœ„λ‘€κ΄‘μž₯둜 199, 5μΈ΅ 501-8호

μ΄μš©μ•½κ΄€ | κ°œμΈμ •λ³΄μ²˜λ¦¬λ°©μΉ¨ | μ •κΈ°κ²°μ œ μ΄μš©μ•½κ΄€ | λΌμ΄μ„ μŠ€