IT ์‚ฌ๋ฌผํ•จ ๐Ÿป ์ž์„ธํžˆ๋ณด๊ธฐ

k8s

์ฑ•ํ„ฐ1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์†Œ๊ฐœ

๋ž˜๋ฆฌ๋ž˜๋ฆฌ 2023. 3. 19. 16:42

์ฑ•ํ„ฐ1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์†Œ๊ฐœ

  • 1.1 Kubernetes ์†Œ๊ฐœ

๋ฐฐ๋ฅผ ์กฐ์ข…ํ•˜๋Š” ์‚ฌ๋žŒ (K8S ๋ผ๊ณ ๋„ ํ‘œํ˜„)

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑ๋œ ๋ณต์žกํ•œ ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์Šคํ…œ์˜ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์ด๋‹ค.

 

1.1.1 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์š”์•ฝ

 

์ธํ”„๋ผ ์ถ”์ƒํ™”

SW๊ฐœ๋ฐœ์ž ๋˜๋Š” ์šด์˜์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ๋•Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๊ธฐ๋ณธ ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์‚ฌ์šฉ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋‘์— ์ œ๊ณตํ•œ๋‹ค.

 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๋ฐฉ๋ฒ• ํ‘œ์ค€ํ™”

๊ธฐ๋ณธ ์ธํ”„๋ผ์˜ ์„ธ๋ถ€์ •๋ณด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€X

๊ธฐ๋ณธ ์ธํ”„๋ผ์˜ ๋ชจ๋“  ์ฐจ์ด์ ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์„ ์–ธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์„ ์–ธ์ „ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ •์˜ํ•œ๋‹ค

๋‚ด์šฉ์ด ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒˆ ๋‚ด์šฉ๊ณผ ์ผ์น˜ํ•˜๋„๋ก ์žฌ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ฆฌ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๋Š” ์ฆ‰์‹œ ์ด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํŒจํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉฐ ํ•˜๋“œ์›จ์–ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ธํ”„๋ผ ํ† ํด๋กœ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋™ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ž์ฒด์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

1.1.2 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”„๋กœ์ ํŠธ ์ •๋ณด

๊ตฌ๊ธ€์—์„œ ์ˆ˜์ฒœ ๊ฐœ์˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ๊ณผ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” Borg๋ผ๋Š” ๋‚ด๋ถ€์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœ. (๋‚˜์ค‘์— Omega๋ผ๋Š” ์ƒˆ ์‹œ์Šคํ…œ์œผ๋กœ ๋ฐ”๋€œ)

์„ธ๊ณ„ ์ตœ๊ณ ์˜ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฝ‘ํž˜

 

1.1.3 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ธ๊ธฐ ์ž‡๋Š” ์ด์œ  ์ดํ•ดํ•˜๊ธฐ

๊ณผ๊ฑฐ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํ†ตํ•ด ์—…๊ทธ๋ ˆ์ด๋“œ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ง์œผ๋กœ ํ™•์žฅ

๊ทธ ์ดํ›„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๋“ฑ์žฅ

ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ˆ˜์‹ญ,์ˆ˜๋ฐฑ ๊ฐฑ์˜ ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค๋กœ ๋‚˜๋ˆ„๊ณ  ์ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์†Œ๊ทœ๋ชจ ํŒ€์œผ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค.

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

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด “์ปจํ…Œ์ด๋„ˆ”๊ฐœ๋…

์‹œ์Šคํ…œ์ด ๋งŽ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ์ž๋™ํ™”๋œ ๊ด€๋ฆฌ๊ฐ€ ์ค‘์š”.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ด๋Ÿฐ ์ž๋™ํ™”๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

dev์™€ ops ๊ฒฉ์ฐจ ํ•ด์†Œ

ํด๋ผ์šฐ๋“œ ํ‘œ์ค€ํ™” → ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ API ์„ธํŠธ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ํด๋ผ์šฐ๋“œ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.


  • 1.2 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ดํ•ดํ•˜๊ธฐ

1.2.1 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ดํ•ด

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” OS์™€ ๊ฐ™๋‹ค.

