๐Ÿ”ญแ„€แ…ฉแ†ฎ แ„…แ…ตแ†ฏแ„…แ…ตแ„Œแ…ณ แ„‹แ…จแ„Œแ…ฅแ†ผแ„‹แ…ตแ†ซ Kubernetes v1.34 แ„†แ…ตแ„…แ…ต แ„‰แ…กแ†ฏแ„‘แ…งแ„‡แ…ฉแ„€แ…ต

2025แ„‚แ…งแ†ซ 8แ„‹แ…ฏแ†ฏ แ„†แ…กแ†ฏ แ„…แ…ตแ†ฏแ„…แ…ตแ„Œแ…ณ แ„‹แ…จแ„Œแ…ฅแ†ผแ„‹แ…ตแ†ซ Kubernetes v1.34แ„‹แ…ด แ„Œแ…ฎแ„‹แ…ญ แ„‡แ…งแ†ซแ„€แ…งแ†ผแ„Œแ…ฅแ†ทแ„‹แ…ณแ†ฏ แ„†แ…ตแ„…แ…ต แ„‰แ…กแ†ฏแ„‘แ…งแ„‡แ…ฉแ†ธแ„‚แ…ตแ„ƒแ…ก.

์•ˆ๋…•ํ•˜์„ธ์š”, Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์ž…๋‹ˆ๋‹ค.

2025๋…„ 8์›” ๋ง Kubernetes 1.34 ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์ฆˆ๋œ๋‹ค๋Š” ๊ณต์‹ ๋ฐœํ‘œ๊ฐ€ ์ตœ๊ทผ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฆด๋ฆฌ์ฆˆ์—์„  ๊ธฐ์กด ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ๋˜๊ฑฐ๋‚˜ Deprecated(๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ  ์•ž์œผ๋กœ ์‚ฌ๋ผ์งˆ ์˜ˆ์ •)๋˜๊ธฐ๋ณด๋‹ค๋Š”, ๊ธฐ์กด ๊ธฐ๋Šฅ ๊ฐœ์„ ์ด ์ฃผ๋ฅผ ์ด๋ฃฌ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”.

ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์™€ Service Account ํ† ํฐ ํ™œ์šฉ ๊ฐœ์„ , Deployment์˜ Pod ์žฌ์ƒ์„ฑ ์‹œ์  ์„ค์ •๊ณผ ๊ฐ™์ด, ์„ธ์„ธํ•˜์ง€๋งŒ Kubernetes์˜ ๋ฐฉํ–ฅ์„ฑ์„ ๋ณด์—ฌ์ฃผ๋Š” ์—…๋ฐ์ดํŠธ๋“ค์ด ๋‹๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ณต์‹ ๋ฐœํ‘œ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ ์กฐ๊ธˆ ๋” ํ’€์–ด ์„ค๋ช…ํ•ด์„œ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

Pod์— GPU ๋“ฑ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋ฅผ ๋”์šฑ ์œ ์—ฐํ•˜๊ฒŒ ํ• ๋‹นํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” DRA(Dynamic Resource Allocation) ๊ธฐ๋Šฅ ์•ˆ์ •ํ™”

๋จผ์ € DRA(Dynamic Resource Allocation) ๊ธฐ๋Šฅ์˜ Stable ๋‹จ๊ณ„ ์ง„์ž… ์˜ˆ์ • ์†Œ์‹์ž…๋‹ˆ๋‹ค. Kubernetes 1.30 ๋ฒ„์ „๋ถ€ํ„ฐ ์†Œ๊ฐœ๋œ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— DRA๊ฐ€ ๋‚ฏ์„ค ์ˆ˜๋„ ์žˆ๋Š”๋ฐ์š”.

์ถœ์ฒ˜: Aidenโ€™s Lab

