Kubernetes

๐Ÿ”ญkubectl์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์†Œ๊ฐœ!

kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € krew์™€, ์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

2024.07.29 | ์กฐํšŒ 139 |
0
|

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

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

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

Kubernetes๋ฅผ ์šด์˜ ๋ฐ ๊ด€๋ฆฌํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํˆด์ด๋ผ๊ณ  ํ•˜๋ฉด ์—ญ์‹œ kubectl์ผ ํ…๋ฐ์š”. kubectl ๋•๋ถ„์— ์šฐ๋ฆฐ ์ปค๋งจ๋“œ ์ฐฝ์—์„œ Kubernetes์˜ ๊ฐ Object๋ฅผ ๋ฐฐํฌ, ๊ด€๋ฆฌ, ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ kubectl์„ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค, ์•Œ๊ณ  ๊ณ„์…จ๋‚˜์š”?

์ด๋ฒˆ ์†Œ์‹์ง€์—์„  kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € krew์™€ ์ถ”์ฒœ kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ 3๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

๐Ÿ”Žkrew๋ž€?

krew๋Š” kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € ํˆด์ž…๋‹ˆ๋‹ค.
krew๋Š” kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € ํˆด์ž…๋‹ˆ๋‹ค.

krew๋Š” ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์ด ๊ฐœ๋ฐœํ•˜๋Š” kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ค‘์•™ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๊ณ  ๋ฐฐํฌํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ €์ž…๋‹ˆ๋‹ค.

2024๋…„ 7์›” ๊ธฐ์ค€ ํ˜„์žฌ 264๊ฐœ์˜ kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์ด krew์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”๋ฐ์š”.

krew๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด CLI์ƒ์—์„œ kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ์— ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

macOS, Linux, Windows ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์—์„œ๋„ ์ง€์›๋˜๋Š” krew๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด๊ณ , ์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ๋„ ์†Œ๊ฐœํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ› ๏ธkrew ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

๋กœ์ปฌ์—์„œ krew๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด git์ด ๋จผ์ € ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์šด์˜์ฒด์ œ๋ณ„ krew ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ๊ณต์‹ ๋ฌธ์„œ ๋งํฌ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜ ํ›„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” krew์˜ ์ฃผ์š” ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์ตœ์‹  ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฆฌ์ŠคํŠธ ๋ฐ›์•„์˜ค๊ธฐ

  • kubectl krew update

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ํƒ์ƒ‰

  • kubectl krew search

์›ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‹ค์šด๋กœ๋“œ

  • kubectl krew install {ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„}

์„ค์น˜ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ์ตœ์‹  ์—…๋ฐ์ดํŠธ ํ•œ ๋ฒˆ์— ์„ค์น˜

  • kubectl krew upgrade

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‚ญ์ œ

  • kubectl krew uninstall {ํ”Œ๋Ÿฌ๊ทธ์ธ ์ด๋ฆ„}

 

krew๋Š” kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € ํˆด์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์ด ์–ด๋ ต์ง„ ์•Š์€๋ฐ์š”. ์ด์ œ ์•„๋ž˜์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ kubectel ํ”Œ๋Ÿฌ๊ทธ์ธ 3๊ฐ€์ง€๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

โœจ์ถ”์ฒœ kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ์†Œ๊ฐœ

kubectx

๊ฐ€์žฅ ๋จผ์ € ์†Œ๊ฐœํ•ด๋“œ๋ฆด ์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ kubectx์ž…๋‹ˆ๋‹ค. Kubernetes์˜ context object๋ฅผ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ๋ฐ์š”.

Kubernetes์˜ context๋ž€, ์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ จ config ๊ฐ’์„ ๋ชจ์•„๋‘” Object๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ context๋ฅผ ๋ณ€๊ฒฝํ•ด์„œ ๋‹ค๋ฅธ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ธฐ์กด์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. 'kubectl config get-contexts' ๋ช…๋ น์–ด๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ context ์ด๋ฆ„ ํ™•์ธ
  2. 'kubectl config use-context {context ์ด๋ฆ„}' ๋ช…๋ น์–ด๋กœ context ๋ณ€๊ฒฝ

ํ•˜์ง€๋งŒ kubectx ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด context๋ฅผ ๊ฐ„๋‹จํ•œ CLI ๋ช…๋ น์–ด๋งŒ์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

kubectx์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

neat

