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

k8s

์ฑ•ํ„ฐ3. ํŒŒ๋“œ:์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

๋ž˜๋ฆฌ๋ž˜๋ฆฌ 2023. 4. 4. 14:51

์ฑ•ํ„ฐ 3. ํŒŒ๋“œ:์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

3์žฅ์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ

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

3.1 ํŒŒ๋“œ์†Œ๊ฐœ

ํŒŒ๋“œ → ํ•จ๊ป˜ ๋ฐฐ์น˜๋œ ์ปจํ…Œ์ด๋„ˆ ๊ทธ๋ฃน์ด๋ฉฐ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ธฐ๋ณธ ๋นŒ๋”ฉ ๋ธ”๋ก

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง„ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌ ์šด์˜ํ•œ๋‹ค.

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

 

3.1.1 ํŒŒ๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹ฑํ–‰ํ•˜๋Š” ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ๋ณด๋‹ค ๋‹ค์ค‘ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋‚˜์€ ์ด์œ 

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ์„ค๊ณ„๋จ
  • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ผํ•œ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚จ๊ธด ๋กœ๊ทธ์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

3.1.2 ํŒŒ๋“œ ์ดํ•ดํ•˜๊ธฐ

ํŒŒ๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  →

์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฌถ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•จ๊ป˜ ๋ฌถ๊ณ  ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒ์œ„๊ตฌ์กฐ๊ฐ€ ํ•„์š” → ์ด๊ฒŒ ํŒŒ๋“œ

 

์ปจํ…Œ์ด๋„ˆ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•ด ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌถ์–ด ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฑฐ ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒฉ๋ฆฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€

 

๊ฐ™์€ ํŒŒ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋ถ€๋ถ„ ๊ฒฉ๋ฆฌ

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

ํŒŒ๋“œ ์•ˆ์˜ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ™์€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณต์œ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์™€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ๋‹ค.

 

์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋™์ผํ•œ IP์™€ ํฌํŠธ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ํŒŒ๋“œ ์•ˆ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์ผํ•œ IP์ฃผ์†Œ์™€ ํฌํŠธ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•œ๋‹ค.
  • ๋™์ผํ•œ ํŒŒ๋“œ ์•ˆ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ™์€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ → ๋™์ผํ•œ ํŒŒ๋“œ์ผ ๋•Œ๋งŒ ํ•ด๋‹น

ํŒŒ๋“œ ๊ฐ„ ํ”Œ๋žซ ๋„คํŠธ์›Œํฌ ์†Œ๊ฐœ

  • ํŒŒ๋“œ ์‚ฌ์ด์—์„œ ํ†ต์‹ ์€ ํ•ญ์ƒ ๋‹จ์ˆœํ•˜๋‹ค. ๋‘ ํŒŒ๋“œ๊ฐ€ ๋™์ผ ํ˜น์€ ์„œ๋กœ ๋‹ค๋ฅธ ์›Œ์ปค ๋…ธ๋“œ์— ์žˆ๋Š”์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ํŒŒ๋“œ ์•ˆ์— ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” NAT ์—†๋Š” ํ”Œ๋žซ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํŒŒ๋“œ๋Š” ๋…ผ๋ฆฌ์ ์ธ ํ˜ธ์ŠคํŠธ๋กœ์„œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„๋‹Œ ํ™˜๊ฒฝ์—์„œ

๋™์ผํ•œ ํŒŒ๋“œ์—์„œ ์‹คํ–‰ํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์— ์บก์Аํ™”๋ผ ์žˆ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๋ฉด,

๊ฐ™์€ ๋ฌผ๋ฆฌ์  ํ˜น์€ VM์—์„œ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค.

 

3.1.3 ํŒŒ๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ์ ์ ˆํ•œ ๊ตฌ์„ฑ

ํŒŒ๋“œ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ๊ฐ€๋ณ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฒ„ํ—ค๋“œ ์—†์ด ํ•„์š”ํ•œ ๋งŒํผ ํŒŒ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

