์ปจํ…Œ์ด๋„ˆ์—์„œ ์ปจ๋ฒ ์ด์–ด๋กœ: CRI-O๋Š” ์ด์ œ OpenShift Container Platform 4์—์„œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

ํ”Œ๋žซํผ ๋ ˆ๋“œํ–‡ ์˜คํ”ˆ์‹œํ”„ํŠธ ์ปจํ…Œ์ด๋„ˆ ํ”Œ๋žซํผ 4 ์ƒ์„ฑ์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ์šฉ ํ˜ธ์ŠคํŠธ, ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์—…์ฒด์˜ ์ธํ”„๋ผ, ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ ๋˜๋Š” ๋ฒ ์–ด๋ฉ”ํƒˆ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ง„์ •ํ•œ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ํ”Œ๋žซํผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์—„๊ฒฉํ•˜๊ฒŒ ์ œ์–ดํ•˜์—ฌ ๋ณต์žกํ•œ ์ž๋™ํ™” ํ”„๋กœ์„ธ์Šค์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์—ฌ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์—์„œ ์ปจ๋ฒ ์ด์–ด๋กœ: CRI-O๋Š” ์ด์ œ OpenShift Container Platform 4์—์„œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

ํ™•์‹คํ•œ ํ•ด๊ฒฐ์ฑ…์€ Red Hat Enterprise Linux CoreOS(Red Hat Enterprise Linux์˜ ๋ณ€ํ˜•)์™€ CRI-O๋ฅผ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ•ญํ•ด๋ผ๋Š” ์ฃผ์ œ๋Š” Kubernetes์™€ ์ปจํ…Œ์ด๋„ˆ์˜ ์ž‘์—…์„ ์„ค๋ช…ํ•  ๋•Œ ๋น„์œ ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋งค์šฐ ์ข‹์€ ์ฃผ์ œ์ด๋ฏ€๋กœ CoreOS์™€ CRI-O๊ฐ€ ํ•ด๊ฒฐํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ์— ๋Œ€ํ•ด ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์•ผ๊ธฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๊น… ๋ธ”๋ก ์ƒ์‚ฐ์„ ์œ„ํ•œ ๋ธŒ๋ฃจ๋„ฌ์˜ ๋ฐœ๋ช…ํ’ˆ. 1803๋…„์— ๋งˆํฌ ๋ธŒ๋ฃจ๋„ฌ(Marc Brunel)์€ ์„ฑ์žฅํ•˜๋Š” ์˜๊ตญ ํ•ด๊ตฐ์˜ ์š”๊ตฌ์— ๋งž์ถฐ 100๊ฐœ์˜ ๋ฆฌ๊น… ๋ธ”๋ก์„ ์ƒ์‚ฐํ•˜๋ผ๋Š” ์ž„๋ฌด๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋ฆฌ๊น… ๋ธ”๋ก(rigging block)์€ ๋›์— ๋กœํ”„๋ฅผ ๋ถ€์ฐฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ๊น… ์œ ํ˜•์ž…๋‹ˆ๋‹ค. 19์„ธ๊ธฐ ์ดˆ๊นŒ์ง€ ์ด๋Ÿฌํ•œ ๋ธ”๋ก์€ ์ˆ˜์ž‘์—…์œผ๋กœ ์ œ์ž‘๋˜์—ˆ์ง€๋งŒ Brunel์€ ์ƒ์‚ฐ์„ ์ž๋™ํ™”ํ•˜๊ณ  ๊ณต์ž‘ ๊ธฐ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์ค€ํ™”๋œ ๋ธ”๋ก์„ ์ƒ์‚ฐํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค์˜ ์ž๋™ํ™”๋Š” ์ƒ์„ฑ๋œ ๋ธ”๋ก์ด ๋ณธ์งˆ์ ์œผ๋กœ ๋™์ผํ•˜๊ณ , ํŒŒ์†๋œ ๊ฒฝ์šฐ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๋Ÿ‰์œผ๋กœ ์ƒ์‚ฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Brunel์ด 20๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์„ ๋ฐ• ๋ชจ๋ธ(Kubernetes ๋ฒ„์ „)๊ณผ ์™„์ „ํžˆ ๋‹ค๋ฅธ ํ•ด๋ฅ˜์™€ ๋ฐ”๋žŒ์ด ์žˆ๋Š” XNUMX๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํ–‰์„ฑ(ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž)์— ๋Œ€ํ•ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”. ๋˜ํ•œ ์„ ์žฅ(ํด๋Ÿฌ์Šคํ„ฐ ์šด์˜์„ ๊ด€๋ฆฌํ•˜๋Š” ์šด์˜์ž)์˜ ๊ด€์ ์—์„œ ํƒ์ƒ‰์ด ์ˆ˜ํ–‰๋˜๋Š” ํ–‰์„ฑ์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ์„ ๋ฐ•(OpenShift ํด๋Ÿฌ์Šคํ„ฐ)์ด ๋™์ผํ•˜๊ฒŒ ํ–‰๋™ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด์ƒ ๋น„์œ ๋ฅผ ๊ณ„์†ํ•˜์ž๋ฉด, ์„ ์žฅ์€ ์„ ๋ฐ•์— ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฆฌ๊น… ๋ธ”๋ก(CRI-O)์ด ์‚ฌ์šฉ๋˜๋Š”์ง€ ์ „ํ˜€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์—๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๋ธ”๋ก์ด ๊ฐ•๋ ฅํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์ธ OpenShift 4๋Š” ๋งค์šฐ ์œ ์‚ฌํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณผ์ œ์— ์ง๋ฉดํ•ด ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ๋…ธ๋“œ ์ค‘ ํ•˜๋‚˜์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ™•์žฅํ•  ๋•Œ ์ƒˆ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ดˆ๊ธฐํ™”๋˜๋ฉด CRI-O๋ฅผ ํฌํ•จํ•œ ์ค‘์š”ํ•œ ํ˜ธ์ŠคํŠธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ทธ์— ๋”ฐ๋ผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ƒ์‚ฐ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ '์›๋ฃŒ'๊ฐ€ ๊ณต๊ธ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ ๋ฐ•์˜ ๊ฒฝ์šฐ ์›์ž์žฌ๋Š” ๊ธˆ์†๊ณผ ๋ชฉ์žฌ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ OpenShift 4 ํด๋Ÿฌ์Šคํ„ฐ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ํ˜ธ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ API ์ œ๊ณต ์„œ๋ฒ„๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ OpenShift๋Š” ์ „์ฒด ์ˆ˜๋ช… ์ฃผ๊ธฐ์— ๊ฑธ์ณ ํ•„์š”ํ•œ ์ˆ˜์ค€์˜ ์ž๋™ํ™”๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ์ œํ’ˆ ์ง€์›์„ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ํˆฌ์ž๋ฅผ ํšŒ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

