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