kubernetes_config_secret

์ปจํ”ผ๊ทธ๋งต๊ณผ ์‹œํฌ๋ฆฟ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ์„ค์ • ์˜ต์…˜์„ ์ปจํ”ผ๊ทธ๋งต์ด๋ผ ๋ถ€๋ฅด๋Š” ๋ณ„๋„ ์˜ค๋ธŒ์ ํŠธ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ”ผ๊ทธ๋งต์€ ์งง์€ ๋ฌธ์ž์—ด์—์„œ ์ „์ฒด ์„ค์ • ํŒŒ์ผ์— ์ด๋ฅด๋Š” ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ‚ค/๊ฐ’ ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋งต์ž…๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ•„์š”ํ•œ ํ™˜๊ฒฝ์„ค์ • ๋‚ด์šฉ์„ ์ปจํ…Œ์ด๋„ˆ์™€ ๋ถ„๋ฆฌํ•ด์„œ ์ œ๊ณตํ•ด ์ฃผ๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ : ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ž์›

  • ๋น„๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” API ๊ฐ์ฒด

    • image

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—์„œ ์„ค์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„๋ฆฌ(decouple)์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ฒƒ

    • image

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜์™€ ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ทธ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ’์„ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ปจํ”ผ๊ทธ๋งต์„ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—์„œ ํ•ด๋‹น ํ™˜๊ฒฝ์— ๊ตญํ•œ๋œ ์„ค์ •์„ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋””๋กœ๋“  ์‰ฝ๊ฒŒ ์ด์ „ ๊ฐ€๋Šฅ(portable)

  • ConfigMap์„ ๋ณ€๊ฒฝํ•˜๋”๋ผ๋„ Running ์ƒํƒœ์˜ Pod์— ๊ณง๋ฐ”๋กœ ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ Pod์„ ์žฌ๊ธฐ๋™ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •

    • ์„ค์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ์ปจํ”ผ๊ทธ๋งต(ConfigMap)์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ์ปจํ”ผ๊ทธ๋งต์„ ์‚ฌ์šฉํ•ด ์„ค์ • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ• ์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋‹ค์Œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

      • ์ปจํ…Œ์ด๋„ˆ์— ๋ช…๋ น์ค„ ์ธ์ˆ˜ ์ „๋‹ฌ

        • ๋ช…๋ น์ค„์ธ์ˆ˜ (command-line arguemnt) - ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” configmap ๊ฐ’์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๋ช…๋ น์ค„์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

      • ๊ฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ง€์ •

        • ํ™˜๊ฒฝ๋ณ€์ˆ˜ (environment variable) - configmap ์„ ์‚ฌ์šฉํ•ด ํ™˜๊ฒฝ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋™์ ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

      • ํŠน์ˆ˜ํ•œ ์œ ํ˜•์˜ ๋ณผ๋ฅจ์„ ํ†ตํ•ด ์„ค์ • ํŒŒ์ผ์„ ์ปจํ…Œ์ด๋„ˆ์— ๋งˆ์šดํŠธ

        • ํŒŒ์ผ ์‹œ์Šคํ…œ(filesystem) - pod์— configmap์„ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‚ค ์ด๋ฆ„์— ๋”ฐ๋ผ ๊ฐ ํ•ญ๋ชฉ์˜ ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉฐ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์€ ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ์— ๋ช…๋ น์ค„ ์ธ์ž ์ „๋‹ฌ

    • ๋„์ปค์—์„œ ๋ช…๋ น์–ด์™€ ์ธ์ž ์ •์˜

      • Dockerfile์—์„œ ๋‘ ๊ฐœ์˜ ์ง€์นจ

        • ENTRYPOINT๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ํ˜ธ์ถœ๋  ๋ช…๋ น์–ด๋ฅผ ์ •์˜ํ•จ

        • CMD๋Š” ENTRYPOINT์— ์ „๋‹ฌ๋˜๋Š” ์ธ์ž๋ฅผ ์ •์˜ํ•จ

        • ENTRYPOINT ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•˜๊ณ  ๊ธฐ๋ณธ ์ธ์ž๋ฅผ ์ •์˜ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ CMD๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ

  • ์ปจํ”ผ๊ทธ๋งต ์ƒ์„ฑ

    • $ kubectl create configmap my-config
         --from-file=foo.json
         --from-file=bar=foobar.conf
         --from-file=config-opts/
         --from-literal=some=thing
    • ๊ฐœ๋ณ„ ํŒŒ์ผ, ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ’์—์„œ ConfigMap ๋งŒ๋“ค๊ธฐ

      • image

  • ์‹œํฌ๋ฆฟ์œผ๋กœ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ์ „๋‹ฌ

    • ๋ณธ์งˆ์ ์œผ๋กœ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋Š” ์‹œํฌ๋ฆฟ์„ ์‚ฌ์šฉํ•ด ํ‚ค ์•„๋ž˜์— ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„ค์ • ํŒŒ์ผ์ด ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ์™€ ๊ทธ๋ ‡์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์‹œํฌ๋ฆฟ ์•ˆ์— ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฏผ๊ฐํ•˜์ง€ ์•Š๊ณ , ์ผ๋ฐ˜ ์„ค์ • ๋ฐ์ดํ„ฐ๋Š” ์ปจํ”ผ๊ทธ๋งต์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • image

    • ์ปจํ”ผ๊ทธ๋งต๊ณผ ์‹œํฌ๋ฆฟ ๋น„๊ต

      • ์‹œํฌ๋ฆฟ ํ•ญ๋ชฉ์˜ ๋‚ด์šฉ์€ Base64 ์ธ์ฝ”๋”ฉ ๋ฌธ์ž์—ด๋กœ ํ‘œ์‹œ๋˜๊ณ , ์ปจํ”ผ๊ทธ๋งต์˜ ๋‚ด์šฉ์€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฐ ํ•ญ๋ชฉ์„ ์„ค์ •ํ•˜๊ณ  ์ฝ์„ ๋•Œ๋งˆ๋‹ค ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ ์‹œํฌ๋ฆฟ ์•ˆ์— ์žˆ๋Š” YAML๊ณผ JSON ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

      • ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์‹œํฌ๋ฆฟ ์‚ฌ์šฉ

        • Base64 ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊นŒ๋‹ญ์€ ์‹œํฌ๋ฆฟ ํ•ญ๋ชฉ์— ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฐ’๋„ ๋‹ด์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Base64 ์ธ์ฝ”๋”ฉ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹์ธ YAML์ด๋‚˜ JSON ์•ˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Reference

  • https://www.oreilly.com/library/view/kubernetes-in-action/9781617293726/

  • https://www.oreilly.com/library/view/cloud-native-devops/9781492040750/

Last updated