๋‹ค๊ณ„์ธต ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฌ๋Ÿฌ ํŒŒ๋“œ๋กœ ๋ถ„ํ• 

์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฒ„๋ฆด์ˆ˜๋„ ์žˆ๋‹ค.

 

๊ฐœ๋ณ„ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์—ฌ๋Ÿฌ ํŒŒ๋“œ๋กœ ๋ถ„ํ• 

๋‘ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ ํŒŒ๋“œ์— ๋„ฃ์ง€ ๋ง์•„์•ผ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ด์œ  → ์Šค์ผ€์ผ๋ง

ํŒŒ๋“œ๋Š” ์Šค์ผ€์ผ๋ฆฌ์˜ ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค.

 

ํŒŒ๋“œ์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

์ฃผ์š” ํ”„๋กœ์„ธ์Šค์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณด์™„ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ.

์‚ฌ์ด๋“œ์นด ์ปจํ…Œ์ด๋„ˆ์˜ ๋‹ค๋ฅธ ์˜ˆ์ œ๋กœ๋Š” ๋กœ๊ทธ ๋กœํ…Œ์ดํ„ฐ์™€ ์ˆ˜์ง‘๊ธฐ, ๋ฐ์ดํ„ฐ ํ”„๋กœ์„ธ์„œ, ํ†ต์‹  ์–ด๋Œ‘ํ„ฐ ๋“ฑ

 

ํŒŒ๋“œ์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฒฐ์ •

  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•จ๊ป˜ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š”๊ฑฐ, ํ˜น์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๊ฐ€? ํ˜น๋Š” ๊ฐœ๋ณ„์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ธ๊ฐ€?
  • ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•จ๊ป˜ ํ˜น์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ์Šค์ผ€์ผ๋ง ๋ผ์•ผ ํ•˜๋Š”๊ฐ€?

 

3.2 YAML ๋˜๋Š” JSON ๋””์Šคํฌ๋ฆฝํ„ฐ๋กœ ํŒŒ๋“œ ์ƒ์„ฑ

ํŒŒ๋“œ๋ฅผ ํฌํ•จํ•œ ๋‹ค๋ฅธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค REST API ์—”๋“œํฌ์ธํŠธ์—

JSON ํ˜น์€ YAML ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ „์†กํ•ด ์ƒ์„ฑํ•œ๋‹ค.

 

YAML ํŒŒ์ผ์— ๋ชจ๋“  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ •์˜ํ•˜๋ฉด ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋„ฃ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ ธ ๋ชจ๋“  ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

3.2.1 ๊ธฐ์กด ํŒŒ๋“œ์˜ YAML ๋””์Šคํฌ๋ฆฝํ„ฐ ์‚ดํŽด๋ณด๊ธฐ

kubectl get ๋ช…๋ น๊ณผ ํ•จ๊ป˜ -o yaml ์˜ต์…˜์„ ํ†ตํ•ด ํŒŒ๋“œ์˜ ์ „์ฒด YAML ์ •์˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํŒŒ๋‹ค๋ฅผ ์ •์˜ํ•˜๋Š” ์ฃผ์š” ๋ถ€๋ถ„ ์†Œ๊ฐœ

๊ฑฐ์˜ ๋ชจ๋“  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์„ธ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋ถ€๋ถ„

  • Metadata: ์ด๋ฆ„, ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ๋ ˆ์ด๋ธ” ๋ฐ ํŒŒ๋“œ์— ๊ด€ํ•œ ๊ธฐํƒ€ ์ •๋ณด ํฌํ•จ
  • Spec: ํŒŒ๋“œ ์ปจํ…Œ์ด๋„ˆ, ๋ณผ๋ฅจ, ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ ๋“ฑ ํŒŒ๋“œ ์ž์ฒด์— ๊ด€ํ•œ ์‹ค์ œ ๋ช…์„ธ
  • Status: ํŒŒ๋“œ ์ƒํƒœ, ๊ฐ ์ปจํ…Œ์ด๋„ˆ ์„ค๋ช…๊ณผ ์ƒํƒœ, ํŒŒ๋“œ ๋‚ด๋ถ€ IP, ๊ธฐํƒ€ ๊ธฐ๋ณธ์ •๋ณด ๋“ฑ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํŒŒ๋“œ์— ๊ด€ํ•œ ํ˜„์žฌ ์ •๋ณด

