Kubernetes

๐Ÿ”ญKubernetes 1.30 ๋ฒ„์ „ ๋ฆด๋ฆฌ์ฆˆ!

Kubernetes์˜ ์ตœ์‹  ๋ฒ„์ „์ด ๊ณง ๋ฆด๋ฆฌ์ฆˆ๋ฉ๋‹ˆ๋‹ค.

2024.04.08 | ์กฐํšŒ 718 |
0
|

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

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

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

์–ด๋Š์ƒˆ ๋ด„์ด ๊ป‘์ถฉ ์ฐพ์•„์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜ ๋ฒš๊ฝƒ๋„ ํ•œ์ฐฝ ํ”ผ๊ณ  ์žˆ์–ด์„œ ๋‚˜๋“ค์ด๋„ ๋งŽ์ด ๊ฐ€์‹ค ๊ฒƒ ๊ฐ™์€๋ฐ์š”. ์ด๋ฒˆ ํ•œ ์ฃผ๋„ ๊ตฌ๋…์ž๋‹˜์ด ๋ด„์„ ํ•œ๊ป ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์†Œ์‹์ง€์—์„  ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด, Kubernetes์˜ ์ตœ์‹  ๋ฒ„์ „ ์†Œ์‹์„ ๋‹ค๋ค„๋ณด๋„๋ก ํ• ๊ฒŒ์š”.

 

โœจ๋ณด์•ˆ์„ฑ๊ณผ ์šด์˜์„ฑ์„ ๋”์šฑ ๊ฐ•ํ™”ํ•˜๋Š” Kubernetes 1.30

Kubernetes 1.30์€ 2024๋…„์— ๋ฐฐํฌ๋˜๋Š” ์ฒซ ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
Kubernetes 1.30์€ 2024๋…„์— ๋ฐฐํฌ๋˜๋Š” ์ฒซ ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

Kubernetes 1.30 ๋ฒ„์ „์€ 2024๋…„ 1์›”๋ถ€ํ„ฐ ๋ฐฐํฌ ์ค€๋น„ ๊ณผ์ •์ด ์‹œ์ž‘๋˜์–ด 2024๋…„ 4์›” 17์ผ์— ๋ฐฐํฌ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๋ฒ„์ „์—์„  Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ณด์•ˆ์„ฑ๊ณผ ์šด์˜์„ฑ์„ ๋”์šฑ ๊ฐœ์„ ํ•  ์˜ˆ์ •์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”. ์–ด๋–ค ์ ์ด ์—…๋ฐ์ดํŠธ๋  ์˜ˆ์ •์ธ์ง€ ํ•จ๊ป˜ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

User Namespace ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (Beta)

๊ธฐ์กด Kubernetes์˜ Pod๋Š” Host ์„œ๋ฒ„์™€ ๋™์ผํ•œ User Namespace๋ฅผ ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. User Namespace๋ž€, Linux ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋ฅผ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•˜์—ฌ ๊ตฌ๋ถ„์ง“๋Š” ์˜์—ญ์„ ๋งํ•˜๋Š”๋ฐ์š”.

์ด๋ ‡๊ฒŒ ์„œ๋ฒ„์— ์‚ฌ์šฉ์ž(User ID)๋ฅผ ๋“ฑ๋กํ•  ๊ฒฝ์šฐ, ์–ด๋–ค ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ํŠน์ • ์‚ฌ์šฉ์ž๋งŒ ์ฝ๊ธฐ/์ˆ˜์ •/์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ • ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ํ™œ๋™ ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ 'Pod๊ฐ€ Host ์„œ๋ฒ„์™€ ๋™์ผํ•œ User Namespace๋ฅผ ๊ณต์œ 'ํ•œ๋‹ค๋Š” ๊ฒƒ์€, Pod๊ฐ€ ํ•ดํ‚น ๋ฐ ๊ณต๊ฒฉ ๋Œ€์ƒ์ด ๋œ๋‹ค๋ฉด ๊ทธ Pod๊ฐ€ ๋™์ž‘ ์ค‘์ธ Host๋„ ์œ„ํ—˜ํ•ด์ง„๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ๋ณด์•ˆ ์œ„ํ—˜์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ด๋ฒˆ ๋ฆด๋ฆฌ์ฆˆ์—์„  Pod ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” User ID๋ฅผ Host์™€ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

  • ๊ณต๊ฒฉ ๋ฉด์  ์ตœ์†Œํ™”
    • Pod์— ๊ณต๊ฒฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ, Host์™€ User Namespace๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ Host๊นŒ์ง€ ๊ณต๊ฒฉํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.
  • Host์™€ ๋ถ„๋ฆฌ
    • Host์™€ User Namespace๊ฐ€ ๋ถ„๋ฆฌ๋˜๋ฉด, ์„œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์„œ๋กœ์—๊ฒŒ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ผ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Pod์˜ Host User Namespace ๋ถ„๋ฆฌ ์˜ต์…˜์€ Pod yaml ํŒŒ์ผ(Manifest)์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