DRA๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•˜๋‚˜ ํ˜น์€ ์—ฌ๋Ÿฌ Pod์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ•˜๋“œ์›จ์–ด ์žฅ์น˜์— ๋Œ€ํ•œ DeviceClass๋ฅผ ์ •์˜ ํ›„, ResourceClaim์ด๋ž€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ด์„œ Kubernetes ์›Œํฌ๋กœ๋“œ(Deployment, Statefulset ๋“ฑ)๊ฐ€ ํ•ด๋‹น ์žฅ์น˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ์š”.

์ข€ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋ ค๋ฉด Dynamic Volume Provisioning์„ ๋– ์˜ฌ๋ ค๋ณด์„ธ์š”. ์Šคํ† ๋ฆฌ์ง€๋ฅผ StorageClass๋กœ ์ •์˜ํ•œ ๋‹ค์Œ, PersistentVolumeClaim์„ ํ†ตํ•ด Kubernetes ์›Œํฌ๋กœ๋“œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ, ํ• ๋‹น ๋Œ€์ƒ์„ Class๋กœ ์ •์˜ํ•ด์„œ Claim ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋˜‘๊ฐ™์ฃ ?

๋‹ค๋งŒ ์ฐจ์ด์ ์€, DRA์˜ ํ• ๋‹น ๋Œ€์ƒ์ด ํ•˜๋“œ์›จ์–ด ์žฅ์น˜ ๋ฆฌ์†Œ์Šค๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

DRA์€ ResourceClaim์œผ๋กœ ์—ฌ๋Ÿฌ Pod๊ฐ€ ํ•˜๋‚˜์˜ ์žฅ์น˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•ด์„œ ์œ ์—ฐํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์žฅ์น˜๋งˆ๋‹ค DeviceClass๋กœ ์•Œ๋งž์€ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ถ€์—ฌํ•ด์„œ ์ฒด๊ณ„์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ์ด๋ฒˆ 1.34 ๋ฒ„์ „์—์„œ Stable ๋‹จ๊ณ„๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฑธ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ๋‹ค๋Š”๋ฐ์š”. ๋งŒ์•ฝ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณ Stable ๋‹จ๊ณ„๊ฐ€ ๋œ๋‹ค๋ฉด, DRA๋Š” Kubernetes 1.34 ๋ฒ„์ „์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํŠนํžˆ DRA๋Š” GPU ๋ฆฌ์†Œ์Šค๋ฅผ Kubernetes ์›Œํฌ๋กœ๋“œ์— ์œ ์—ฐํ•˜๊ฒŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด AI ๊ฐœ๋ฐœ์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ ํŒ€์ด Stable ์ง„์ž…์„ ์„œ๋‘๋ฅผ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

kubelet์ด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ์˜ ๋ณด์•ˆ์„ฑ ํ–ฅ์ƒ

Kubernetes 1.33 ๋ฒ„์ „๋ถ€ํ„ฐ Credential Provider ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด kubelet์ด ServiceAccount์˜ ํ† ํฐ์„ ์‚ฌ์šฉํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

kubelet์˜ Credential Provider Plugin ์„ค๋ช… ์ด๋ฏธ์ง€. ์ถœ์ฒ˜: https://kubernetes.io/blog/2022/12/22/kubelet-credential-providers

Pod๊ฐ€ ์‹คํ–‰๋˜๋ฉด์„œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ(Pull) ๋•Œ, kubelet์ด ํ•ด๋‹น Pod์™€ ์—ฐ๊ฒฐ๋œ ServiceAccount์˜ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ์š”. ํ•ด๋‹น ๊ธฐ๋Šฅ์€ ํ˜„์žฌ ์•ŒํŒŒ ๋‹จ๊ณ„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€ ์„ค์ •์„ ํ†ตํ•ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ํ•„์š”ํ•œ ์ธ์ฆ์ •๋ณด๋ฅผ ๋…ธ๋“œ(์˜ˆ: .docker/config.json)์— ์ €์žฅํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ธฐ์— ๋ณด์•ˆ์„ฑ์„ ๋”์šฑ ๋†’์ธ ์—…๋ฐ์ดํŠธ์˜€์Šต๋‹ˆ๋‹ค.