status ๋ถ€๋ถ„์—๋Š” ํŠน์ • ์‹œ๊ฐ„์˜ ๋ฆฌ์†Œ์Šค ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ๊ธฐ ์ „์šฉ์˜ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ผ ์žˆ๋‹ค.

→ ์ƒˆ ํŒŒ๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ status ๋ถ€๋ถ„์€ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

3.2.2 ํŒŒ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐ„๋‹จํ•œ YAML ์ •์˜ ์ž‘์„ฑํ•˜๊ธฐ

์ปจํ…Œ์ด๋„ˆ ํฌํŠธ ์ง€์ •

ํฌํŠธ ์ง€์ •์„ ์ƒ๋žตํ•ด๋„ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์—์„œ ํฌํŠธ๋ฅผ ํ†ตํ•ด ํŒŒ๋“œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋ถ€์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํฌํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•œ๋‹ค๋ฉด → ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํŒŒ๋“œ์—์„œ ๋…ธ์ถœํ•œ ํฌํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋˜ํ•œ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๋ฉด ์ด๋ฆ„์„ ์ง€์ •ํ•ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3.2.3 kubectl create ๋ช…๋ น์œผ๋กœ ํŒŒ๋“œ ๋งŒ๋“ค๊ธฐ

$ kubectl create -f kubia-manual.yaml
pod "kubia-manual" created

์‹คํ–‰ ์ค‘์ธ ํŒŒ๋“œ์˜ ์ „์ฒด ์ •์˜ ๊ฐ€์ ธ์˜ค๊ธฐ
$ kubectl get po kubia-manual -o yaml
// yaml ํ˜•์‹
$ kubectl get po kubia-manual -o json
// json ํ˜•์‹

$ kubectl get pods
// ํŒŒ๋“œ๋“ค ์ƒํƒœ ์กฐํšŒ

 

3.2.4 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ ๋ณด๊ธฐ

์ปจํ…Œ์ด๋„ˆํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋กœ๊ทธ๋ฅผ ํŒŒ์ผ์— ์“ฐ๊ธฐ๋ณด๋‹ค๋Š” ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ํ‘œ์ค€ ์—๋Ÿฌ์— ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒŒ ์ผ๋ฐ˜์  → ์ด๋กœ ์‚ฌ์šฉ์ž๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

$ docker logs <container id>
// ๋„์ปค ๋กœ๊ทธ ๋ช…๋ น์œผ๋กœ ๋กœ๊ทธ๋ฅผ ํ™•์ธ

$ kubectl logs kubia-manual
// kubectl logs๋ฅผ ์ด์šฉํ•ด ํŒŒ๋“œ ๋กœ๊ทธ ๊ฐ€์ ธ์˜ค๊ธฐ

$ kubectl logs kubia-manual -c kubia
// -c ์˜ต์…˜์„ ํ†ตํ•ด ํŒŒ๋“œ ์†์— ํŠน์ • ์ปจํ…Œ์ด๋„ˆ ๋กœ๊ทธ ํ™•์ธ(ํŒŒ๋“œ ์†์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด)

 

3.2.5 ํŒŒ๋“œ์— ์š”์ฒญ ๋ณด๋‚ด๊ธฐ

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ํฌํŠธ๋ฅผ ํŒŒ๋“œ์˜ ํฌํŠธ๋กœ ํฌ์›Œ๋”ฉ

$ kubectl port-forward kubia-manual 8888:8080
// ํฌํŠธ ํฌ์›Œ๋”ฉ์€ kubectal port-forward ๋ช…๋ น์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.
// ๋จธ์‹ ์˜ ๋กœ์ปฌ ํฌํŠธ 8888์„ kubia-manual ํŒŒ๋“œ์˜ 8080ํฌํŠธ๋กœ ํฌ์›Œ๋”ฉ

 

