๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Docker Study

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ฐ์ฒด ์ดํ•ดํ•˜๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ฐ์ฒด

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

Pod ๊ฐ์ฒด

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋ฐฐํฌ๋‹จ์œ„๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์†Œ์Šค์ด๋‹ค.
  • pod๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ , ๋ณผ๋ฅจ ๋ฐ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๊ณต์œ  ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•œ๋‹ค.
  • deployment, replicaset ๋“ฑ ๋‹ค์–‘ํ•œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ pod๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • pod๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ IP์ฃผ์†Œ(๋””ํดํŠธ๋กœ ์ƒ์„ฑ)๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด localhost๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • pod๊ฐ€ ๊ต์ฒด๋˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ IP๋„ ๋ณ€๊ฒฝ๋œ๋‹ค.
  • pod๋Š” ์ผ์‹œ์ ์ด๋ฉฐ, ์žฅ์•  ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋Œ€ํ•œ ๋Œ€์‘์„ ์œ„ํ•ด ์ž์ฃผ ์‚ญ์ œ๋˜๊ณ  ์žฌ์ƒ์„ฑ๋œ๋‹ค.
    • pod๊ฐ€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ์˜ํ•ด ๊ต์ฒด๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋œ๋‹ค.
  • ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • Pod๋Š” ์Šค์ผ€์ผ๋ง ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ฉฐ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์ผํ•œ Pod ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์Šค์ผ€์ผ๋ง์€ replicaset, deployment๋“ฑ๊ณผ ๊ฐ™์€ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  • ๋™์ผํ•œ pod๋‚ด์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ™์€ ํ˜ธ์ŠคํŠธ์™€ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋œ๋‹ค
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•จ๊ป˜ ๋ฐฐ์น˜ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ Pod ๊ฐ์ฒด๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ํŠน์ • ์›Œ์ปค ๋…ธ๋“œ์— ํ• ๋‹นํ•˜์ง€ ์•Š๋Š”๋‹ค.

Deployment ๊ฐ์ฒด

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

Service ๊ฐ์ฒด

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ Pod๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ์ง‘ํ•ฉ์œผ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๊ณ , ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์˜ ์š”์ฒญ์„ Pod ์ง‘ํ•ฉ์— ๋ถ„๋ฐฐํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • Service๋Š” ์™ธ๋ถ€์—์„œ Pod์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๋‹ค.
  • Service ๊ฐ์ฒด๋Š” Pod์˜ IP ์ฃผ์†Œ๊ฐ€ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ๋Œ€์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ Pod ๋‚ด๋ถ€ IP๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ Pod์— ์ ‘๊ทผํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
    • Pod๊ฐ€ ๊ต์ฒด๋  ๋•Œ๋งˆ๋‹ค IP์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š”๋ฐ Service๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์ผ๊ด€๋œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ ๋˜๋Š” ์™ธ๋ถ€์—์„œ Pod์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” IP์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    • Service์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ, ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ClusterIP, ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ NodePort, LoadBalancer ๋“ฑ ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ์žˆ๋‹ค.
  • ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ง€์›ํ•˜์—ฌ ์—ฌ๋Ÿฌ Pod ์ค‘์—์„œ ์ ์ ˆํ•œ Pod๋กœ ์ ‘๊ทผ์„ ๋ถ„์‚ฐํ•œ๋‹ค.

Ingress ๊ฐ์ฒด

  • Ingress ๊ฐ์ฒด๋Š” HTTP ๋ฐ HTTPS ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ… ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ธ๋ถ€ ๋…ธ์ถœ์„ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
  • ์ธ๊ทธ๋ ˆ์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์ด๋‹ค.
  • ์ธ๊ทธ๋ ˆ์Šค ๊ฐ์ฒด๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์˜ ์„œ๋น„์Šค๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, HTTP ํ˜ธ์ŠคํŠธ ๋˜๋Š” ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.