๐ŸŒ CAPI ยท ClusterClass ยท CAREN(Nutanix) ยท Flux๋กœ Kubernetes ์šด์˜ ๋ณต์žก๋„ ๋์žฅ๋‚ด๊ธฐ: ์™„์ „ ์ž๋™ํ™”!

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

[์ถœ์ฒ˜] See CNCF On-Demand: Simplifying Cluster and Application Lifecycle (CAPI, CAREN and Gitops) at CNCF CNCF Online Programs

3 Likes