3.3 ๋ ˆ์ด๋ธ”์„ ์ด์š”ํ•œ ํŒŒ๋“œ ๊ตฌ์„ฑ

ํŒŒ๋“œ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์–ด๋–ค ํŒŒ๋“œ๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ž„์˜์˜ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ž‘์€ ๊ทธ๋ฃน์œผ๋กœ ์กฐ์งํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

๋ ˆ์ด๋ธ”์„ ํ†ตํ•ด ํŒŒ๋“œ์™€ ๊ธฐํƒ€ ๋‹ค๋ฅธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ์˜ ์กฐ์งํ™”๊ฐ€ ์ด๋ค„์ง„๋‹ค.

 

3.3.1 ๋ ˆ์ด๋ธ” ์†Œ๊ฐœ

๋ ˆ์ด๋ธ” - ํŒŒ๋“œ์™€ ๋ชจ๋“  ๋‹ค๋ฅธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์งํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ๋Šฅ.

๋ ˆ์ด๋ธ”์€ ๋ฆฌ์†Œ์Šค์— ์ฒจ๋ถ€ํ•˜๋Š” ํ‚ค-๊ฐ’ ์Œ

๋ ˆ์ด๋ธ” ํ‚ค๊ฐ€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ ˆ์ด๋ธ”์„ ๋ถ™์ด์ง€๋งŒ, ๋‚˜์ค‘์— ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3.3.2 ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ ˆ์ด๋ธ” ์ง€์ •

$ kubectl get po --show-labels
// kubectl get pods ๋ช…๋ น์€ ๋ ˆ์ด๋ธ”์„ ํ‘œ์‹œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ ๊ฐ’์ด๊ธฐ์— --show-labels ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•ด 
๋ ˆ์ด๋ธ”์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

$ kubectl get po -L creation_method,env
// -L ์Šค์œ„์น˜๋กœ ์ง€์ •ํ•ด ํ•ด๋‹น ๋ ˆ์ด๋ธ”์„ ์ž์ฒด ์—ด์— ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

3.3.3 ๊ธฐ์กด ํŒŒ๋“œ ๋ ˆ์ด๋ธ” ์ˆ˜์ •

$ kubectl label po kubia-manual-v2 env=debug --overwrite
// ๊ธฐ์กด ๋ ˆ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” --overwrite ์˜ต์…˜์ด ํ•„์š”ํ•˜๋‹ค
// kubia-manual-v2 ํŒŒ๋“œ์˜ env=prod ๋ ˆ์ด๋ธ”์„ env=debug๋กœ ๋ณ€๊ฒฝ

 

3.4 ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ์ด์šฉํ•œ ํŒŒ๋“œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ ๋‚˜์—ด

๋ ˆ์ด๋ธ”์ด ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋œ๋‹ค!

→ ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋Š” ํŠน์ • ๋ ˆ์ด๋ธ”๋กœ ํƒœ๊ทธ๋œ ํŒŒ๋“œ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ์„ ํƒํ•ด ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ํŠน์ • ๊ฐ’๊ณผ ๋ ˆ์ด๋ธ”์„ ๊ฐ–๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ธฐ์ค€์ด ๋œ๋‹ค.

 

๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋Š” ๋ฆฌ์†Œ์Šค ์ค‘ ๋‹ค์Œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค

  • ํŠน์ •ํ•œ ํ‚ค๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ ˆ์ด๋ธ”
  • ํŠน์ •ํ•œ ํ‚ค์™€ ๊ฐ’์„ ๊ฐ€์ง„ ๋ ˆ์ด๋ธ”
  • ํŠน์ •ํ•œ ํ‚ค๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๊ฐ‘์„ ๊ฐ€์ง„ ๋ ˆ์ด๋ธ”

3.4.1 ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ํŒŒ๋“œ ๋‚˜์—ด