1.34 ๋ฒ„์ „๋ถ€ํ„ฐ ์œ„ ๊ธฐ๋Šฅ์ด ๋ฒ ํƒ€๋กœ ์Šน๊ฒฉ๋˜๋ฉด์„œ ๋ณ„๋„ ์„ค์ • ์—†์ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ์˜ˆ์ •์ธ๋ฐ์š”. ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์— Credential Provider ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๊ธด ํ•˜์ง€๋งŒ, ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์™€์˜ ํ†ต์‹  ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ ์œ„ํ—˜์„ ์ค„์—ฌ์ฃผ๋Š” ์—…๋ฐ์ดํŠธ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

Deployment์˜ Pod ์žฌ์‹คํ–‰ ์‹œ์ ์„ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜ ์ถ”๊ฐ€

Deployment๊ฐ€ ๋ณ€๊ฒฝ๋  ๊ฒฝ์šฐ, Pod๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๋ฐ์—๋Š” ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๊ณ  ๋ฆฌ์†Œ์Šค๋„ ์ถ”๊ฐ€๋กœ ์†Œ๋ชจ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 1.34 ๋ฒ„์ „๋ถ€ํ„ฐ Pod ์žฌ์ƒ์„ฑ ์ •์ฑ… ์„ค์ •์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธฐ๋Šฅ์€ 1.34 ๋ฒ„์ „๋ถ€ํ„ฐ ์•ŒํŒŒ ์ƒํƒœ๋กœ ์„ ๋ณด์ด๋Š”๋ฐ์š”. Kubernetes API ์„œ๋ฒ„์™€ kube-controller-manager์˜ ์„ค์ •์—์„œ ์•„๋ž˜ ๋‘ ๊ฐ€์ง€ ํ•„๋“œ์˜ ๊ฐ’์„ enable๋กœ ๋ช…์‹œํ•˜๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • DeploymentPodReplacementPolicy

  • DeploymentReplicaSetTerminatingReplicas

์ดํ›„ Deployment์˜ .spec.podReplacementPolicy ํ•„๋“œ์— Pod๊ฐ€ ์žฌ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • TerminationStarted:

    • ๊ธฐ์กด Pod๊ฐ€ Terminate๋˜๊ธฐ ์‹œ์ž‘๋  ๋•Œ ์ƒˆ๋กœ์šด Pod ์ƒ์„ฑ. Rollout์„ ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋งŽ์ด ์†Œ๋ชจ๋  ์œ„ํ—˜ ์žˆ์Œ

    • ์ข…๋ฃŒ๊นŒ์ง€ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” Pod์˜ Deployment ์ˆ˜์ • ์‹œ, ์ƒˆ๋กœ์šด Pod๊ฐ€ ๋ฐ”๋กœ ์žฌ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ

  • TerminationComplete:

    • ๊ธฐ์กด Pod๊ฐ€ ์™„์ „ํžˆ Terminate๋˜๊ณ  ๋‚˜์„œ ์ƒˆ๋กœ์šด Pod ์ƒ์„ฑ. Rollout์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆฌ์ง€๋งŒ ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œ

    • ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๋Ÿ‰์ด ๋งŽ์€ Pod์˜ Deployment ์ˆ˜์ • ์‹œ, ๊ธฐ์กด Pod๊ฐ€ ์ข…๋ฃŒ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋˜๋‹ค๋ฅธ Pod๊ฐ€ ์žฌ์ƒ์„ฑ๋˜๋ฉด์„œ ๊ฐ‘์ž๊ธฐ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์ด ํญ์ฆํ•˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ

Deployment๋Š” Kubernetes์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์›Œํฌ๋กœ๋“œ ์ค‘ ํ•˜๋‚˜์ธ ๋งŒํผ, ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ Deployment๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ฐ€ํ•œ ์ •์ฑ…์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์˜ ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด์„ ์ถ”์  ๊ธฐ๋Šฅ ์•ˆ์ •ํ™”

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

