Kubernetes 1.34์—์„œ KYAML ๋„์ž… ๐Ÿš€

KYAML(Kubernetes YAML)์€ ์ „ํ†ต์ ์ธ ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฐฉ์‹ ๋Œ€์‹  {}์™€ []๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋Š” JSON ์Šคํƒ€์ผ์˜ YAML ํ•˜์œ„ ์ง‘ํ•ฉ์ด์—์š”.

๋ฌธ์ž์—ด์€ ํ•ญ์ƒ "๋กœ ๊ฐ์‹ธ์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ”ํ•œ ํƒ€์ž… ๋ณ€ํ™˜ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ์ ์œผ๋กœ๋„ ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๊ธฐ์กด์˜ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ธฐ๋ฐ˜ ๋ธ”๋ก ๋Œ€์‹  ๋ช…ํ™•ํ•œ ๊ด„ํ˜ธ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜๋ผ, ๊ณต๋ฐฑ ๋•Œ๋ฌธ์— ๊นจ์ง€๋Š” ๋ฌธ์ œ๋ฅผ ์›์ฒœ์ ์œผ๋กœ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

KYAML์ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ :collision:

๊ธฐ์กด Kubernetes YAML์€ DevOps ํŒ€์„ ๊ดด๋กญํžˆ๋Š” ์—ฌ๋Ÿฌ ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • โ€œNorway Problemโ€์œผ๋กœ ์•Œ๋ ค์ง„ NO โ†’ boolean false ๋ณ€ํ™˜ ๋ฌธ์ œ
  • "yes", "11:00", ๋ฒ„์ „ ์ˆซ์ž ๋“ฑ์˜ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ํƒ€์ž… ๋ณ€ํ™˜
  • ๋“ค์—ฌ์“ฐ๊ธฐ ์˜ค๋ฅ˜๋กœ ์ธํ•œ ๋ฐฐํฌ ์‹คํŒจ ๋ฐ ํŒ€ ๊ฐ„ ์ถฉ๋Œ
  • Helm ํ…œํ”Œ๋ฆฟ์—์„œ ๋ณต์žกํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ด€๋ฆฌ({{ indent 4 }} ๋“ฑ)

์ด๋Ÿฐ ๋ฌธ์ œ๋“ค์€ ํ•˜๋ฃจ์—๋„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ฐฐํฌ ์‹ ๋ขฐ์„ฑ๊ณผ ์šด์˜ ํšจ์œจ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ์ฃผ๋ฒ”์ž…๋‹ˆ๋‹ค.


KYAML์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋ฐ ๋ณด์•ˆ ํ–ฅ์ƒ :locked_with_key:

  • ๋ช…์‹œ์  ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ๋กœ ํƒ€์ž… ๋ณ€ํ™˜ ์ทจ์•ฝ์  ์ œ๊ฑฐ
  • ๊ณต๋ฐฑ์— ์˜์กดํ•˜์ง€ ์•Š์•„ ์•…์˜์  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ˆจ๊ธฐ๊ธฐ ์–ด๋ ค์›€
  • ๋ณด์•ˆ ์Šค์บ๋„ˆ๊ฐ€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ์—์„œ ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘
  • OPA/Gatekeeper ์ •์ฑ… ์ ์šฉ ๋ฐ ๊ฒ€์ฆ ๊ฐ•ํ™”
  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๊ณต๋ฐฑ ์กฐ์ž‘์œผ๋กœ ์ธํ•œ ํ…œํ”Œ๋ฆฟ ์ธ์ ์…˜ ์ทจ์•ฝ์  ์ œ๊ฑฐ

๋„์ž… ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€ :hammer_and_wrench:

  • export KUBECTL_KYAML=true๋กœ ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•œ ์„ค์ •๋ถ€ํ„ฐ ์ ์ง„์ ์œผ๋กœ ์ „ํ™˜
  • Helm ํ…œํ”Œ๋ฆฟ์—์„œ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ด€๋ฆฌ๊ฐ€ ์‚ฌ๋ผ์ ธ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ„์†Œํ™”
  • ๊น”๋”ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ๋กœ ๋ถˆํ•„์š”ํ•œ diff ์ œ๊ฑฐ
  • pre-commit ํ›…๊ณผ Kubescape, Checkov ๊ฐ™์€ ๋ณด์•ˆ ์Šค์บ๋„ˆ ์—ฐ๊ณ„ ์ถ”์ฒœ

๋‹ค๋ฅธ ๋„๊ตฌ์™€์˜ ๋น„๊ต :balance_scale:

  • Helm๋ณด๋‹ค ๋‹จ์ˆœํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฌธ๋ฒ• ํ•™์Šต์ด ํ•„์š” ์—†์Œ
  • Kustomize์™€ ๋ณ‘ํ–‰ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (KYAML์€ ์•ˆ์ „ํ•œ ํฌ๋งท ์ œ๊ณต, Kustomize๋Š” ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ์ œ๊ณต)
  • Jsonnet, Dhall, Pulumi ๊ฐ™์€ ๋ณต์žกํ•œ ๋Œ€์•ˆ์— ๋น„ํ•ด ์ง„์ž…์žฅ๋ฒฝ์ด ๋‚ฎ์Œ
  • ๊ธฐ์กด ArgoCD, Flux, ๋ชจ๋“  YAML ์ฒ˜๋ฆฌ ํˆด์—์„œ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

์‹ค์ „ ํšจ๊ณผ ๋ฐ ์ฑ„ํƒ ์ „๋ง :seedling:

  • KYAML ์‚ฌ์šฉ ์‹œ ๋“ค์—ฌ์“ฐ๊ธฐ ์‹ค์ˆ˜๋กœ ์ธํ•œ ๋ฐฐํฌ ์˜ค๋ฅ˜ ๊ฐ์†Œ
  • GitOps ํ™˜๊ฒฝ์—์„œ ๋ช…ํ™•ํ•œ ๋ณ€๊ฒฝ ์ด๋ ฅ ํ™•๋ณด
  • ๋ณด์•ˆ ๊ฐ์‚ฌ ๋ฐ ์ธ์‹œ๋˜ํŠธ ๋Œ€์‘ ์‹œ ๋ถ„์„ ํšจ์œจ ์ฆ๊ฐ€
  • Kubernetes 1.34(2025๋…„ 8์›”)์—์„œ ์•ŒํŒŒ ์ง€์› ์˜ˆ์ •
  • 12~18๊ฐœ์›” ๋‚ด ์ฃผ์š” ๋„๊ตฌ ์ƒํƒœ๊ณ„์— ํ™•์‚ฐ ์˜ˆ์ƒ

[์ถœ์ฒ˜] https://medium.com/aws-in-plain-english/kyaml-kubernetes-gets-safer-configuration-6280eae46396

4 Likes