$ kubectl get po -l creation_method=manual
// ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•œ ๋ชจ๋“  ํŒŒ๋“œ๋ฅผ ๋ณด๊ธฐ

$ kubectl get po -l env
// env๋ ˆ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ฐ’์€ ๋ฌด์—‡์ด๋“  ์ƒ๊ด€์—†๋Š” ํŒŒ๋“œ ์กฐํšŒ

$ kubectl get po -l '!env'
// env ๋ ˆ์ด๋ธ”์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š” ํŒŒ๋“œ

3.4.2 ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ์—์„œ ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์‚ฌ์šฉ

๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋Š” ํŒŒ๋“œ ๋ชฉ๋ก์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํŒŒ๋“œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ๋„ ์œ ์šฉํ•˜๋‹ค.

์…€๋ ‰ํ„ฐ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ์—ฌ๋Ÿฌ ๊ธฐ์ค€์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

3.5 ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ์ด์š”ํ•ด ํŒŒ๋“œ ์Šค์ผ€์ค„๋ง ์ œํ•œ

์–ด๋–ค ํŒŒ๋“œ๊ฐ€ ์–ด๋А ๋…ธ๋“œ์— ์Šค์ผ€์ค„๋ง ๋๋А๋ƒ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ๋ฒ„์—๊ฒŒ ํŒŒ๋“œ๋ฅผ ์–ด๋””์— ์Šค์ผ€์ค„๋ง ํ• ์ง€ ์•Œ๋ ค์ค„ ํ•„์š”๋Š” ์—†๋‹ค.

ํ•˜์ง€๋งŒ ์˜ˆ๋กœ GPU ๊ฐ€์†์„ ์ œ๊ณตํ•˜๋Š” ๋…ธ๋“œ์—๋งŒ GPU ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ํŒŒ๋“œ๋ฅผ ์Šค์ผ€์ค„ํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ.

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ „์ฒด์ ์ธ ์•„์ด๋””์–ด → ์œ„์— ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ์‹ค์ œ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ

→ ํŒŒ๋“œ๊ฐ€ ์–ด๋А ๋…ธ๋“œ์— ์Šค์ผ€์ค„๋ง๋ผ์•ผ ํ•˜๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ

 

๊ทธ๋Ÿฌ๋‚˜ ์ •ํ™•ํ•œ ๋…ธ๋“œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋Œ€์‹  ํ•„์š”ํ•œ ๋…ธ๋“œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ธฐ์ˆ ํ•˜๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋Š” ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋„๋กํ•œ๋‹ค.

→ ์ด๋Š” ๋…ธ๋“œ ๋ ˆ์ด๋ธ”๊ณผ ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3.5.1 ์›Œ์ปค ๋…ธ๋“œ ๋ถ„๋ฅ˜ ๋ ˆ์ด๋ธ” ์‚ฌ์šฉ

๋ ˆ์ด๋ธ” → ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜ค๋ธŒ์ ํŠธ์— ๋ ˆ์ด๋ธ”์„ ๋ถ€์ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค.

$ kubectl label node gke-kubia-85f6-node-0rrx gpu=true
// gke-kubia-85f6-node-0rrx ๋…ธ๋“œ์— gpu=true๋ผ๋Š” ๋ ˆ์ด๋ธ”์„ ๋ถ™์ž„

$ kubectl get nodes -l gpu=true
// gpu=true ๋ ˆ์ด๋ธ”์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋ฅผ ๋‚˜์—ด

 

3.5.2 ํŠน์ • ๋…ธ๋“œ์— ํŒŒ๋“œ ์Šค์ผ€์ค„๋ง

์ด์ œ GPU๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด

ํŒŒ๋“œ์˜ YAMLํŒŒ์ผ์— ๋…ธ๋“œ ์…€๋ ‰ํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด ์ž‘์„ฑํ•œ๋‹ค.

spec ์„น์…˜ ์•ˆ์—

nodeSelector ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  gpu: “true”๋ฅผ ํ†ตํ•ด ์กฐ๊ฑด์„ ๋ถ€์—ฌํ•œ๋‹ค.

 