๊ทธ๋ž˜์„œ ์ง€๋‚œ 1.22 ๋ฐ 1.25 ๋ฒ„์ „์—์„œ kubelet๊ณผ Kubernetes API ์„œ๋ฒ„์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋ณด๋‚ด๋Š” ์š”์ฒญ์„ ํŠธ๋ ˆ์ด์Šค๋กœ ๊ธฐ๋กํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ฒ˜์Œ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ก์€ OpenTelemetry ํ‘œ์ค€์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์—์„œ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์šฉ์„ฑ๋„ ๋…ธ๋ ธ๊ณ ์š”.

Kubernetes API ์„œ๋ฒ„์˜ ํŠธ๋ ˆ์ด์Šค๋ฅผ ํŠธ๋ ˆ์ด์‹ฑ ํˆด Jagger๋กœ ์‹œ๊ฐํ™”. ์ถœ์ฒ˜: https://kubernetes.io/blog/2021/09/03/api-server-tracing

kubelet๊ณผ Kubernetes API ์„œ๋ฒ„๊ฐ€ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๊ธฐ๋กํ•˜๋ฉด์„œ ์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์˜ค๋ฅ˜์˜ ์›์ธ์„ ์งš์–ด๋‚ผ ์ˆ˜ ์žˆ๊ณ , Kubernetes ์ด๋ฒคํŠธ(์˜ˆ: Pod ์‹œ์ž‘)์˜ ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ์ธ๋ฐ์š”. ํŠธ๋ ˆ์ด์Šค์—๋Š” ๊ณ ์œ ํ•œ ID๋„ ๋ถ€์—ฌ๋˜์–ด ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์ด ์ˆ˜ํ–‰ํ•œ ์ž‘์—…๋“ค ์ค‘ ์—ฐ๊ด€๋œ ๊ฒƒ๋“ค์ด ๋ฌถ์ผ ์ˆ˜ ์žˆ๊ณ , ๋ฌธ์ œ์˜ ์›์ธ์„ ๋ถ„์„ํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ 1.34 ๋ฒ„์ „์—์„  ํ•ด๋‹น ๊ธฐ๋Šฅ์ด Stable ๋‹จ๊ณ„๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฑธ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ด๋ฏธ ์—ฌ๋Ÿฌ ๋งˆ์ด๋„ˆ ๋ฒ„์ „์„ ๊ฑฐ์ณ์˜จ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฆฌ ์—†์ด Stable ์ƒํƒœ๊ฐ€ ๋  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

KYAML(Kubernetes + YAML) ์–‘์‹ ์ง€์›

KYAML์€ YAML๊ณผ JSON์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ Kubernetes๋ฅผ ์œ„ํ•œ YAML ์–‘์‹์œผ๋กœ, Kubernetes 1.34 ๋ฒ„์ „๋ถ€ํ„ฐ Alpha ๋‹จ๊ณ„๋กœ ์„ ๋ณด์ผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

KYAML์ด ๊ณ ์น˜๋ ค ํ•œ ๋ฌธ์ œ์ ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • YAML์—์„œ ๊ณต๋ฐฑ๋งŒ์œผ๋กœ ๋“ค์—ฌ์“ฐ๊ธฐํ•˜๋ฉด์„œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง

  • YAML์—์„œ String ํƒ€์ž… ๊ฐ’์— ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ •์ฑ…์ด ์—†์Œ

  • JSON์—์„œ ์ฃผ์„์„ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜์ง€ ์•Š์Œ

  • JSON์—์„œ Map์˜ Key๋ฅผ ํ•ญ์ƒ ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•ด์„œ ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง

์œ„ ๋ฌธ์ œ์ ์„ KYAML์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์œผ๋กœ ๊ฐœ์„ ํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • String ํƒ€์ž…์˜ ๊ฐ’์€ ํ•ญ์ƒ ํฐ๋”ฐ์˜ดํ‘œ("")๋กœ ๊ฐ์‹ผ๋‹ค.

  • Key๋Š” ํŠน์ • ์ƒํ™ฉ์„ ์ œ์™ธํ•˜๋ฉด ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ง€ ์•Š๋Š”๋‹ค.

  • Mapping์—๋Š” ํ•ญ์ƒ ์ค‘๊ด„ํ˜ธ({})๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • List์—๋Š” ํ•ญ์ƒ ๋Œ€๊ด„ํ˜ธ([])๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