OpenShift 4๋Š” ๋ชจ๋“  ์ฃผ์š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ์ œ๊ณต์—…์ฒด, ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ ๋ฐ ๋ฒ ์–ด๋ฉ”ํƒˆ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ํ”Œ๋žซํผ(๋ฒ„์ „ 4.X์šฉ)์˜ ์ „์ฒด ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ƒํ˜ธ ๊ตํ™˜ ๊ฐ€๋Šฅํ•œ ์š”์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋…ธ๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ์ƒˆ ๋ฒ„์ „์˜ Kubernetes๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ CoreOS์—์„œ ํ•ด๋‹น ๋ฒ„์ „์˜ CRI-O๋„ ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค. CRI-O ๋ฒ„์ „์€ Kubernetes์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ…Œ์ŠคํŠธ, ๋ฌธ์ œ ํ•ด๊ฒฐ ๋˜๋Š” ์ง€์› ๋ชฉ์ ์„ ์œ„ํ•œ ๋ชจ๋“  ์ˆœ์—ด์ด ํฌ๊ฒŒ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ตœ์ข… ์‚ฌ์šฉ์ž์™€ Red Hat์˜ ๋น„์šฉ์„ ์ ˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๊ทผ๋ณธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์‚ฌ๊ณ  ๋ฐฉ์‹์ด๋ฉฐ ๋งค์šฐ ์œ ์šฉํ•˜๊ณ  ๋งค๋ ฅ์ ์ธ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ณ„ํšํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•ฉ๋‹ˆ๋‹ค. CRI-O(Container Runtime Interface - Open Container Initiative, ์•ฝ์นญ CRI-OCI)๋Š” OpenShift ์ž‘์—…์— ํ•„์š”ํ•œ ๋…ธ๋“œ ๋Œ€๋Ÿ‰ ์ƒ์„ฑ์„ ์œ„ํ•œ ๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ ์„ ํƒ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CRI-O๋Š” ์ด์ „์— ์‚ฌ์šฉ๋œ Docker ์—”์ง„์„ ๋Œ€์ฒดํ•˜์—ฌ OpenShift ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฒฝ์ œ์ ์ด๊ณ  ์•ˆ์ •์ ์ด๋ฉฐ ๋‹จ์ˆœํ•˜๊ณ  ์ง€๋ฃจํ•จ โ€“ ๋„ค, ๋งž์Šต๋‹ˆ๋‹ค. Kubernetes ์ž‘์—…์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ์ œ์ž‘๋œ ์ง€๋ฃจํ•œ ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์ž…๋‹ˆ๋‹ค.