3.5.3 ํ•˜๋‚˜์˜ ํŠน์ • ๋…ธ๋“œ๋กœ ์Šค์ผ€์ค„๋ง

ํŒŒ๋“œ๋Š” ํŠน์ •ํ•œ ๋…ธ๋“œ๋กœ ์Šค์ผ€์ค„๋งํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

→ ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ํŠน์ • ๋…ธ๋“œ๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์ธ ๊ฒฝ์šฐ ์Šค์ผ€์ค„๋ง ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

→ ๊ฐœ๋ณ„ ๋…ธ๋“œ๋กœ ์ƒ๊ฐํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

→ ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ์ง€์ •ํ•œ ํŠน์ • ๊ธฐ์ค€์„ ๋งŒ์กฑํ•˜๋Š” ๋…ธ๋“œ์˜ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์„ ์ƒ๊ฐํ•ด์•ผํ•œ๋‹ค.

 

3.6 ํŒŒ๋“œ์— ์–ด๋…ธํ…Œ์ด์…˜ ๋‹ฌ๊ธฐ

ํŒŒ๋“œ ๋ฐ ๋‹ค๋ฅธ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ ˆ์ด๋ธ” ์ด์™ธ ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜์€ ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ๋ ˆ์ด๋ธ”๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์‹๋ณ„์ •๋ณด๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค.

๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์–ด๋…ธํ…Œ์ด์…˜ ์…€๋ ‰ํ„ฐ์™€ ๊ฐ™์€ ๊ฒƒ์€ ์—†๋‹ค.

์–ด๋…ธํ…Œ์ด์…˜์„ ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋‹ค.

 

3.6.1 ์˜ค๋ธŒ์ ํŠธ์˜ ์–ด๋…ธํ…Œ์ด์…˜ ์กฐํšŒ

kubectl describe ๋ช…๋ น์„ ์ด์š”ํ•˜๊ฑฐ๋‚˜ YAML ์ „์ฒด ๋‚ด์šฉ์„ ํ†ตํ•ด ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋ ˆ์ด๋ธ”์—๋Š” ์งง์€ ๋ฐ์ดํ„ฐ๋ฅผ, ๊ทธ์— ๋น„ํ•ด ์–ด๋…ธํ…Œ์ด์…˜์—๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

 

3.6.2 ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •

$ kubectl annotate pod kubia-manual mycompany.com/someannotation="foo bar"
// kubectl annotate ๋ช…๋ น์„ ํ†ตํ•ด ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€
// ์–ด๋…ธํ…Œ์ด์…˜ ์ถฉ๋Œ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์–ด๋…ธํ…Œ์ด์…˜ ํ‚ค๋กœ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

 

3.7 ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋ฆฌ์†Œ์Šค ๊ทธ๋ฃนํ™”

๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ธŒ์ ํŠธ ๊ทธ๋ฃน์ด ์„œ๋กœ ๊ฒน์น  ์ˆ˜ ์žˆ๋‹ค.

→ ์ด๋Ÿฐ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์˜ค๋ธŒ์ ํŠธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค

→ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ๋ˆ…์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ๋‹ค๋ฅธ๊ฒƒ!

 

3.7.1 ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ํ•„์š”์„ฑ

์—ฌ๋Ÿฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ง„ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์„ ์ข€ ๋” ์ž‘์€ ๊ฐœ๋ณ„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) ๋ฆฌ์†Œ์Šค๋ฅผ ํ”„๋กœ๋•์…˜, ๊ฐœ๋ฐœ, QA ํ™˜๊ฒฝ ํ˜น์€ ์›ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ์†Œ์Šค ์œ ํ˜•์€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์— ์†ํ•˜์ง€๋งŒ ์ผ๋ถ€๋Š” ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.

3.7.2 ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ํŒŒ๋“œ ์‚ดํŽด๋ณด๊ธฐ

$ kubectl get ns
// ๋ชจ๋“  ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํ™•์ธ