apiVersion: v1 kind: Pod . : spec: hostUsers: false . :

 

๋‹ค๋งŒ ์œ„์—์„œ ์†Œ๊ฐœํ•œ Host User Namespace ๋ถ„๋ฆฌ ๊ธฐ๋Šฅ์€ ์•„์ง Beta ๋‹จ๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์šด์˜ ์ค‘์ธ Kubernetes ํ™˜๊ฒฝ์— ์ ์šฉํ•  ๋• ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์‚ฌ์šฉ ์ค‘์ธ Container Runtime์ด ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š”์ง€ ๋จผ์ € ํ™•์ธ์ด ํ•„์š”ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Secret์œผ๋กœ Container Image Pull ์‹œ ๋ณด์•ˆ ๊ฐ•ํ™” (Alpha)

Pod์—์„œ Container Image๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ ๋‹ค์–‘ํ•œ ์ •์ฑ…(imagePullPolicy)์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ IfNotPresent์ธ๋ฐ์š”.

IfNotPresent๋Š” Pod๊ฐ€ ์ƒ์„ฑ๋˜๋Š” Node์— ๋งŒ์•ฝ Pod์— ํ•„์š”ํ•œ Image๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ๋”ฐ๋กœ ๋ฐ›์ง€ ์•Š๊ณ  ์ €์žฅ๋˜์–ด ์žˆ๋Š” Image๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์„œ Pod ์ƒ์„ฑ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๊ณต๊ฐœ๋˜์ง€ ์•Š๋Š” ๋‚ด๋ถ€ ์ €์žฅ์†Œ(Private Registry)์—์„œ Kubernetes Secret์„ ์ด์šฉํ•ด์„œ Image๋ฅผ ๋ฐ›์•„์˜ฌ ๊ฒฝ์šฐ, IfNotPresent ์˜ต์…˜์ด ์žˆ๋‹ค๋ฉด Secret ๊ฒ€์ฆ ์—†์ด ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” Image๋ฅผ ์“ฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Node์— ์ด๋ฏธ ์ €์žฅ๋œ Image๋ผ๊ณ  ํ•ด๋„, Pod๊ฐ€ Secret ๊ฒ€์ฆ ์—†์ด ๋‚ด๋ถ€ ์ €์žฅ์†Œ์— ์ทจ๊ธ‰๋˜๋Š” Image๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์€ ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์ทจ์•ฝ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๋ฆด๋ฆฌ์ฆˆ ์ดํ›„ IfNotPresent ์˜ต์…˜์˜ ๋ณด์•ˆ์„ฑ์ด ๊ฐ•ํ™”๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์•ž์œผ๋กœ๋Š” imagePullPolicy์˜ IfNotPresent ์˜ต์…˜์ด ์„ค์ •๋˜์–ด ์žˆ๋”๋ผ๋„ Image ๋‹ค์šด๋กœ๋“œ์— ํ•„์š”ํ•œ Secret์ด ์œ ํšจํ•œ์ง€ ๋จผ์ € ๊ฒ€์ฆํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜๋Š” ๊ฒƒ์ด์ฃ .

์ด ์—…๋ฐ์ดํŠธ๋Š” ์•„์ง Alpha ๋‹จ๊ณ„์ด์ง€๋งŒ, ์šด์˜ ์ค‘์ธ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Kubernetes 1.30 ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์ ์šฉ ์˜ˆ์ •์ด๋ผ๋ฉด Image ๋‹ค์šด๋กœ๋“œ์— ์‚ฌ์šฉ๋˜๋Š” Secret์„ ๋ฏธ๋ฆฌ ๋‹ค์‹œ ์ฒดํฌํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

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

์ด๋ฒˆ Kubernetes 1.30 ๋ฆด๋ฆฌ์ฆˆ์—์„œ ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ๊ด€๋ จ ๊ธฐ๋Šฅ๋“ค์ด ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ๋Š”๋ฐ์š”.

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

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

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

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜บ

 

๐Ÿ”—References


 

 

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

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

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

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

๋Œ“๊ธ€

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

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

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

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

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

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

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

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

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