Kubernetes

๐Ÿ”ญ[๋””์ž์ธ ํŒจํ„ด ํŠน์ง‘] Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด ์†Œ๊ฐœ

์ด๋ฒˆ์ฃผ ์†Œ์‹์ง€๋Š” Kubernetes์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด 4๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2024.10.28 | ์กฐํšŒ 103 |
0
|

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ตฌ๋…์ž๋‹˜, DevOps ์†Œ์‹๊ณผ ๊ธฐ์ˆ  ์ง€์‹์„ ์ •๋ฆฌํ•ด์„œ ๊ณต์œ ํ•ด๋“œ๋ฆฌ๋Š” DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€์ž…๋‹ˆ๋‹ค.

 

โ˜๏ธKubernetes ์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด์ด๋ž€?

๋””์ž์ธ ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋””์ž์ธํ•˜๋Š” ๊ณผ์ •์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋“ค์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ํ•ด๊ฒฐ์ฑ…์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ค‘์— ์ž์ฃผ ๋งˆ์ฃผ์น˜๋Š” ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„์ง€ ์œ ํ˜•๋ณ„๋กœ ์ •๋ฆฌ๋œ ๋””์ž์ธ ํŒจํ„ด์€, ํŠนํžˆ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ๋ฐ์š”.

์ „ํ†ต์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ปจํ…Œ์ด๋„ˆ ํ˜•ํƒœ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ ํŒจํ„ด๋„ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค, ์•Œ๊ณ  ๊ณ„์…จ๋‚˜์š”?

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€, Kubernetes์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€ํ‘œ์ ์ธ ์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด 4๊ฐ€์ง€๋ฅผ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ”Ž์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด ์•Œ์•„๋ณด๊ธฐ

์‚ฌ์ด๋“œ์นด(Sidecar) ํŒจํ„ด

์‚ฌ์ด๋“œ์นด ํŒจํ„ด์€ ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ ์ปจํ…Œ์ด๋„ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„, ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”.

Kubernetes์˜ Pod ๋‚ด๋ถ€์— ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ ์™ธ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์ด๋“œ์นด ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์›น์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋™์ž‘ ์ค‘์ธ Pod ๋‚ด์— ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ fluentd๋ฅผ ๋ณ„๋„ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ, ๊ธฐ์กด์— ๋™์ž‘ํ•˜๋˜ ์›น์„œ๋ฒ„์˜ ๋กœ๊ทธ๋ฅผ fluentd ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ˆ˜์ง‘ํ•˜๋Š” ์‹์ด์ฃ .

 

์•ฐ๋ฐฐ์„œ๋”(Ambassador) ํŒจํ„ด

์•ฐ๋ฐฐ์„œ๋” ํŒจํ„ด์€ Kubernetes์— ๋ฐฐํฌ๋œ ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์ „๋‹ดํ•˜๋Š” ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‘๋Š” ํŒจํ„ด์ธ๋ฐ์š”. ์ด ํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด, ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์€ ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋นผ๋‚ด๊ณ , ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณธ๋ž˜ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋Šฅ์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•ฐ๋ฐฐ์„œ๋” ํŒจํ„ด์œผ๋กœ ์ถ”๊ฐ€ํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ”„๋ก์‹œ(Proxy) ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ์š”. ์™ธ๋ถ€ ํ™˜๊ฒฝ๊ณผ ๋‚ด๋ถ€ ์„œ๋ฒ„ ์‚ฌ์ด์—์„œ ํ†ต์‹ ์ด ์˜ค๊ณ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€๊ต ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„์™€ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘ํ•ด์„œ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

Kubernetes ํ™˜๊ฒฝ์—์„œ ์•ฐ๋ฐฐ์„œ๋” ํŒจํ„ด ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š”, ๋™์ผํ•œ Pod ๋‚ด์—์„œ ๋™์ž‘ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋กœ Localhost๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

HTTP ์›น์„œ๋ฒ„๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” Nginx๋Š” ์•ฐ๋ฐฐ์„œ๋” ํŒจํ„ด์œผ๋กœ ์ถ”๊ฐ€ํ•˜ํ•˜๊ธฐ ์ข‹์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

์–ด๋Œ‘ํ„ฐ(Adapter) ํŒจํ„ด

์™ธ๋ถ€์™€์˜ ์—ฐ๊ฒฐ์„ ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ „๋‹ดํ•˜์—ฌ ๊ฐ„์†Œํ™”์‹œํ‚ค๋Š” ์•ฐ๋ฐฐ์„œ๋” ํŒจํ„ด๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด์€ ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์™ธ๋ถ€๋กœ ๋ณด๋‚ด๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ํ†ต์ผํ™”ํ•˜๋Š” ๋ฐ์— ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด์€ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ์™ธ๋ถ€ ์„œ๋น„์Šค์™€ ์—ฐ๋™ํ•  ๋•Œ ์™ธ๋ถ€ ์„œ๋น„์Šค์—์„œ ์š”๊ตฌํ•˜๋Š” ์–‘์‹์ด๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ์š”. ๊ธฐ์กด์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ทธ๋Œ€๋กœ ๋‘๋ฉด์„œ, ์ปจํ…Œ์ด๋„ˆ์—์„œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋ฌผ์„ ์™ธ๋ถ€ ๊ทœ๊ฒฉ์— ๋งž์ถ”๋Š” ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋™์ผํ•œ Pod ๋‚ด์— ๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋™์ž‘ ์ค‘์ธ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ Elasticsearch์˜ ์ƒํƒœ์™€ ๊ด€๋ จ๋œ ๋กœ๊ทธ๋ฅผ ์™ธ๋ถ€ ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด Prometheus ์„œ๋น„์Šค์— ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๋™์ผํ•œ Pod์— ๋ณ„๋„์˜ Prometheus Exporter ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Prometheus ๊ทœ๊ฒฉ์— ๋งž๋Š” Elasticsearch์˜ ์ƒํƒœ ๋กœ๊ทธ๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์ฃ .

 