OS๊ฐ€ CPU์— ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ˆ์•ฝํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•˜๋“œ์›จ์–ด ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ ์ฒ˜๋Ÿผ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ธฐ๋ณธ ์ปดํ“จํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐœ๋ณ„ ์ปดํ“จํ„ฐ์— ์˜ˆ์•ฝํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ํŠน์ง•

  1. service discovery - ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์ฐพ๊ณ  ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜
  2. horizontal scaling - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณต์ œํ•ด ๋กœ๋“œ ๋ณ€๋™์— ๋งž๊ฒŒ ์กฐ์ •
  3. load balancing - ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณต์ œ๋ณธ์— ๋กœ๋“œ ๋ถ„์‚ฐ
  4. self healing - ์‹คํŒจํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์‹œ์ž‘, ์‹œ์Šคํ…œ์„ ๊ฑด๊ฐ•ํ•˜๊ฒŒ ์œ ์ง€
  5. leader election - ์–ด๋–ค ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜(์‹คํŒจํ•œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค์‹œ ์ค€๋น„ํ•˜๋Š” ๋™์•ˆ)

์ฟ ๋ฒ„ํ…Œ๋‹ˆ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” Control Plane ๊ณผ Workload Plane์œผ๋กœ ๋‚˜๋‰œ๋‹ค

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ์ž‘์—…์ž ๋…ธ๋“œ๋ผ๋Š” ๋‘ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‹œ์ž‘ํ•œ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋Š” ์‹œ์Šคํ…œ์˜ ๋‘๋‡Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ Control Plane์„ ์‹คํ–‰ํ•˜๊ณ 

๋‚˜๋จธ์ง€ ์ž‘์—…์ž ๋…ธ๋“œ๋Š” Workload plane์„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋น„ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹จ์ผ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ณ ๊ฐ€์šฉ์„ฑ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ตœ์†Œ 3๊ฐœ์˜ ๋ฌผ๋ฆฌ์  ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Control Plane์„ ํ˜ธ์ŠคํŒ…ํ•œ๋‹ค.

*Plane์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜์ง€ ์•Š๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ…ํ•œ๋‹ค.

 

1.2.2 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‚ฌ์šฉ์˜ ์ด์ 

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐฐํฌ
  2. ์ธํ”„๋ผ ํ™œ์šฉ์„ ํ†ตํ•œ ๋น„์šฉ ์ ˆ๊ฐ
  3. ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ž๋™ ์กฐ์ •
  4. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์›ํ™œํ•˜๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ์œ ์ง€
  5. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๊ฐ„์†Œํ™”

1.2.3 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ์•„ํ‚คํ…์ฒ˜

Control Plane ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ ์ง‘ํ•ฉ

Workload Plane ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์ž‘์—…์ž ๋…ธ๋“œ ์ง‘ํ•ฉ

 

Control Plane ๊ตฌ์„ฑ์š”์†Œ

  1. Kubuernetes API Server - ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋Š” ์ด API๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
  2. The etcd - ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋Š” API ์„œ๋ฒ„ ์ž์ฒด๊ฐ€ ๋น„์ €์žฅ์ด๋ฏ€๋กœ API๋ฅผ ํ†ตํ•ด ํ•œ ๊ฐœ์ฒด๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  3. The Scheduler - ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ์ž‘์—…์ž ๋…ธ๋“œ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  4. Controllers - ์ปจํŠธ๋กค๋Ÿฌ๋Š” API๋ฅผ ํ†ตํ•ด ์ƒ์„ฑํ•œ ๊ฐ์ฒด์— ์ƒ๋ช…์„ ๋„ฃ๋Š”๋‹ค

*Control Plane์˜ ๊ตฌ์„ฑ์š”์†Œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ ์ œ์–ดํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์€ ์ž‘์—…์ž ๋…ธ๋“œ์— ์˜ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค.)

 

Workload Plane ๊ตฌ์„ฑ์š”์†Œ

  1. The Kubelet - API์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ  ํ•ด๋‹น ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ์—์ด์ „ํŠธ
  2. The Container Rumtime - ๋„์ปค ๋˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ํ˜ธํ™˜๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„, Kubelet์— ๋”ฐ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•œ๋‹ค.
  3. The Kubernetes Service Proxy(Kube Proxy) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•œ๋‹ค.

๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ

DNS ์„œ๋ฒ„, ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ, ๋กœ๊น… ์—์ด์ „ํŠธ ๋“ฑ์ด ํฌํ•จ๋œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์—…์ž ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ๋งˆ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

