๐Ÿณ NCP Container ๐Ÿณ

IT ๋‰ด๋น„ยท2024๋…„ 11์›” 29์ผ

NCP 200,202,207 ์ž๊ฒฉ์ฆ ์ •๋ฆฌ

๋ชฉ๋ก ๋ณด๊ธฐ
8/9

๐Ÿณ ๋„์ปค๋ž€?

  • Container ๊ธฐ๋ฐ˜ ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ
  • 2013๋…„ 3์›” Python ์ปจํผ๋Ÿฐ์Šค์—์„œ Solomon Hykes๊ฐ€ โ€œThe Future of Linux Containerโ€ ์„ธ์…˜์—์„œ ์ฒ˜์Œ ์†Œ๊ฐœ

โœ… ๋„์ปค์˜ ๋ฐœ์ „

  • ๊ธฐ์กด์— ์žˆ๋˜ resource isolation ๊ธฐ์ˆ ๊ณผ network, filesystem ๊ธฐ์ˆ ์„ ์กฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉ์„ฑ์„ ๋Œ€ํญ ๊ฐœ์„ 
  • ๋งŽ์€ ๊ฐœ๋ฐœ์ž์™€ ์—”์ง€๋‹ˆ์–ด๋“ค์—๊ฒŒ ๊ฐ๊ด‘๋ฐ›๊ธฐ ์‹œ์ž‘

๐Ÿ—‚๏ธ ๋„์ปค ํ—ˆ๋ธŒ์™€ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ

1. ๋„์ปค ํ—ˆ๋ธŒ๋ž€?

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

2. ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ž€?

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ ์„œ๋น„์Šค
  • ์ฃผ์š” ๊ธฐ๋Šฅ:
    • Public/Private Endpoint ์ œ๊ณต โ†’ ๋‹ค์–‘ํ•œ ์˜คํผ๋ ˆ์ด์…˜ ์ง€์›
    • ์ปจํ…Œ์ด๋„ˆ ์ทจ์•ฝ์  ๋ถ„์„
      • CVE ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ์ทจ์•ฝ์  ๋ถ„์„
      • ์Šค์บ” ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณด์•ˆ ๊ฐ•ํ™”

โš™๏ธ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ฃผ์š” ๊ธฐ๋Šฅ

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

๐Ÿ”ง ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ปดํฌ๋„ŒํŠธ

โœ… 1. ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ

  • Control Plane: ํด๋Ÿฌ์Šคํ„ฐ ์ „๋ฐ˜์˜ ์ƒํƒœ ๋ฐ ์›Œํฌ๋กœ๋“œ๋ฅผ ๊ด€๋ฆฌ
  • Node: ์›Œํฌ๋กœ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฌผ๋ฆฌ ๋˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ 
  • Scheduler: Pod๋ฅผ ์ ์ ˆํ•œ Node์— ํ• ๋‹น
  • Kubelet: ๊ฐ ๋…ธ๋“œ์—์„œ Pod๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ƒํƒœ๋ฅผ ๋ณด๊ณ 

โœ… 2. ์‹œ๊ฐํ™” ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง

  • ๊ทธ๋ผํŒŒ๋‚˜(Grafana):

    • ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ๋ฐ ์•Œ๋ฆผ ์ œ๊ณต
    • ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ ๊ตฌ์„ฑ
  • ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค(Prometheus):

    • ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„

    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์™€ ํ†ตํ•ฉํ•˜์—ฌ ํšจ์œจ์ ์ธ ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€์›

      ๐Ÿ–ฅ๏ธ 3. VM๊ณผ ์ปจํ…Œ์ด๋„ˆ์˜ ์ฐจ์ด

      โœ… 1. ์ •์˜์™€ ๊ตฌ์กฐ์  ์ฐจ์ด

    • VM (Virtual Machine):

      • ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ํ†ตํ•ด ํ•˜๋“œ์›จ์–ด๋ฅผ ๊ฐ€์ƒํ™”
      • ๋…๋ฆฝ๋œ ์šด์˜์ฒด์ œ(OS) ๋ฐ ์ปค๋„ ํฌํ•จ
      • VM ๋‚ด ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ฒฉ๋ฆฌ๋จ
    • ์ปจํ…Œ์ด๋„ˆ (Container):

      • OS ์ปค๋„์„ ๊ณต์œ ํ•˜๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ๊ฒฉ๋ฆฌ
      • ๋น ๋ฅด๊ณ  ๊ฐ€๋ฒผ์šด ์‹คํ–‰ ํ™˜๊ฒฝ ์ œ๊ณต

      โœ… 2. ์ฃผ์š” ๋น„๊ต

      ํ•ญ๋ชฉVM์ปจํ…Œ์ด๋„ˆ
      ์šด์˜์ฒด์ œVM๋ณ„ ๋…๋ฆฝ์ ์ธ OS ํฌํ•จHost OS๋ฅผ ๊ณต์œ 
      ์‹œ์ž‘ ์†๋„๋А๋ฆผ (๋ถ„ ๋‹จ์œ„)๋น ๋ฆ„ (์ดˆ ๋‹จ์œ„)
      ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉVM๋งˆ๋‹ค CPU/RAM์„ ๊ณ ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋งŒ ์œ ๋™์ ์œผ๋กœ ์‚ฌ์šฉ
      ๋ฐฐํฌ ๋ฐ ํ™•์žฅ๋А๋ฆผ (์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ํฌ๊ณ  ๋ฆฌ์†Œ์Šค ์†Œ๋น„๊ฐ€ ํผ)๋น ๋ฆ„ (์ž‘์€ ์ด๋ฏธ์ง€์™€ ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ)
      ๊ฒฉ๋ฆฌ ์ˆ˜์ค€๋†’์€ ๋ณด์•ˆ์„ฑ (OS ๋‹จ์œ„ ๊ฒฉ๋ฆฌ)ํ”„๋กœ์„ธ์Šค ๋ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ˆ˜์ค€ ๊ฒฉ๋ฆฌ
      ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ๋™์ผ OS ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ (Host ์˜์กด์„ฑ ์žˆ์Œ)