์˜คํ”ˆ ์ปจํ…Œ์ด๋„ˆ์˜ ์„ธ๊ณ„

์„ธ๊ณ„๋Š” ์˜ค๋žซ๋™์•ˆ ๊ฐœ๋ฐฉํ˜• ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ–ฅํ•ด ๋‚˜์•„๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes์—์„œ๋“  ํ•˜์œ„ ์ˆ˜์ค€์—์„œ๋“  ์ปจํ…Œ์ด๋„ˆ ํ‘œ์ค€ ๊ฐœ๋ฐœ ๋ชจ๋“  ์ˆ˜์ค€์—์„œ ํ˜์‹  ์ƒํƒœ๊ณ„๊ฐ€ ํƒ„์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์€ Open Containers Initiative์˜ ์ฐฝ์„ค๋กœ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 6 ์›”์— 2015. ์ด ์ž‘์—… ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‚ฌ์–‘์ด ํ˜•์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜์ƒ ะธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ. ์ด๋ฅผ ํ†ตํ•ด ๋„๊ตฌ๊ฐ€ ๋‹จ์ผ ํ‘œ์ค€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋“ค๊ณผ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์ผ๋œ ํ˜•์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์–‘์€ ๋‚˜์ค‘์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ„ํฌ, ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€.

๊ทธ๋Ÿฐ ๋‹ค์Œ Kubernetes ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ํ”Œ๋Ÿฌ๊ทธํ˜• ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๋‹จ์ผ ํ‘œ์ค€์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ์ธํ„ฐํŽ˜์ด์Šค(CRI). ๋•๋ถ„์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‚ฌ์šฉ์ž๋“ค์€ ๋„์ปค ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ์—”์ง„์„ ์—ฐ๊ฒฐํ•ด ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Red Hat๊ณผ Google์˜ ์—”์ง€๋‹ˆ์–ด๋“ค์€ CRI ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด Kubelet ์š”์ฒญ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์— ๋Œ€ํ•œ ์‹œ์žฅ์˜ ํ•„์š”์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ OCI ์‚ฌ์–‘๊ณผ ํ˜ธํ™˜๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ OCID๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž๋ฃŒ๋ฅผ CRI-O์— ํ—Œ์ •ํ•œ๋‹ค๊ณ  ํ•˜์ง€ ์•Š์•˜๋‚˜์š”? ์‚ฌ์‹ค ์ถœ์‹œ๋˜์ž๋งˆ์ž ๊ทธ๋ ‡์ฃ  ๋ฒ„์ „ 1.0 ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์ด CRI-O๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆผ. 1.

์ปจํ…Œ์ด๋„ˆ์—์„œ ์ปจ๋ฒ ์ด์–ด๋กœ: CRI-O๋Š” ์ด์ œ OpenShift Container Platform 4์—์„œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

CRI-O์™€ CoreOS๋ฅผ ํ†ตํ•œ ํ˜์‹ 

OpenShift 4 ํ”Œ๋žซํผ์ด ์ถœ์‹œ๋˜๋ฉด์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์—”์ง„, ํ”Œ๋žซํผ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Docker๋Š” Kubernetes์™€ ๋ณ‘๋ ฌ๋กœ ๊ฐœ๋ฐœ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ด๋ฉฐ ๊ฐ„๋‹จํ•˜๊ณ  ์ง€๋ฃจํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” CRI-O๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ง€์› ๋ฐ ๊ตฌ์„ฑ์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์—”์ง„๊ณผ ํ˜ธ์ŠคํŠธ์˜ ๊ตฌ์„ฑ๊ณผ ๊ด€๋ฆฌ๋Š” OpenShift 4 ๋‚ด์—์„œ ์ž๋™ํ™”๋ฉ๋‹ˆ๋‹ค.

์ž ๊น, ์ด๊ฑด ์–ด๋•Œ?

๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. OpenShift 4์˜ ๋“ฑ์žฅ์œผ๋กœ ๋” ์ด์ƒ ๊ฐœ๋ณ„ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์„ ์„ค์น˜ํ•˜๊ณ , ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ , ๊ฒ€์ƒ‰ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. OpenShift 4 ํ”Œ๋žซํผ์€ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์™„์ „ํžˆ ์žฌ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ์‚ฐ์ž ํ”„๋ ˆ์ž„์›Œํฌ ์ตœ์ข… ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธก๋ฉด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฏธ์ง€ ๋ฐฐํฌ, ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๋˜๋Š” ์—…๋ฐ์ดํŠธ ์„ค์น˜์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ํ”Œ๋žซํผ ์ˆ˜์ค€ ์ž‘์—… ์ธก๋ฉด์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

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

OpenShift 4๋Š” ํ”Œ๋žซํผ์˜ Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RHEL CoreOS ๋ฐ CRI-O ๊ด€๋ฆฌ์— ์ด ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„(์„ธํŠธ ๋ฐ ์‹ค์ œ ์ƒํƒœ ๊ฐœ๋… ์‚ฌ์šฉ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์šด์˜ ์ฒด์ œ ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์˜ ๋ฒ„์ „์„ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ž‘์—…์€ ์†Œ์œ„ ๋งํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”๋ฉ๋‹ˆ๋‹ค. MCO(๋จธ์‹  ๊ตฌ์„ฑ ์šด์˜์ž). MCO๋Š” ์„ค์น˜์˜ ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์™€ ํ›„์† ์„ค์น˜ ํ›„ ์ž‘์—…(4์ผ์ฐจ ์ž‘์—…)์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋™ํ™”ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์˜ ์ž‘์—…์„ ํฌ๊ฒŒ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด OpenShift XNUMX๋ฅผ ์ง„์ •ํ•œ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด์„œ๋Š” ์ž ์‹œ ํ›„์— ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

์‚ฌ์šฉ์ž๋Š” Tech Preview ์ƒํƒœ์˜ ๋ฒ„์ „ 3.7๋ถ€ํ„ฐ ์ผ๋ฐ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ƒํƒœ(ํ˜„์žฌ ์ง€์›๋จ)์˜ ๋ฒ„์ „ 3.9๋ถ€ํ„ฐ OpenShift ํ”Œ๋žซํผ์—์„œ CRI-O ์—”์ง„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Red Hat์€ ๋Œ€๊ทœ๋ชจ๋กœ ํ”„๋กœ๋•์…˜ ์›Œํฌ๋กœ๋“œ ์‹คํ–‰์„ ์œ„ํ•œ CRI-O ๋ฒ„์ „ 3.10๋ถ€ํ„ฐ OpenShift Online์—์„œ. ์ด ๋ชจ๋“  ๊ฒƒ์„ ํ†ตํ•ด CRI-O ์ž‘์—… ํŒ€์€ ๋Œ€๊ทœ๋ชจ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋Œ€๋Ÿ‰ ์ถœ์‹œํ•˜๋Š” ๋ฐ ์žˆ์–ด ๊ด‘๋ฒ”์œ„ํ•œ ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Kubernetes๊ฐ€ CRI-O๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ดํ•ด๋ฅผ ์–ป์œผ๋ ค๋ฉด ์•„ํ‚คํ…์ฒ˜ ์ž‘๋™ ๋ฐฉ์‹์„ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์Œ ๊ทธ๋ฆผ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์Œ€. 2. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

์ปจํ…Œ์ด๋„ˆ์—์„œ ์ปจ๋ฒ ์ด์–ด๋กœ: CRI-O๋Š” ์ด์ œ OpenShift Container Platform 4์—์„œ ๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค.

CRI-O๋Š” ์ƒˆ ๋…ธ๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  OpenShift ํ”Œ๋žซํผ์˜ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ•  ๋•Œ ์ „์ฒด ์ตœ์ƒ์œ„ ์ˆ˜์ค€์„ ๋™๊ธฐํ™”ํ•˜์—ฌ ์ƒˆ ์ปจํ…Œ์ด๋„ˆ ํ˜ธ์ŠคํŠธ ์ƒ์„ฑ์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ”Œ๋žซํผ์˜ ๊ฐœ์ •์€ ํŠธ๋žœ์žญ์…˜ ์—…๋ฐ์ดํŠธ/๋กค๋ฐฑ์„ ํ—ˆ์šฉํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ ํ…Œ์ผ ์ฝ”์–ด, ์ปจํ…Œ์ด๋„ˆ ์—”์ง„, ๋…ธ๋“œ(Kubelets) ๋ฐ Kubernetes ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ ๊ฐ„์˜ ์ข…์†์„ฑ ๊ต์ฐฉ ์ƒํƒœ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ œ์–ด ๋ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ํ”Œ๋žซํผ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ ์ƒํƒœ A์—์„œ ์ƒํƒœ B๋กœ์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๋กœ๊ฐ€ ํ•ญ์ƒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—…๋ฐ์ดํŠธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋ณด์•ˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋ฉฐ, ์„ฑ๋Šฅ ๋ณด๊ณ ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ƒˆ ๋ฒ„์ „์˜ ์—…๋ฐ์ดํŠธ ๋ฐ ์„ค์น˜ ๋น„์šฉ์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. .

๊ต์ฒด ์š”์†Œ์˜ ์œ„๋ ฅ ์ž…์ฆ

์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Machine Config Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ OpenShift 4์—์„œ ์ปจํ…Œ์ด๋„ˆ ํ˜ธ์ŠคํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์„ ๊ด€๋ฆฌํ•˜๋ฉด ์ด์ „์—๋Š” Kubernetes ํ”Œ๋žซํผ์—์„œ ๋ถˆ๊ฐ€๋Šฅํ–ˆ๋˜ ์ƒˆ๋กœ์šด ์ˆ˜์ค€์˜ ์ž๋™ํ™”๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์‹œ์—ฐํ•˜๊ธฐ ์œ„ํ•ด crio.conf ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฉ์–ด๋กœ ์ธํ•œ ํ˜ผ๋™์„ ํ”ผํ•˜๋ ค๋ฉด ๊ฒฐ๊ณผ์— ์ง‘์ค‘ํ•˜์‹ญ์‹œ์˜ค.

๋จผ์ € ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์ธ Container Runtime Config๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CRI-O์˜ ๊ตฌ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” Kubernetes ๋ฆฌ์†Œ์Šค๋กœ ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ๋กœ ์ด๋Š” OpenShift ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€๋กœ RHEL CoreOS ์‹œ์Šคํ…œ์— ๋ฐฐํฌ๋˜๋Š” ๊ตฌ์„ฑ์ธ MachineConfig๋ผ๋Š” ํ•ญ๋ชฉ์˜ ํŠน์ˆ˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

ContainerRuntimeConfig๋ผ๊ณ  ํ•˜๋Š” ์ด ์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๊ฐ€ CRI-O๋ฅผ ๋” ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” MachineConfigPool ์„ค์ •์— ๋”ฐ๋ผ ํŠน์ • ๋…ธ๋“œ์—๋งŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋ชฉ์ ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๊ณ„ ๊ทธ๋ฃน์œผ๋กœ ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

/etc/crio/crio.conf ํŒŒ์ผ์—์„œ ๋ณ€๊ฒฝํ•  ๋งˆ์ง€๋ง‰ ๋‘ ์ค„์„ ํ™•์ธํ•˜์„ธ์š”. ์ด ๋‘ ์ค„์€ crio.conf ํŒŒ์ผ์˜ ์ค„๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

vi ContainerRuntimeConfig.yaml

๊ฒฐ๋ก  :

apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
 name: set-log-and-pid
spec:
 machineConfigPoolSelector:
   matchLabels:
     debug-crio: config-log-and-pid
 containerRuntimeConfig:
   pidsLimit: 2048
   logLevel: debug

์ด์ œ ์ด ํŒŒ์ผ์„ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ํ‘ธ์‹œํ•˜๊ณ  ์‹ค์ œ๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์€ ๋‹ค๋ฅธ Kubernetes ๋ฆฌ์†Œ์Šค์™€ ์ •ํ™•ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig

๊ฒฐ๋ก  :

NAME              AGE
set-log-and-pid   22h

ContainerRuntimeConfig๋ฅผ ์ƒ์„ฑํ•œ ํ›„์—๋Š” MachineConfigPool ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํŠน์ • ๋จธ์‹  ๊ทธ๋ฃน์— ์ด ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์‹ ํ˜ธ๋ฅผ Kubernetes์— ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ MachineConfigPool์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

oc edit MachineConfigPool/master

๊ฒฐ๋ก (๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ์ฃผ์š” ๋ณธ์งˆ์€ ๋‚จ์Œ):

...
metadata:
 creationTimestamp: 2019-04-10T23:42:28Z
 generation: 1
 labels:
   debug-crio: config-log-and-pid
   operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...

์ด ์‹œ์ ์—์„œ MCO๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ƒˆ crio.conf ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Kubernetes API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํžˆ ์™„๋ฃŒ๋œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ContainerRuntimeConfig๋Š” MachineConfig์˜ ํŠน์ˆ˜ ๋ฒ„์ „์ผ ๋ฟ์ด๋ฏ€๋กœ MachineConfigs์—์„œ ๊ด€๋ จ ์ค„์„ ๋ณด๋ฉด ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

oc get MachineConfigs | grep rendered

๊ฒฐ๋ก  :

rendered-master-c923f24f01a0e38c77a05acfd631910b                  4.0.22-201904011459-dirty 2.2.0 16h
rendered-master-f722b027a98ac5b8e0b41d71e992f626                  4.0.22-201904011459-dirty 2.2.0 4m
rendered-worker-9777325797fe7e74c3f2dd11d359bc62                  4.0.22-201904011459-dirty 2.2.0 16h

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

python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))" $(oc get MachineConfig/rendered-master-f722b027a98ac5b8e0b41d71e992f626 -o YAML | grep -B4 crio.conf | grep source | tail -n 1 | cut -d, -f2) | grep pid