$ kubectl get po --namespace kube-system
// kube-system ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์†ํ•ด ์žˆ๋Š” ํŒŒ๋“œ๋ฅผ ํ™•์ธ
// --namespace ๋Œ€์‹  -n ์˜ต์…˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋กœ ๊ด€๊ณ„์—†๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ํŠน์ • ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ,

๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์ž‡๋Š” ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋œ๋‹ค.

 

3.7.3 ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ

$ kubectl create namespace custom-namespace
// kubectl create namespace ๋ช…๋ น์œผ๋กœ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ƒ์„ฑ

 

3.7.4 ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์˜ ์˜ค๋ธŒ์ ํŠธ ๊ด€๋ฆฌ

์ƒ์„ฑํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์— ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” metadata ์„น์…˜์— namespace: custom-namespace ํ•ญ๋ชฉ์„ ๋„ฃ๊ฑฐ๋‚˜

kubectl create ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ ์ง€์ •ํ•œ๋‹ค.

$ kubectl create -f kubia-manual.yaml -n custom-namespace

๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋‘ ํŒŒ๋“œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ —namespace ํ”Œ๋ž˜๊ทธ๋ฅผ kubectl์— ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜„์žฌ kubectl ์ปจํ…์ŠคํŠธ์— ๊ตฌ์„ฑ๋ผ ์ž‡๋Š” ๊ธฐ๋ณธ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

3.7.5 ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒฉ๋ฆฌ ์ดํ•ด

  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณ„๋„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฆฌํ•ด ํŠน์ • ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ํ•˜์ง€๋งŒ ์‹คํ–‰์ค‘์ธ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•œ ๊ฒฉ๋ฆฌ๋Š” ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

3.8 ํŒŒ๋“œ ์ค‘์ง€์™€ ์ œ๊ฑฐ

 

3.8.1 ์ด๋ฆ„์œผ๋กœ ํŒŒ๋“œ ์‚ญ์ œ

$ kubectl delete po kubia-gpu
// ํŒŒ๋“œ๋ฅผ ์ด๋ฆ„์œผ๋กœ ์‚ญ์ œ

ํŒŒ๋“œ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” SIGTERM ์‹ ํ˜ธ๋ฅผ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋ณด๋‚ด ์ง€์ •๋œ ์‹œ๊ฐ„๋™์•ˆ ๊ธฐ๋‹ค๋ฆฐ๋‹ค.

์‹œ๊ฐ„ ๋‚ด์— ์ข…๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด SIGKILL ์‹ ํ˜ธ๋ฅผ ํ†ตํ•ด ์ข…๋ฃŒํ•œ๋‹ค.

 

3.8.2 ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ์ด์šฉํ•œ ํŒŒ๋“œ ์‚ญ์ œ

$ kubectl delete po -l creation_method=manual
// ๋ ˆ์ด๋ธ” ์…€๋ ‰ํ„ฐ๋ฅผ ํ†ตํ•ด ํŒŒ๋“œ ์‚ญ์ œ

 

3.8.3 ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ญ์ œํ•œ ํŒŒ๋“œ ์ œ๊ฑฐ

$ kubectl delete ns custom-namespace
// ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ญ์ œ -> ํŒŒ๋“œ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ํ•จ๊ป˜ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค.

 

3.8.4 ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ๋“œ ์‚ญ์ œ

$ kubectl get pods
$ kubectl delete po --all
// --all ์˜ต์…˜์„ ์ด์šฉํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ํ˜„์žฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ๋“œ๋ฅผ ์‚ญ์ œ

3.8.5 ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ (๊ฑฐ์˜)๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

์ฒซ๋ฒˆ์งธ all ๋ช…๋ น์€ ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๋„๋ก ์ง€์ •ํ•˜๊ณ 

—all ์˜ต์…˜์œผ๋กœ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์ด ์•„๋‹Œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ญ์ œํ•  ๊ฒƒ์„ ์ง€์ •ํ•œ๋‹ค.

 

3.9 ์š”์•ฝ

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