์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ(Init Container) ํŒจํ„ด

์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ ํŒจํ„ด์€ ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ์ž‘์—…์„ ๋ณ„๋„์˜ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

Kubernetes์—์„  Pod์˜ ์ŠคํŽ™์„ ์ •์˜ํ•˜๋Š” Manifest์—์„œ 'initContainers'๋ผ๋Š” ํ•„๋“œ๋กœ ์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ ํŒจํ„ด์„ ์ •์‹์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ์กด ์ปจํ…Œ์ด๋„ˆ์˜ Elasticsearch ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ž‘ํ•˜๋ ค๋ฉด '/usr/share' ๋‚ด ํด๋”์˜ ์†Œ์œ ๊ถŒ์„ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋กœ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ๋ณ„๋„์˜ ์ดˆ๊ธฐํ™” ์ปจํ…Œ์ด๋„ˆ์—์„œ ํ•ด๋‹น ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ Elasticsearch ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒ๋‹ˆ๋‹ค.

 

๐Ÿ”ญ๋งˆ์น˜๋ฉฐ...

์ด๋ฒˆ ์†Œ์‹์ง€์—์„œ๋Š” ๋””์ž์ธ ํŒจํ„ด ํŠน์ง‘์œผ๋กœ Kubernetes์—์„œ ํ™œ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€ํ‘œ์ ์ธ ์ปจํ…Œ์ด๋„ˆ ๋””์ž์ธ ํŒจํ„ด 4๊ฐ€์ง€๋ฅผ ์‚ดํŽด๋ดค๋Š”๋ฐ์š”. 

ํ˜น์‹œ ์ด๋ฒˆ ๋‚ด์šฉ ๊ด€๋ จํ•ด์„œ ๋” ๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์•„๋ž˜ ๋ฉ”์ผ๋ฆฌ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.๐Ÿ˜€

๊ทธ๋Ÿผ, ๋‹ค์Œ ์†Œ์‹์ง€์—์„œ ๋ณด๋‹ค ์•Œ์ฐจ๊ณ  ํฅ๋ฏธ๋กœ์šด ๋‚ด์šฉ์œผ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜๋„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ตฌ๋…์ž๋‹˜ ๐Ÿ˜บ

 

๐Ÿ”—References

 

 

๋‹ค๊ฐ€์˜ฌ ๋‰ด์Šค๋ ˆํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”?

์ง€๊ธˆ ๊ตฌ๋…ํ•ด์„œ ์ƒˆ๋กœ์šด ๋ ˆํ„ฐ๋ฅผ ๋ฐ›์•„๋ณด์„ธ์š”

โœ‰๏ธ

์ด๋ฒˆ ๋‰ด์Šค๋ ˆํ„ฐ ์–ด๋– ์…จ๋‚˜์š”?

DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€ ๋‹˜์—๊ฒŒ โ˜•๏ธ ์ปคํ”ผ์™€ โœ‰๏ธ ์ชฝ์ง€๋ฅผ ๋ณด๋‚ด๋ณด์„ธ์š”!

๋Œ“๊ธ€

์˜๊ฒฌ์„ ๋‚จ๊ฒจ์ฃผ์„ธ์š”

ํ™•์ธ
์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? ์ œ์ผ ๋จผ์ € ๋Œ“๊ธ€์„ ๋‹ฌ์•„๋ณด์„ธ์š” !
ยฉ 2024 DevOps ์—ฌํ–‰์„ ์œ„ํ•œ ์†Œ์‹์ง€

DevOps, ํด๋ผ์šฐ๋“œ, IT ๊ธฐ์ˆ  ๊ด€๋ จ ์ตœ์‹  ์†Œ์‹๊ณผ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•ด์„œ ์ฃผ 1ํšŒ ์ด๋ฉ”์ผ๋กœ ์ „ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค๐Ÿ˜บ

๋‰ด์Šค๋ ˆํ„ฐ ๋ฌธ์˜eduukulelekim@gmail.com

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ ์„œ๋น„์Šค ์†Œ๊ฐœ์„œ ์˜ค๋ฅ˜ ๋ฐ ๊ธฐ๋Šฅ ๊ด€๋ จ ์ œ๋ณด

์„œ๋น„์Šค ์ด์šฉ ๋ฌธ์˜admin@team.maily.so

๋ฉ”์ผ๋ฆฌ ์‚ฌ์—…์ž ์ •๋ณด

๋ฉ”์ผ๋ฆฌ (๋Œ€ํ‘œ์ž: ์ดํ•œ๊ฒฐ) | ์‚ฌ์—…์ž๋ฒˆํ˜ธ: 717-47-00705 | ์„œ์šธ ์„œ์ดˆ๊ตฌ ๊ฐ•๋‚จ๋Œ€๋กœ53๊ธธ 8, 8์ธต 11-7ํ˜ธ

์ด์šฉ์•ฝ๊ด€ | ๊ฐœ์ธ์ •๋ณด์ฒ˜๋ฆฌ๋ฐฉ์นจ | ์ •๊ธฐ๊ฒฐ์ œ ์ด์šฉ์•ฝ๊ด€