๊ฒฐ๋ก  :

pids_limit = 2048

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

oc get node | grep master

Output:

ip-10-0-135-153.us-east-2.compute.internal   Ready master 23h v1.12.4+509916ce1

ip-10-0-154-0.us-east-2.compute.internal     Ready master 23h v1.12.4+509916ce1

ip-10-0-166-79.us-east-2.compute.internal    Ready master 23h v1.12.4+509916ce1

์ด์ œ ์„ค์น˜๋œ ํŒŒ์ผ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ContainerRuntimeConfig ๋ฆฌ์†Œ์Šค์— ์ง€์ •ํ•œ pid ๋ฐ debug ์ง€์‹œ๋ฌธ์— ๋Œ€ํ•œ ์ƒˆ ๊ฐ’์œผ๋กœ ํŒŒ์ผ์ด ์—…๋ฐ์ดํŠธ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์•„ํ•จ ๊ทธ ์ž์ฒด:

oc debug node/ip-10-0-135-153.us-east-2.compute.internal โ€” cat /host/etc/crio/crio.conf | egrep 'debug||pidโ€™

๊ฒฐ๋ก  :

...
pids_limit = 2048
...
log_level = "debug"
...

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

์œ„์˜ ์˜ˆ๋Š” 4๊ฐœ์˜ ํ”„๋กœ๋•์…˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ์†Œ๊ทœ๋ชจ OpenShift Container Platform 3000 ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” 4๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ๋Œ€๊ทœ๋ชจ ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ๋“  ์ž‘์—…๋Ÿ‰์€ ๋™์ผํ•˜๊ณ  ๋งค์šฐ ์ž‘์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ContainerRuntimeConfig ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๊ณ  MachineConfigPool์—์„œ ํ•˜๋‚˜์˜ ๋ ˆ์ด๋ธ”๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ผ์ดํ”„์‚ฌ์ดํด ์ „๋ฐ˜์— ๊ฑธ์ณ Kubernetes๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ชจ๋“  ๋ฒ„์ „์˜ OpenShift Container Platform XNUMX.X์—์„œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ข…์ข… ๊ธฐ์ˆ  ํšŒ์‚ฌ๋Š” ๋„ˆ๋ฌด ๋น ๋ฅด๊ฒŒ ๋ฐœ์ „ํ•˜์—ฌ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ํŠน์ • ๊ธฐ์ˆ ์„ ์„ ํƒํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์€ ์—ญ์‚ฌ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜€์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์—”์ง„์˜ ์ถœํ˜„๊ณผ ํ•จ๊ป˜ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ปจํ…Œ์ด๋„ˆ์˜ ์ธ๊ธฐ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋“ค์€ ์ด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์„ ์ž์ฃผ ๋ณด์ธ๋‹ค. ์ด๊ฒƒ์ด Red Hat์ด CRI-O๋ฅผ ์„ ํƒํ•œ ๋˜ ๋‹ค๋ฅธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด์ œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์— ์ดˆ์ ์„ ๋งž์ถฐ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ CRI-O๊ฐ€ OpenShift 4๋กœ ์ž‘์—…ํ•  ๋•Œ ์ตœ๊ณ ์˜ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

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