KYAML์€ k8s ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋‚˜ Helm chart๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ชจ๋“  kubectl ๋ฒ„์ „์—์„œ Input์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ์˜ˆ์ •์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. kubectl v1.34๋ถ€ํ„ฐ KYAML์„ ์ƒˆ๋กœ์šด Output ์–‘์‹์œผ๋กœ ์ง€์›(์˜ˆ: kubectl get -o kyaml ...)ํ•  ์˜ˆ์ •์ด๋ผ๊ณ  ํ•˜๋„ค์š”.

๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ ํŒ€์— ์˜ํ•˜๋ฉด, KYAML์€ YAML์˜ ํ•˜์œ„ ๊ฐœ๋…์ด๋ฏ€๋กœ Kubernetes์—์„œ YAML ๋Œ€์‹  KYAML๋งŒ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์š”๊ตฌํ•˜๋Š” ์ผ์€ ์•ž์œผ๋กœ๋„ ์—†์„ ๊ฑฐ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. KYAML์€ ์–ด๋””๊นŒ์ง€๋‚˜ YAML๊ณผ JSON์˜ ๋ฌธ์ œ์ ์„ ๊ฐœ์„ ํ•˜๋ ค๋Š” ํ•˜๋‚˜์˜ ๋…ธ๋ ฅ์œผ๋กœ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, KYAML์„ YAML์˜ ๋Œ€์ฒด์žฌ๊ฐ€ ์•„๋‹Œ ๋˜๋‹ค๋ฅธ ์„ ํƒ์ง€๋กœ ์„ค์ •ํ•œ ๊ฒƒ์€ ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ

Kubernetes 1.34 ๋ฒ„์ „์—๋Š” ์–ด๋–ค ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ๋‹ค๊ธฐ๋ณด๋‹จ, ์„ธ์„ธํ•˜์ง€๋งŒ Kubernetes์˜ ๋ฐฉํ–ฅ์„ฑ์ด ๋“œ๋Ÿฌ๋‚˜๋Š” ์—…๋ฐ์ดํŠธ๋“ค์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋Ÿผ ๋‹ค์Œ ์•„ํ‹ฐํด์—์„œ๋„ ํฅ๋ฏธ๋กœ์šด ์ฃผ์ œ๋กœ ๋Œ์•„์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ

โœจ์ด๋ฒˆ ์•„ํ‹ฐํด์€ ์–ด๋– ์…จ๋‚˜์š”?

์ด๋ฒˆ ๊ธ€์˜ ์ฃผ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋” ๋‚˜์€ ์•„ํ‹ฐํด์„ ์ „๋‹ฌํ•ด๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์€ Aidenโ€™s Lab์— ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

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

์ด๋ฒˆ ๊ธ€์—์„œ ๋‹ค๋ฃฌ ์ฃผ์ œ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”! ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ๋” ๋‚˜์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ํผ์—์„œ ์งง์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ์žˆ์–ด์š”.

๐Ÿ‘‰ ํ”ผ๋“œ๋ฐฑ ๋ณด๋‚ด๊ธฐ (1~2๋ถ„ ์†Œ์š”)

์—ฌ๋Ÿฌ๋ถ„๋“ค์˜ ์†Œ์ค‘ํ•œ ์˜๊ฒฌ์€ Aidenโ€™s Lab ๋‰ด์Šค๋ ˆํ„ฐ์—๊ฒŒ ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿ”ญAidenโ€™s Lab์—์„œ ๋” ๋งŽ์€ ์•„ํ‹ฐํด์„ ๋งŒ๋‚˜๋ณด์„ธ์š”

๋ฐœํ–‰๋œ ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ์•„์นด์ด๋น™ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ ์ค‘์ž…๋‹ˆ๋‹ค.