๋‹ค์Œ์œผ๋กœ ์†Œ๊ฐœํ•ด๋“œ๋ฆด kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ์€ neat์ž…๋‹ˆ๋‹ค.

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ object์˜ Manifest๋ฅผ ์ฐธ๊ณ ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด kubectl get ... -o yaml ํ˜•ํƒœ์˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๊ฐ€ ๋งŽ์€๋ฐ์š”.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜จ Manifest์—๋Š” ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด object ๋ฐฐํฌ ๋‹น์‹œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋‚˜ ํ˜„์žฌ object์˜ ์ƒํƒœ์™€ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ ๋“ฑ๋„ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์„œ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜จ Manifest์—๋Š” ๋ฐฐํฌ์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ์กด ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜จ Manifest์—๋Š” ๋ฐฐํฌ์— ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋•Œ neat ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด object ๋ฐฐํฌ์— ํ•„์š”์—†๋Š” ์ •๋ณด๊ฐ€ ์ œ์™ธ๋œ Manifest๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

neat ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๋‹ด๊ธด Manifest๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
neat ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๋‹ด๊ธด Manifest๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

neat์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

kail

๋งˆ์ง€๋ง‰์œผ๋กœ ์†Œ๊ฐœํ•ด๋“œ๋ฆด ํ”Œ๋Ÿฌ๊ทธ์ธ์€ kail์ž…๋‹ˆ๋‹ค. Kubernetes์™€ tail์„ ํ•ฉ์นœ ์ด๋ฆ„์„ ์ง€๋‹Œ kail์€, Kubernetes์˜ ๋‹ค์–‘ํ•œ Object์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.

Kubernetes ์ƒ์—์„œ ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์šฐ๋ฆฐ kubectl logs {Object ์ข…๋ฅ˜}/{Object ์ด๋ฆ„} ๋ช…๋ น์–ด๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ๋ฐฉ์‹์€ ๋‹จ์ผ Object์— ๋Œ€ํ•œ ๋กœ๊ทธ๋งŒ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ Object์˜ ๋กœ๊ทธ๋ฅผ ํ•œ ๋ฒˆ์— ํ™•์ธํ•˜๋Š” ๋“ฑ ์ข€ ๋” ๋ณต์žกํ•œ ๋กœ๊ทธ ์กฐํšŒ๋Š” ์–ด๋ ต์ฃ .

kail์€ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.

kail์„ ์ด์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํŠน์ • Namespace์— ์†ํ•œ ๋ชจ๋“  Pod์˜ ๋กœ๊ทธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ • Namespace์— ์†ํ•œ ๋ชจ๋“  Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน์ • Namespace์— ์†ํ•œ ๋ชจ๋“  Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ํŠน์ • Node์— ์†ํ•œ ๋ชจ๋“  Pod์˜ ๋กœ๊ทธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜๋„ ์žˆ์ฃ .

ํŠน์ • Node์— ์†ํ•œ ๋ชจ๋“  Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŠน์ • Node์— ์†ํ•œ ๋ชจ๋“  Pod ๋‚ด ์ปจํ…Œ์ด๋„ˆ์˜ ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ์กฐํšŒํ•˜๋ ค๋Š” ํŠน์ • Namespace๋‚˜ Node์— ์†ํ•œ Pod์˜ ์–‘์ด ๋งŽ์„ ๊ฒฝ์šฐ, kail๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํšŒ๋˜๋Š” ๋กœ๊ทธ์˜ ์–‘์ด ๊ณผ๋‹คํ•  ์ˆ˜ ์žˆ์Œ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

kail์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

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

์ด๋ฒˆ ์†Œ์‹์ง€์—์„  kubectl ํ”Œ๋Ÿฌ๊ทธ์ธ ๋งค๋‹ˆ์ € ํˆด์ธ Krew์™€, Krew๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”์ฒœ ํ”Œ๋Ÿฌ๊ทธ์ธ 3๊ฐ€์ง€์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด๋ดค๋Š”๋ฐ์š”.

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

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

์˜ค๋Š˜๋„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ตฌ๋…์ž๋‹˜ ๐Ÿ˜บ

 

๐Ÿ”—References

 

 

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

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

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

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

๋Œ“๊ธ€

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

ํ™•์ธ
์˜๊ฒฌ์ด ์žˆ์œผ์‹ ๊ฐ€์š”? ์ œ์ผ ๋จผ์ € ๋Œ“๊ธ€์„ ๋‹ฌ์•„๋ณด์„ธ์š” !

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

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

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

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

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

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

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