๐Ÿ“• CS ์Šคํ„ฐ๋””/๋„์ปค, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ๋ฆฌ๋ˆ…์Šค

    ๐Ÿง nohup ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋Œ๋ฆฌ๊ธฐ &

    ๐Ÿ“Œ nohup (no hang up) ๋ฆฌ๋ˆ…์Šค์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•œ ํ„ฐ๋ฏธ๋„์˜ ์„ธ์…˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋”๋ผ๋„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์ง€์†์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด ํ˜„์žฌ ์‚ฌ์šฉ์ž ์„ธ์…˜์ด ์•„๋‹Œ ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋จ nohup ./batch.sh ๐Ÿ“Œ nohup.out ํŒŒ์ผ nohup.out ํŒŒ์ผ์— ํ‘œ์ค€์ถœ๋ ฅ๊ณผ ํ‘œ์ค€์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ชจ๋‘ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด ์˜ต์…˜์„ ํ†ตํ•ด ํ‘œ์ค€ ์ž…๋ ฅ, ํ‘œ์ค€ ์ถœ๋ ฅ, ํ‘œ์ค€ ์—๋Ÿฌ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ํŒŒ์ผ์— ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0 ํ‘œ์ค€ ์ž…๋ ฅ 1 ํ‘œ์ค€ ์ถœ๋ ฅ 2 ํ‘œ์ค€ ์—๋Ÿฌ ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ์ถœ๋ ฅ์€ batch.out ํŒŒ์ผ์— ์ž‘์„ฑ์„ ํ•˜๊ณ , ์—๋Ÿฌ๋Š” batch.err ํŒŒ์ผ์— ์ž‘์„ฑํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. nohup ./batch.sh 1 > batch.out 2 > batch.err ๐Ÿ“Œ huponexit ์„ค์ • ..

    [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #2] โš“์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์•„ํ‚คํ…์ฒ˜ (Control Plane/Node) ์•Œ์•„๋ณด๊ธฐ

    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปดํฌ๋„ŒํŠธ๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane) ์ปดํฌ๋„ŒํŠธ์™€ ๋…ธ๋“œ(Node) ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane) ๋…ธ๋“œ(Node) ์ปดํฌ๋„ŒํŠธ ๊ตฌ์„ฑ์š”์†Œ API Server Scheduler Controller Manager etcd ๊ตฌ์„ฑ์š”์†Œ proxy kubelet ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane) ์ปดํฌ๋„ŒํŠธ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ(Master Node)๋ฅผ ๋‘์–ด ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane) ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ธฐ๋Šฅ ์ œ์–ด๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ๋Š” API Server๋กœ๋งŒ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. (Controller Manager๊ฐ€ etcd์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” API Server๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.) ํ•ด๋‹น ์š”์†Œ..

    [์ฟ ๋ฒ„๋„คํ‹ฐ์Šค #1] ๋„์ปค ์ปจํ…Œ์ด๋„ˆ, ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ์—ญํ• ์ด๋ž€?

    ๐Ÿ“Œ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์— ์ƒ๊ด€์—†์ด ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ์‹œ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์•„๋‹Œ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ์šด์˜์—์„œ ์‹คํ–‰๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์™€ ๋™์ผํ•œ ํ™˜๊ฒฝ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์„ ์ผ์น˜์‹œ์ผœ ์šด์˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ์ž‘์—…์ด ์—†์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ ์ธก๋ฉด์—์„œ๋„ ์ด์ ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ๐Ÿ™‹‍โ™‚๏ธ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์  ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ๊ฐ ์ˆ˜๋™์œผ๋กœ ์ปจํŠธ๋กค ํ•ด์•ผ ํ•จ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์„œ๋ฒ„(์—ฌ์œ  ์„œ๋ฒ„)๋ฅผ ๊ด€๋ฆฌํ•ด์ค˜์•ผ ํ•จ ๋ฐฐํฌ์‹œ ๋กค์•„์›ƒ/๋กค๋ฐฑ์ด ๋ฒˆ๊ฑฐ๋กœ์›€ ์„œ๋น„์Šค ๊ฒ€์ƒ‰ ์ˆ˜๋™ํ™” ๋ฌธ์ œ ์„œ๋น„์Šค ๋…ธ์ถœ ์ˆ˜๋™ํ™” ๋ฌธ์ œ ์„œ๋น„์Šค ์ด์ƒ, ๋ถ€ํ•˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์‘ ๋ฌธ์ œ ๐Ÿ™‹‍โ™‚๏ธ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ๊ด€..

    [Docker] Docker ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์˜ ์ดํ•ด (Volume, Mount)

    ๐Ÿ’ก 1. Docker ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ 2. ๋งˆ์šดํŠธ ์˜ต์…˜ 3. ๋งˆ์šดํŠธ ์‚ฌ์šฉ ์ด์œ  4. volume ์‹คํ–‰ ์˜ˆ์ œ 5. volume๊ณผ bind mount ์ฐจ์ด ๐Ÿ“Œ Docker ์ปจํ…Œ์ด๋„ˆ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋‹ค์ˆ˜์˜ Docker ์ปจํ…Œ์ด๋„ˆ ์šด์˜ ์‹œ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํŒŒ์ผ ๊ณต์œ ๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์ƒ๊ธด๋‹ค. A ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธํŒŒ์ผ์„ B ์ปจํ…Œ์ด๋„ˆ๋กœ ์ˆ˜์ง‘ํ•˜๋Š” ๊ฒฝ์šฐ 2๊ฐ€์ง€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. B๊ฐ€ A ์ปจํ…Œ์ด๋„ˆ ๋ณผ๋ฅจ์— ์ ‘๊ทผํ•ด ๋กœ๊ทธ ํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ํ˜ธ์ŠคํŠธ OS์— ๊ณต์œ  ๋ณผ๋ฅจ์„ ์ƒ์„ฑ, ์ด ๊ณต๊ฐ„์— A ์„œ๋ฒ„ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  B๊ฐ€ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ๐Ÿ“Œ ๋งˆ์šดํŠธ ์‚ฌ์šฉ ์ด์œ  ์ปจํ…Œ์ด๋„ˆ ์‚ญ์ œ ์‹œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์ด ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ์˜ ์˜์†์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋งˆ์šดํŠธํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ถ„๋ฆฌ..