Cluster API (CAPI), CAREN, κ·Έλ¦¬κ³ GitOps-Flux CDλ₯Ό νμ©νμ¬ μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν°μ μ ν리μΌμ΄μ μ μλͺ μ£ΌκΈ° κ΄λ¦¬λ₯Ό λ¨μννκ³ μλννλ λ°©λ²μ λν΄ μμΈνκ² μ€λͺ ν μμ μλ£λ₯Ό 곡μ λ립λλ€. μλμ λ΄μ©μ μμμ λν μμ½ μ 보μ λλ€.
1. ν΄λ¬μ€ν° μλͺ μ£ΌκΈ° κ΄λ¦¬ (CAPI & CAREN)
- Cluster API (CAPI) μκ°
- μΏ λ²λ€ν°μ€ ν΄λ¬μ€ν° μ체λ₯Ό μ ν리μΌμ΄μ μ²λΌ **μ μΈμ (Declarative)**μΌλ‘ κ΄λ¦¬νλ νλ‘μ νΈμ λλ€.
- ν΄λ¬μ€ν° μμ±, νμ₯, μ
κ·Έλ μ΄λ, μμ λ± μ 체 μλͺ
μ£ΌκΈ°λ₯Ό μλννλ©°,
kubectlκ³Ό κ°μ μ΅μν λꡬλ₯Ό κ·Έλλ‘ μ¬μ©ν μ μμ΅λλ€. - AWS, Nutanix λ± λ€μν μΈνλΌ μ 곡μλ₯Ό μ§μνμ¬ μΌκ΄λ λ°©μμΌλ‘ μΈνλΌλ₯Ό κ΄λ¦¬ν©λλ€.
- Cluster Class (ν΄λ¬μ€ν° ν΄λμ€)
- λ€μμ ν΄λ¬μ€ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν μ²μ¬μ§(Blueprint) κ°λ μ λλ€.
- ν΄λ¬μ€ν°μ ꡬμ±(ν ν΄λ‘μ§)μ ν νλ¦Ώννμ¬ μ¬μ¬μ©ν¨μΌλ‘μ¨, μλ°± κ°μ ν΄λ¬μ€ν°λ μΌκ΄μ± μκ² μμ±νκ³ μ λ°μ΄νΈν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ°°ν¬ μκ°μ λ¨μΆνκ³ κ΅¬μ± μ€λ₯λ₯Ό λν μ€μΌ μ μμ΅λλ€.
- CAREN νλ μμν¬
- Cluster Classμ νμ€μ μ μ§νλ©΄μλ, λ°νμμ ν΄λ¬μ€ν° μ€μ μ λμ μΌλ‘ 컀μ€ν°λ§μ΄μ§ν μ μκ² ν΄μ£Όλ Nutanixμ νλ μμν¬μ λλ€.
- κΈ°λ³Έ ν νλ¦Ώμ μμ νμ§ μκ³ Mutation Hookμ μ¬μ©ν΄ νΉμ νκ²½(μ: 리μ λ³ λ€νΈμν¬ μ€μ )μ νμν ν¨μΉλ₯Ό μ μ©ν©λλ€.
2. μ ν리μΌμ΄μ μλͺ μ£ΌκΈ° λ° GitOps
- GitOpsμ Flux CD
- Git μ μ₯μλ₯Ό 'λ¨μΌ μ§μ€ 곡κΈμ(Single Source of Truth)'μΌλ‘ μΌμ μ ν리μΌμ΄μ κ³Ό ν΄λ¬μ€ν° μ€μ μ κ΄λ¦¬ν©λλ€.
- Flux CDμ μ£Όμ μ»΄ν¬λνΈ(Source, Kustomize, Helm, Notification 컨νΈλ‘€λ¬)λ€μ΄ νλ ₯νμ¬ λ³κ²½ μ¬νμ κ°μ§νκ³ ν΄λ¬μ€ν° μνλ₯Ό μλμΌλ‘ μΌμΉ(Reconcile)μν΅λλ€
- Kustomize νμ©
- Base(κΈ°λ³Έ) μ€μ κ³Ό Overlay(μ€λ²λ μ΄) ꡬ쑰λ₯Ό ν΅ν΄ κ°λ°, μ€ν μ΄μ§, μ΄μ λ± νκ²½λ³λ‘ λ€λ₯Έ μ€μ μ μ€λ³΅ μμ΄ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°©λ²μ μ€λͺ ν©λλ€.
- External Secrets Operator (ESO)
- AWS, GCP, Vault λ± μΈλΆ μ μ₯μμ λΉλ°(Secret)μ κ°μ Έμ ν΄λ¬μ€ν°μ λκΈ°ννμ¬ λ³΄μμ±μ λμ λλ€.
- Push Secret κΈ°λ₯μ ν΅ν΄ κ΄λ¦¬ ν΄λ¬μ€ν°μμ μν¬λ‘λ ν΄λ¬μ€ν°λ‘ νμν λΉλ°(μ: μ΄λ―Έμ§ ν μν¬λ¦Ώ)μ μλμΌλ‘ μ ννλ μ μ€μΌμ΄μ€λ₯Ό μκ°ν©λλ€.
3. λ°λͺ¨
- Fluxκ° μ€μΉλ ν΄λ¬μ€ν°μμ μμ€ μ»¨νΈλ‘€λ¬κ° OCI μ μ₯μλ₯Ό λͺ¨λν°λ§νκ³ , Kustomizeμ Helm 컨νΈλ‘€λ¬λ₯Ό ν΅ν΄ μ€μ 리μμ€κ° λ°°ν¬λκ³ μ‘°μ λλ κ³Όμ μ μμ°ν©λλ€.
[μΆμ² - μμ] https://youtu.be/SsKwOBXs6Y0