Kubernetes๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์Šค์ฟ ํ„ฐ๋ฅผ ํƒ„ ์†Œ๋…€. ์‚ฝํ™” Freepik, Nomad ๋กœ๊ณ  ํ•˜์‹œ ์ฝ”ํ”„

Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ 300ํŒŒ์šด๋“œ ๊ณ ๋ฆด๋ผ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์„ธ๊ณ„ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ์ปจํ…Œ์ด๋„ˆ ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ํ•˜์ง€๋งŒ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค.

๋งŽ์€ ์ง€์› ์‹œ๊ฐ„๊ณผ ๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ ์ด ํ•„์š”ํ•œ ์†Œ๊ทœ๋ชจ ํŒ€์˜ ๊ฒฝ์šฐ ํŠนํžˆ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” XNUMX๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋œ ์šฐ๋ฆฌ ํŒ€์—๊ฒŒ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ์˜ค๋ฒ„ํ—ค๋“œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋Œ€์•ˆ์„ ์ฐพ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์‚ฌ๋ž‘์— ๋น ์กŒ์Šต๋‹ˆ๋‹ค. ์œ ๋ชฉ๋ฏผ.

๋‹น์‹ ์€ ๋ฌด์—‡์„ ์›ํ•˜๋‚˜์š”

์šฐ๋ฆฌ ํŒ€์€ Go๋กœ ์ž‘์„ฑ๋œ ์ง€ํ‘œ์— ๋Œ€ํ•œ API ์—”๋“œํฌ์ธํŠธ, Prometheus ๋‚ด๋ณด๋‚ด๊ธฐ, Logstash์™€ ๊ฐ™์€ ๋กœ๊ทธ ํŒŒ์„œ ๋“ฑ ๋‹ค์–‘ํ•œ ์ผ๋ฐ˜์ ์ธ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ถ„์„ ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ณจ๋ฃธ, InfluxDB ๋˜๋Š” Elasticsearch์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ ์„œ๋น„์Šค๋Š” ์ž์ฒด ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์„ ๊ณ„์† ์‹คํ–‰ํ•˜๋ ค๋ฉด ๊ฐ„๋‹จํ•œ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ๋ชฉ๋ก๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ์ผ๋ จ์˜ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค ๊ฐœ์š”.
  • ์„œ๋น„์Šค ๊ฐ„ ๋งํฌ.
  • ์„œ๋น„์Šค๊ฐ€ ์ค‘๋‹จ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  • ์†Œ๊ทœ๋ชจ ํŒ€์— ์˜ํ•œ ์ธํ”„๋ผ ์œ ์ง€ ๊ด€๋ฆฌ.

๋˜ํ•œ ๋‹ค์Œ ์‚ฌํ•ญ๋„ ์ข‹์ง€๋งŒ ํ•„์ˆ˜ ์ถ”๊ฐ€ ์‚ฌํ•ญ์€ ์•„๋‹™๋‹ˆ๋‹ค.

  • ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ๊ณผ๋„ํ•œ I/O ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๋น ๋ฅธ ๋””์Šคํฌ๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์— ํƒœ๊ทธ ์ง€์ •).
  • ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ์™€ ๋…๋ฆฝ์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ(์˜ˆ: ๊ฐœ๋ฐœ ์ค‘)
  • ๊ตฌ์„ฑ๊ณผ ๋น„๋ฐ€์„ ๊ณต์œ ํ•˜๋Š” ๊ณตํ†ต ์žฅ์†Œ์ž…๋‹ˆ๋‹ค.
  • ์ธก์ •ํ•ญ๋ชฉ ๋ฐ ๋กœ๊ทธ์˜ ๋์ ์ž…๋‹ˆ๋‹ค.

Kubernetes๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์ด์œ 