1.2.4 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๋ชจ๋“ ๊ฒƒ์„ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์ •์˜ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ YAML, ๋˜๋Š” Jsonํ˜•์‹์˜ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์— ์ •์˜๋œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์‹œ ์ž‘์—… ์ˆœ์„œ

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ์„ API์— ๋ณด๋‚ธ๋‹ค. API์„œ๋ฒ„๋Š” ํŒŒ์ผ์— ์ •์˜๋œ ๊ฐ์ฒด๋ฅผ etcd์— ๊ธฐ๋กํ•œ๋‹ค.
  2. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ์ธ์‹ํ•˜๊ณ  ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ํ•˜๋‚˜์”ฉ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  3. ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๊ฐ ์ธ์Šคํ„ด์Šค์— ๋…ธ๋“œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. (์Šค์ผ€์ค„๋Ÿฌ๋Š” ํŠน์ˆ˜ํ•œ ํƒ€์ž…์˜ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค)
  4. Kubelet์€ Kubelet์˜ ๋…ธ๋“œ์— ์ธ์Šคํ„ด์Šค๊ฐ€ ํ• ๋‹น๋˜์—ˆ์Œ์„ ํ™•์ธํ•œ๋‹ค. Container Runtime์„ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. (๊ฐ ์ž‘์—…์ž ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” Kubelet๋„ ์ผ์ข…์˜ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค.)
  5. Kube ํ”„๋ก์‹œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ๊ตฌ์„ฑํ•œ๋‹ค. (Kube ํ”„๋ก์‹œ๋„ ์ผ์ข…์˜ ์ปจํŠธ๋กค๋Ÿฌ์ด๋‹ค.)
  6. Kubelets์™€ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‹œ์Šคํ…œ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ„์† ์‹คํ–‰ํ•œ๋‹ค.

  • 1.3 ์กฐ์ง์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋„์ž…ํ•˜๊ธฐ

1.3.1 ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ ํด๋ผ์šฐ๋“œ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹คํ–‰

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

1.3.2 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ง์ ‘ ๊ด€๋ฆฌ, ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด

  1. ํด๋ผ์šฐ๋“œ์—์„œ ๊ด€๋ฆฌํ˜• ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ ๋Œ€๋ถ€๋ถ„์˜ ์ฃผ์š” ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋Š” ํ˜„์žฌ Kubernetes-as-a-Service๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Google ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—”์ง„(GKE) AKS(Azure Kubernetes Service) Amazon Elastic Kubernetes Service(EKS) IBM ํด๋ผ์šฐ๋“œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค Red Had OpenShift ์˜จ๋ผ์ธ ์ „์šฉ VMware ํด๋ผ์šฐ๋“œ PKS Alibaba Cloud ์ปจํ…Œ์ด๋„ˆ ์„œ๋น„์Šค(ACK)

 

1.3.3 vanilla ๋˜๋Š” ํ™•์žฅ๋œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

  1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฐ”๋‹๋ผ ๋ฒ„์ „ ์‚ฌ์šฉ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์˜คํ”ˆ์†Œ์Šค ๋ฒ„์ „์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌ๋˜๊ณ ์žˆ๋‹ค. ์•ˆ์ •์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
  2. ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‚ฌ์šฉ

  • 1.4 ์š”์•ฝ
  1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์กฐํƒ€์ˆ˜๋ฅผ ๋œปํ•˜๋Š” ๊ทธ๋ฆฌ์Šค์–ด
  2. ๊ตฌ๊ธ€์˜ ๋ฐฉ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ์ถ•๋œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ
  3. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์šด์˜์ฒด์ œ์™€ ๊ฐ™๋‹ค. ์ธํ”„๋ผ๋ฅผ ์ถ”์ƒํ™”ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋Œ€๊ทœ๋ชจ ์—ฐ์† ๋ฐฐํฌ ์˜์—ญ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  4. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋งˆ์Šคํ„ฐ ๋ฐ ์ž‘์—…์ž ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ - Control Plane ์ž‘์—…์ž ๋…ธ๋“œ - Workload Plane

*์ถœ์ฒ˜ - ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ ์•ก์…˜ / ์ €์ž: ๋งˆ๋ฅด์ฝ”.๋ฃฉ์ƒค / ์ถœํŒ: ์—์–ด์ฝ˜์ถœํŒ / 2020.03.31