๐Ÿ“ฆ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ•ต์‹ฌ ๊ฐœ๋…

โœ… 1. Pod

  • Pod๋ž€?
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ ์‹คํ–‰ ๋‹จ์œ„
    • ๊ฐ€์žฅ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ๋ฐฐํฌ ๋‹จ์œ„
    • ๋ชจ๋ธ 1: ๋‹จ์ผ ์ปจํ…Œ์ด๋„ˆ Pod
    • ๋ชจ๋ธ 2: ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜‘๋ ฅํ•˜๋Š” Pod

โœ… 2. Deployment

  • Deployment๋ž€?
    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šดํƒ€์ž„ ์—†์ด ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ง€์›
    • ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋Œ€ ์ƒํƒœ(Desired State)๋ฅผ ์œ ์ง€
  • ์ฃผ์š” ์—ญํ• :
    • ReplicaSet ์—…๋ฐ์ดํŠธ ๋ฐ ๊ด€๋ฆฌ

โœ… 3. DaemonSet

  • ๋ชจ๋“  ๋…ธ๋“œ์—์„œ Pod ๋ณต์ œ๋ณธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฆฌ์†Œ์Šค
  • ๋…ธ๋“œ ์ถ”๊ฐ€/์‚ญ์ œ ์‹œ ์ž๋™์œผ๋กœ Pod๋ฅผ ๊ด€๋ฆฌ

โœ… 4. Service

  • ์—ฌ๋Ÿฌ Pod๋ฅผ ๋ฌถ์–ด ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ
  • ClusterIP: ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ
  • NodePort/LoadBalancer: ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ ์ˆ˜์‹  ๊ฐ€๋Šฅ

โœ… 5. Ingress

  • ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๋‚ด๋ถ€ Service๋กœ ๋ผ์šฐํŒ…
  • Host ๊ธฐ๋ฐ˜ ๋ฐ URL Path ๊ธฐ๋ฐ˜ ๊ทœ์น™ ์‚ฌ์šฉ

โ˜๏ธ ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์„œ๋น„์Šค ์†Œ๊ฐœ

โœ… 1. Legacy Kubernetes vs Kubernetes Service

Legacy KubernetesKubernetes Service
์„œ๋ฒ„ ์ค€๋น„ ๋ฐ ์„ค์น˜ ํ•„์š”ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์ž๋™ํ™”
๋งˆ์Šคํ„ฐ ๋…ธ๋“œ ๊ด€๋ฆฌ ํ•„์š”๊ด€๋ฆฌ ํšจ์œจ์„ฑ ์ฆ๊ฐ€
์ถ”๊ฐ€ ๋ณผ๋ฅจ ๊ตฌ์„ฑ ํ•„์š”NAS/BlockStorage ์ง€์›

โœ… 2. Kubernetes Control Plane ์ž๋™ํ™”

  • ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ/์„ค์ •/์„ค์น˜๋ฅผ ๊ฐ„๋‹จํžˆ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ
  • Container Registry์™€ ์—ฐ๋™ํ•˜์—ฌ ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ

๐Ÿ”‘ ์ •๋ฆฌ ๋ฐ ์ฃผ์š” ์šฉ์–ด

  • Pod: ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ตœ์†Œ ์‹คํ–‰ ๋‹จ์œ„
  • Deployment: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ
  • DaemonSet: ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ๋™์ผํ•œ ์ž‘์—… ์ˆ˜ํ–‰
  • Service: ํŠธ๋ž˜ํ”ฝ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
  • Ingress: ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ…
profile
๋‰ด๋น„

0๊ฐœ์˜ ๋Œ“๊ธ€