Kubernetes๋กœ ํ”„๋กœํ† ํƒ€์ž…์„ ์ œ์ž‘ํ•˜๋ฉด์„œ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ์˜์กดํ•˜๋Š” ์ ์  ๋” ๋ณต์žกํ•œ ๋…ผ๋ฆฌ ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Kubernetes๋Š” ๋‹ค์Œ์„ ํ†ตํ•ด ๊ธฐ๋ณธ ์ œ๊ณต ์„œ๋น„์Šค ๊ตฌ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ปจํ”ผ๊ทธ๋งต. ํŠนํžˆ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋ณ‘ํ•ฉํ•˜๊ฑฐ๋‚˜ ํฌ๋“œ์— ์ถ”๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(๋˜๋Š” ์ง€๋ฐฐ ์ด ๊ฒฝ์šฐ)์„ ์‚ฌ์šฉํ•˜๋ฉด ์™ธ๋ถ€ ๊ตฌ์„ฑ์„ ๋™์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋กœ ์ธํ•ด ํ”„๋กœ์ ํŠธ์™€ Kubernetes ๊ฐ„์— ๊ธด๋ฐ€ํ•˜๊ณ  ์ˆจ๊ฒจ์ง„ ๊ฒฐํ•ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Helm๊ณผ ConfigMaps๋Š” ์ถ”๊ฐ€ ์˜ต์…˜์ด๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์„ Docker ์ด๋ฏธ์ง€์— ๋ณต์‚ฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ธธ์„ ๋”ฐ๋ผ๊ฐ€๋‹ค๊ฐ€ ๋‚˜์ค‘์— ํ›„ํšŒํ•  ์ˆ˜๋„ ์žˆ๋Š” ๋ถˆํ•„์š”ํ•œ ์ถ”์ƒํ™”๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ์œ ํ˜น์ ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ Kubernetes ์ƒํƒœ๊ณ„๋Š” ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฒ” ์‚ฌ๋ก€์™€ ์ตœ์‹  ๋„๊ตฌ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋ ค๋ฉด ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ์—๋„ˆ์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Kubectl, minikube, kubeadm, helm, Tiller, kops, oc - ๋ชฉ๋ก์€ ๊ณ„์†ํ•ด์„œ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์‹œ์ž‘ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ๋„๊ตฌ๊ฐ€ ๋ชจ๋‘ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ฌด์—‡์ด ํ•„์š”ํ• ์ง€ ๋ชจ๋ฅด๋ฏ€๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ํ•™์Šต ๊ณก์„ ์ด ์ƒ๋‹นํžˆ ๊ฐ€ํŒŒ๋ฅด๋‹ค.

Kubernetes๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

์šฐ๋ฆฌ ํšŒ์‚ฌ์—์„œ๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ƒ๋‹นํžˆ ๋งŒ์กฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์Šค๋Š” ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด์œ ํ•œ Google ๋˜๋Š” Amazon์—์„œ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ๋†€๋ผ์šด ๊ธฐ๋Šฅ, ๋Œ€๊ทœ๋ชจ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ โ€‹โ€‹๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒ์„ธํ•œ ๊ถŒ๋ฆฌ ๊ด€๋ฆฌ.
  • ๋งž์ถคํ˜• ์ปจํŠธ๋กค๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋กœ์ง์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ˆœํžˆ Kubernetes API์™€ ํ†ต์‹ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.
  • ์ž๋™ ํ™•์žฅ! Kubernetes๋Š” ์„œ๋น„์Šค ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™ ๊ฐœ์ž… ์—†์ด ํ•„์š”์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ์‹ค์ œ๋กœ ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ์ถ”์ƒํ™”์—๋งŒ ์˜์กดํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋„Œ ๋‚ด๋ถ€์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ด์•ผ ํ•  ๊ฑฐ์•ผ.

