μλ νμΈμ ꡬλ μλ, μ΅μ DevOps μμμ μ 리ν΄μ 곡μ ν΄λ리λ DevOps μ¬νμ μν μμμ§μ λλ€.
λ΄μ΄ μ€λ νλλ μ¬κΈμ¬κΈ λμμ§λ 4μμΈλ°μ.
μ΄λ² μμμ§μμλ Argo CDμ v2.11 μ λ°μ΄νΈμ λν΄ λ€λ€λ³Ό μμ μ λλ€. μ§λ 1μ μμμ§μμ Argo CDμ v2.10 μ λ°μ΄νΈμ λν΄ λ€λ£¬ μ μ΄ μμλλ°μ. κ·Έ νλ‘ μ΄λμ 3κ°μμ΄ μ§λ¬μΌλ μκ°μ΄ μ°Έ λΉ λ₯΄λ€λ μκ°μ΄ λλλ€.π
μ§λ Argo CDμ v2.10 μ λ°μ΄νΈμ λν΄ κΆκΈνμλ€λ©΄ μ¬κΈ°μ νμΈν΄λ³΄μΈμ.
μ΄λ²μλ Argo CDμ GitOpsμ λν΄ μ’ λ μ΄ν΄λ³Έ λ€μ μ΅μ μ λ°μ΄νΈ μμμ μκ°ν΄λλ¦¬κ² μ΅λλ€.
πGit λ νμ§ν 리 κΈ°λ°μΌλ‘ μλΉμ€λ₯Ό μ΄μνλ GitOps ν¨ν΄
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
μ§κΈκΉμ§ 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
μ견μ λ¨κ²¨μ£ΌμΈμ