์šฐ๋ฆฌ ํŒ€์€ (์ฃผ ์ธํ”„๋ผ์™€์˜ ๊ธด๋ฐ€ํ•œ ์—ฐ๊ฒฐ๋กœ ์ธํ•ด) ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค๋ฅผ ์›๊ฒฉ์œผ๋กœ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ž์ฒด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹จ์ง€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํ„ฐ๋ฆฌ๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค

Nomad๋Š” ํ•„์š”ํ•œ ๊ฒƒ์˜ 20%๋ฅผ ์ œ๊ณตํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ 80%์ž…๋‹ˆ๋‹ค. ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์€ ๋ฐฐํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. Nomad๋Š” ๋ฐฐํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค.

Nomad์˜ ํ•ต์‹ฌ์€ ๊ทธ๊ฒƒ์ด ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜: ์„ธ๋ถ„ํ™”๋œ ๊ถŒํ•œ ๊ด€๋ฆฌ๊ฐ€ ์—†๊ฑฐ๋‚˜ ํ™•์žฅ๋œ ๋„คํŠธ์›Œํฌ ์ •์ฑ…, ์ด๊ฒƒ์€ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์™ธ๋ถ€์—์„œ ์ œ๊ณต๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Nomad๋Š” ์‚ฌ์šฉ ํŽธ์˜์„ฑ๊ณผ ์œ ์šฉ์„ฑ ์‚ฌ์ด์—์„œ ์™„๋ฒฝํ•œ ์ ˆ์ถฉ์•ˆ์„ ์ฐพ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ์˜ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์ง์ ‘ ํ‚ค์šฐ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ ๋ชฉ๋ฏผ์€ ๋ง‰ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ.

Nomad์˜ ๊ฐ€์žฅ ์ข‹์€ ์ ์€ ์‰ฝ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€์ฒดํ•˜๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋˜๋ฏ€๋กœ ๊ณต๊ธ‰์—…์ฒด์™€์˜ ์—ฐ๊ฒฐ์€ ์‚ฌ์‹ค์ƒ ์—†์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋จธ์‹ ์—์„œ ์ผ๋ฐ˜ ๋ฐ”์ด๋„ˆ๋ฆฌ์ฒ˜๋Ÿผ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค!

๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋œ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋œ ๋…ธ๋งˆ๋“œ ์ƒํƒœ๊ณ„

Nomad์˜ ์ง„์ •ํ•œ ๊ฐ•์ ์€ ์ƒํƒœ๊ณ„์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ œํ’ˆ(์™„์ „ํžˆ ์„ ํƒ ์‚ฌํ•ญ)๊ณผ ๋งค์šฐ ์ž˜ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์˜์‚ฌ (ํ‚ค-๊ฐ’ ์ €์žฅ์†Œ) ๋˜๋Š” ๋‘ฅ๊ทผ ์ฒœ์žฅ (๋น„๋ฐ€ ์ฒ˜๋ฆฌ). Nomad ํŒŒ์ผ์—๋Š” ๋‹ค์Œ ์„œ๋น„์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•œ ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

template {
  data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH

  destination = "secrets/file.env"
  env         = true
}

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ•ต์‹ฌ์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. service/geo-api/log-verbosity Consul์—์„œ ์ž‘์—… ์ค‘์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค. LOG_LEVEL. ์—ด์‡ ๋„ ์ œ์‹œํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค secret/geo-api-key Vault์—์„œ API_KEY. ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค!

๋‹จ์ˆœ์„ฑ์œผ๋กœ ์ธํ•ด Nomad๋Š” API๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž‘์—…์— ๋Œ€ํ•œ ํƒœ๊ทธ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ธก์ •ํ•ญ๋ชฉ์œผ๋กœ ๋ชจ๋“  ์„œ๋น„์Šค์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. trv-metrics. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ Prometheus๋Š” Consul์„ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ๊ณ  ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /metrics ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœํ‚ค.

ํ™•์žฅ์„ฑ์˜ ๋‹ค๋ฅธ ๋งŽ์€ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํ›„ํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Jenkins ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋ฉด Consul์€ ์„œ๋น„์Šค ๊ตฌ์„ฑ์ด ๋ณ€๊ฒฝ๋  ๋•Œ Nomad ์ž‘์—…์˜ ์žฌ๋ฐฐํฌ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  • Ceph๋Š” Nomad์— ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ๋น„์˜ค ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์œ„ํ•ด.

์ด ๋ชจ๋“  ๊ฒƒ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค ์ธํ”„๋ผ๋ฅผ ์œ ๊ธฐ์ ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๋‹ค ํŒ๋งค์ž์™€ ํŠน๋ณ„ํ•œ ์—ฐ๊ด€ ์—†์ด ๋ง์ด์ฃ .

๊ณต์ •ํ•œ ๊ฒฝ๊ณ 

์–ด๋–ค ์‹œ์Šคํ…œ๋„ ์™„๋ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๊ธฐ๋Šฅ์„ ํ”„๋กœ๋•์…˜์— ์ฆ‰์‹œ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์€ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฒ„๊ทธ์™€ ๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ Kubernetes์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Kubernetes์— ๋น„ํ•ด Nomad ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๊ทธ๋‹ค์ง€ ํฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Kubernetes์—๋Š” ์ด๋ฏธ ์•ฝ 75๊ฐœ์˜ ์ปค๋ฐ‹๊ณผ 000๋ช…์˜ ๊ธฐ์—ฌ์ž๊ฐ€ ์žˆ๊ณ  Nomad์—๋Š” ์•ฝ 2000๊ฐœ์˜ ์ปค๋ฐ‹๊ณผ 14๋ช…์˜ ๊ธฐ์—ฌ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Nomad๋Š” Kubernetes์˜ ์†๋„๋ฅผ ๋”ฐ๋ผ์žก๋Š” ๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ฒ ์ง€๋งŒ ์•„๋งˆ๋„ ๊ทธ๋Ÿด ํ•„์š”๋Š” ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์ด๋Š” ๋”์šฑ ์ „๋ฌธํ™”๋œ ์‹œ์Šคํ…œ์ด๋ฉฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ž‘์„์ˆ˜๋ก Kubernetes์— ๋น„ํ•ด ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ด ์ฃผ๋ชฉ๋˜๊ณ  ์ˆ˜๋ฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋” ๋†’๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

๊ฒฐ๋ก : ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋ชจ๋‘ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ Kubernetes๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ํ‰๊ฐ€ํ•˜๊ณ  ์–ด๋–ค ๋„๊ตฌ๊ฐ€ ๋” ์œ ์šฉํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”.

๋Œ€๊ทœ๋ชจ ์ธํ”„๋ผ์— ์ˆ˜๋งŽ์€ ๋™์ข… ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Kubernetes๊ฐ€ ์ข‹์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ๋ณต์žก์„ฑ๊ณผ ์šด์˜ ๋น„์šฉ์ด ์ถ”๊ฐ€๋œ๋‹ค๋Š” ์ ๋งŒ ์œ ์˜ํ•˜์„ธ์š”. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ด€๋ฆฌํ˜• Kubernetes ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ถ€ ๋น„์šฉ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—”์ง„ ๋˜๋Š” ์•„๋งˆ์กด EKS.

์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๊ณ  ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด Nomad๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์€ ์–ด๋–จ๊นŒ์š”? ์ด๊ฒƒ์ด ๋‹น์‹ ์„ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ๋ฐ๋ ค๊ฐˆ์ง€ ๋†€๋ž„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Kubernetes๋ฅผ ์ž๋™์ฐจ์— ๋น„์œ ํ•œ๋‹ค๋ฉด Nomad๋Š” ์Šค์ฟ ํ„ฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ํ•œ ๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•˜๊ณ  ๋•Œ๋กœ๋Š” ๋‹ค๋ฅธ ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์กด์žฌํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€