๐Ÿ“’ Docker(4)

Kimdongkiยท2024๋…„ 5์›” 31์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
23/33

๐Ÿ“Œ Docker ์ •๋ฆฌ

1. Docker ๊ด€๋ จ ์šฉ์–ด

  • Dcoekr Image
    -> ๊ฒฝ๋Ÿ‰ํ™” ๋˜์–ด์žˆ๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์กŒ๋‹ค.
    • Dockerfile : SW์˜ ์„ธํŒ…ํŒŒ์ผ
  • Docker Container
  • Docker Hub(hub.docker.com)
  • Docker Compose
    • ๋‹ค์ˆ˜์˜ Docker Container๋“ค์„ ๊ด€๋ฆฌ
    • docker-compose.yml
      • Service
      • Networks
      • Volumes: host/anonymous/named volumes

2. Docker๋ฅผ ์‹ค์ œ Production ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ ์œ ๋…ํ•  ์ 

  • Docker volumes
    • Host volume์€ ๋ณดํ†ต ๊ฐœ๋ฐœ์‹œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ container์•ˆ์œผ๋กœ ๋งˆ์šดํŠธํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
    • Production์—์„œ๋Š” named volumes๋ฅผ ์จ์•ผํ•œ๋‹ค.
  • Docker container๋Š” read-only๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋‚ด์šฉ์„ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค๋ฉด ์‹คํ–‰ ์ค‘์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
    • ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ์ƒˆ๋กœ ๋นŒ๋“œํ•˜๊ณ  ๋‹ค์‹œ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ์ƒˆ๋กœ Launchํ•ด์•ผํ•œ๋‹ค.
    • ์ž๋™ํ™”๊ฐ€ ์ค‘์š”ํ•ด์กŒ๋‹ค. : CI/CD ํ”„๋กœ์„ธ์Šค
  • ๋‹ค์ˆ˜์˜ Docker Container๋“ค์„ ๋‹ค์ˆ˜์˜ Host๋“ค์—์„œ ์‹คํ–‰์ด ํ•„์š”ํ•˜๋‹ค.
    • ์šฉ๋Ÿ‰ ๋ฌธ์ œ์™€ Fail-over(๋˜๋Š” fail-tolerant)

3. Docker๋ฅผ ๊ฐœ์ธ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

  • ๊ฐœ๋ฐœ์‹œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ Docker Image๋กœ ๋ฐ›์•„์™€์„œ Container๋กœ ์‹คํ–‰
  • ์—ฌ๋Ÿฌ SW๋ฅผ ์—ฐ๋™ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ฒƒ๋“ค์„ docker-compose๋กœ ์„ค์ •
  • ์žฅ์ 
    • ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ SW์„ค์น˜(๋ฌธ์„œํ™”ํ•˜๊ณ  ๋งค๋‰ด์–ผํ•˜๊ฒŒ ์„ค์น˜ ๋ถˆํ•„์š”)
    • ๋ถ„๋ฆฌ๋œ ์ถฉ๋Œ์—†๋Š” ํ™˜๊ฒฝ์—์„œ SW์„ค์น˜/์‹คํ–‰

๐Ÿ“Œ ์„œ๋ฒ„ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€

ํ•ด๊ฒฐ๋ฐฉ์•ˆ

1. ๋ฌธ์„œํ™”

  • ์ง€๊ธˆ ์„œ๋น„์Šค ์ƒํ™ฉ๊ณผ ์…‹์—… ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™”
  • ๋‹ค์–‘ํ•œ ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ๋ฌธ์„œํ™”
  • ๋ฌธ์„œ๋ฅผ ํ˜„์žฌ ์ƒํ™ฉ์— ๋งž๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ์—„์ฒญ๋‚œ ๋…ธ๋ ฅ์ด๋‹ค.
  • ๋˜ํ•œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์˜๋ฏธ๊ฐ€ ์—†๋Š” ๊ฒฝ์œ ๋„ ๋งŽ๋‹ค.
  • ๋˜ ๋ช‡๋ฐฑ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์ผ์ผํžˆ ๊ด€๋ฆฌํ•˜๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

2. ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌ

  • Infrastructure As Code : DevOps ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ผญ ์•Œ์•„์•ผํ•˜๋Š” ๊ธฐ์ˆ 
  • ๋ฌธ์„œ๋ณด๋‹ค๋Š” ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
    • ๋Œ€ํ™”ํ˜• ๋ช…๋ น๋ณด๋‹ค๋Š” ์ž๋™ํ™”๋œ ์Šคํฌ๋ฆฝํŠธ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค.
    • ๋‹ค์ˆ˜์˜ ์„œ๋ฒ„๋“ค์— ๋ช…๋ น์„ ๋Œ€์‹  ์‹คํ–‰ํ•ด์ค€๋‹ค.
  • ๋‹ค์–‘ํ•œ ํˆด๋“ค์ด ์Ÿ์•„์ ธ ๋‚˜์˜จ๋‹ค.
    • Chef
    • Puppet
    • Ansible
    • Terraform
    • ...
  • ๋‹จ์ 
    • Learning curve๊ฐ€ ๋†’๋‹ค.
    • ์„ค์น˜์‹œ SW ์ถฉ๋Œ ๋ฌธ์ œ์—๋Š” ํฌ๊ฒŒ ๋„์›€๋˜์ง€ ์•Š๋Š”๋‹ค.

3. VM ๋„์ž…

  • SW ์ถฉ๋Œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด VM์„ ์‚ฌ์šฉ
    • ํ•œ Physical Server์— ๋‹ค์ˆ˜์˜ VM์„ ์˜ฌ๋ฆฌ๊ณ  ์„œ๋น„์Šค๋ณ„๋กœ VM์„ํ•˜๋‚˜์”ฉ ํ• ๋‹น
  • ๋‹จ์ 
    • VM์ด ์ „๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค ์†Œ๋น„๊ฐ€ ํฌ๊ณ  ๋А๋ฆฌ๋‹ค.
    • ๊ฒฐ์ •์ ์œผ๋กœ ํŠน์ • VM ๋ฒค๋” ํ˜น์€ ํด๋ผ์šฐ๋“œ์—๊ฒŒ ์ข…์†๋˜์–ด ๋ฒ„๋ฆฐ๋‹ค.(Lock-in)

4. Docker์˜ ๋„์ž…

  • ๋ชจ๋“  SW๋ฅผ Docker Image๋กœ ๋งŒ๋“ค๋ฉด ๊ฐ„ํŽธํ•˜๊ฒŒ ์–ด๋””์„œ๋“  ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์— ์ตœ์ ํ™” ๋˜์–ด์žˆ๋‹ค.
  • VM์—๋น„ํ•ด ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๋„ ์ ๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„๋„ ๋น ๋ฅด๋‹ค.
  • ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์šฐ๋“œ๋‚˜ ํŠน์ •์—…์ฒด Lock-in ์ด์Šˆ๋„ ์—†๋‹ค.
  • ๋‹จ์ ์˜ ์ ๋‹ค.
    • Docker Container์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.

์ •๋ฆฌ

1. Docker์˜ ์žฅ์ 

  • Container ์ƒ์„ฑ์ด ์‰ฝ๊ณ  ๋น ๋ฅด๋‹ค.(VM๊ณผ ๋น„๊ตํ–ˆ์„๋•Œ)
  • Image๋ฅผ ํ†ตํ•ด ๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ฐฐํฌํ•˜๋ฉฐ ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ๋กค๋ฐฑ์ด ์šฉ์ดํ•˜๋‹ค.
  • ์‚ฌ์šฉ ์–ธ์–ด๋“ฑ์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ฅธ ๊ด€๋ฆฌ๋ฐฉ๋ฒ•์— ์ฐจ์ด๊ฐ€ ์—†๋‹ค.
    • ๊ฐœ๋ฐœ, ๋นŒ๋“œ, ๋“ฑ๋ก, ์‹คํ–‰ ์ •์ฐจ๊ฐ€์ผ๊ด€๋˜๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋‹ค.(Dev, Test, Production)
  • ์˜คํ”ˆ ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ํด๋ผ์šฐ๋“œ ๋ฒค๋”๋‚˜์—…์ฒด์™€ ๋…๋ฆฝ์ ์ด๋‹ค.

2. Docker๋Š” ์„œ๋น„์Šค ๋ฐฐํฌ์˜ ๊ธฐ๋ณธ์ด ๋˜์—ˆ๋‹ค.

  • ๋งŽ์€ DevOps ์—”์ง€๋‹ˆ์–ด๋“ค์€ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ Docker Image๋กœ ๋งŒ๋“ค์–ด ์šด์˜ํ•œ๋‹ค.
  • ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์ถœ๋ ฅ๋ฌผ์€ Docker Image๊ฐ€ ๋˜๊ณ  ์žˆ๋‹ค.
    • Github์—์„œ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋ฉด docker image๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ๋‚ด๋ถ€ Registry์— ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.
  • ๋‹ค์ˆ˜์˜ Docker Image๋“ค์„ ๋” ๋งŽ์€ ์ˆ˜์˜ Docker Container๋กœ ์‹คํ–‰/๊ด€๋ฆฌ ํ•˜๋Š”๊ฒƒ์ด ํ•„์š”ํ•ด์กŒ๋‹ค.
  • ๋ชจ๋“  ๊ฒƒ์˜ ์ปจํ…Œ์ด๋„ˆํ™” -> Containerization

๐Ÿ“Œ Container Orchestration

  • Container Orchestration : ๋‹ค์ˆ˜์˜ Container๋“ค์„ ์ž˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    -> DevOps ํŒ€์˜ ๋ถˆํ•„์š”ํ•œ ์ž‘์—…๋“ค์„ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค.

1. Container Orchestration ๊ธฐ๋Šฅ - ์š”์•ฝ

  • ํ•œ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์— ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋“ค์ด ๊ณต์กด DB, Web Service, Backend. ...
    • ์ž์› ์š”์ฒญ์„ ๋ฐ›์•„ ๋งˆ์Šคํ„ฐ๊ฐ€ ์ž์›์„ ํ• ๋‹นํ•œ๋‹ค.
  • ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต : ๋ฐฐํฌ, ์Šค์ผ€์ผ๋ง, ๋„คํŠธ์›Œํฌ, ์ธ์‚ฌ์ดํŠธ ๋“ฑ๋“ฑ

2. Container Orchestration ๊ธฐ๋Šฅ - SW ๋ฐฐํฌ

  • ์„œ๋น„์Šค ์ด๋ฏธ์ง€๋ฅผ Container๋กœ ๋ฐฐํฌํ•œ๋‹ค.

  • ์ด์ƒ์ด ๊ฐ์ง€๋˜๋ฉด ์ด์ „ ์•ˆ์ • ๋ฒ„์ „์œผ๋กœ ๋กค๋ฐฑ!

    • v1์—์„œ v2๋กœ ๋ฐฐํฌ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด v1์œผ๋กœ ๋กค๋ฐฑ
    • Container์˜ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ํฐ ์ด์Šˆ๊ฐ€ ๋œ๋‹ค.
    • DevOps ํŒ€ ๊ด€์ ์—์„œ ๋ณด๋ฉด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.

3. Container Orchestration ๊ธฐ๋Šฅ - ์Šค์ผ€์ผ๋ง

  • ํŠน์ • ์„œ๋น„์Šค์˜ Container ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ๋Š˜๋ฆฌ๊ณ  ์ค„์ด๋Š” ๊ฒƒ
  • ์ด๋•Œ ์„œ๋ฒ„์˜ Utilization๋„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.

4. Container Orchestration ๊ธฐ๋Šฅ - ๋„คํŠธ์›Œํฌ

  • ์„œ๋น„์Šค๊ฐ€ ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋‚˜๋ˆ ์ง€๋ฉด์„œ ์ด๋“ค์„ ๋Œ€ํ‘œํ•˜๋Š” Load Balancer๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ์„œ๋น„์Šค๋“ค๊ฐ„์— ์„œ๋กœ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.
    • ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ

5. Container Orchestration ๊ธฐ๋Šฅ - ์ธ์‚ฌ์ดํŠธ

  • ๋…ธ๋“œ/์ปจํ…Œ์ด๋„ˆ ๋ฌธ์ œ์‹œ ํ•ด๊ฒฐ
    • ์„œ๋ฒ„ 2์˜ F๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์ด๋ฅผ ์„œ๋ฒ„ 3์— ์žฌ์‹คํ–‰
    • F ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์ •๋ณด๋„ ๋งž๊ฒŒ ์ˆ˜์ •
  • Logging/Analytics ๋“ฑ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต
    • ์™ธ๋ถ€ ์„œ๋น„์Šค plug and play
  • ์ „์ฒด ์„œ๋น„์Šค ๋ถ„์„
    • ์‹œ๊ฐํ™”
    • ๋ฌธ์ œ ๋ถ„์„

6. Container Orchestration Tool

  • Mesos
  • Marathon
  • DEIS
  • Rancher
  • Nomad
  • Docker Swarm
  • K8s(Kubernetes)

๐Ÿ“Œ K8s

์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค ๋ฐฐํฌ/์Šค์ผ€์ผ/๊ด€๋ฆฌ ์ž๋™ํ™”๋ฅผํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ

  • ๊ตฌ๊ธ€์—์„œ ์‚ฌ์šฉํ•˜๋˜ Borg ์„œ๋น„์Šค๋ฅผ ์˜คํ”ˆ์†Œ์Šคํ™”ํ•œ ๊ฒƒ์ด๋‹ค (2015๋…„)
  • ํด๋ผ์šฐ๋“œ๋‚˜ on-prem ๋ชจ๋‘์—์„œ ์ž˜ ๋™์ž‘ํ•œ๋‹ค.
  • ์–ด๋А ์ปจํ…Œ์ด๋„ˆ์ด๋˜ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ฃผ๋กœ Docker Container๋“ค์ด ๋Œ€์ƒ์ด ๋œ๋‹ค.
  • ๋ฌผ๋ฆฌ์„œ๋ฒ„๋‚˜ ๊ฐ€์ƒ์„œ๋ฒ„ ์œ„์—์„œ ๋ชจ๋‘ ๋™์ž‘ํ•œ๋‹ค.
  • ์ง€๊ธˆ์€ Cloud Native Computing Foundation์ด๋ผ๋Š” ๋น„์˜๋ฆฌ ๋‹จ์ฒด์—์„œ ์šด์˜ํ•œ๋‹ค.
    • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ SW๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ผ๊นŒ?
      • ์ปจํ…Œ์ด๋„ˆ, ์„œ๋น„์Šค๋ฉ”์‹œ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, API, DevOps, On-demand Infra

๊ฐ€์žฅ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ (Orchestration) System

  • ์‚ฌ์šฉํšŒ์‚ฌ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ™œ๋™์ด ๊ต‰์žฅํžˆ ๋งŽ๊ณ  ํ™œ๋ฐœํ•˜๋‹ค.
  • ์นด์นด์˜ค, ๋„ค์ด๋ฒ„, ๋ผ์ธ, ์ฟ ํŒก ๋“ฑ์˜ ๊ตญ๋‚ด ์—…์ฒด๋„ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉํ•œ๋‹ค.
  • K8s์œ„์— ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ Container Orchestration ํˆด๋“ค์ด ์ƒ๊ฒจ๋‚ฌ๋‹ค.
  • ๋ชจ๋“  ๊ธ€๋กœ๋ฒŒํด๋ผ์šฐ๋“œ ์—…์ฒด๋“ค์ด ์ง€์›ํ•œ๋‹ค. : EKS, AKS, GKE

ํ™•์žฅ์„ฑ์ด ์ข‹์•„์„œ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

  • ML : Kubeflow
  • CI/CD : Tekton
  • Service Mesh : Istio
  • Serverless : Kubeless

๋‹ค์ˆ˜์˜ ์„œ๋ฒ„์— ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ == Docker Container
  • ๋ณดํ†ต Docker์™€ K8s๋Š” ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค.
  • Pod : ๊ฐ™์€ ๋””์Šคํฌ์™€ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” 1+ ์ปจํ…Œ์ด๋„ˆ๋“ค์˜ ์ง‘ํ•ฉ

๐Ÿ“Œ K8s ์•„ํ‚คํ…์ฒ˜

1. ๊ธฐ๋ณธ ๊ตฌ์กฐ : ๋งˆ์Šคํ„ฐ - ๋…ธ๋“œ

  • ๋…ธ๋“œ๋Š” ๋ฌผ๋ฆฌ์„œ๋ฒ„์ด๊ฑฐ๋‚˜ ๊ฐ€์ƒ ์„œ๋ฒ„์ด๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ๋Š” 1+ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ์ด๋‹ค.
  • ๋งˆ์Šคํ„ฐ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • Kubelet : ๋งˆ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•˜๋Š” ์—์ด์ „ํŠธ

2. ๊ธฐ๋ณธ ๊ตฌ์กฐ : K8s ํ”„๋กœ์„ธ์Šค

  • Master ์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๋“ค์ด ๋Œ๊ณ  ์žˆ๋‹ค.
    • API Server(Container๋กœ ๋™์ž‘) : kube-apiserver
      • Entrypoint of K8s cluster
      • Web UI, CLI(kubectl), API
    • Scheduler
      • Pods ์ƒ์„ฑ๊ณผ ํ• ๋‹น(๋…ธ๋“œ๋“ค์˜ ์ƒํ™ฉ์„ ๊ณ ๋ ค - Utilization)
    • Controller Manager
      • ์ „์ฒด ์ƒํ™ฉ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  fault tolerance ๋ณด์žฅ
    • Master๋Š” High Availability๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.
    • etcd
      • K8s ํ™˜๊ฒฝ ์„ค์ • ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” key/value ์Šคํ† ์–ด๋กœ ๋ฐฑ์—…๋œ๋‹ค.
  • Controller runtime
    • ๋Œ€๋ถ€๋ถ„ Docker๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.

3. Kubectl : ์ปค๋งจ๋“œ๋ผ์ธ ํˆด

  • kubectl run hello-minikube
  • kubectl cluster-info
  • kubectl get node

4. Pod๋ž€?

  • ๋‹ค์‹œ ํ•œ๋ฒˆ K8s ์‚ฌ์šฉ์‹œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐ”๋กœ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค.
  • Pod : K8s ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋นŒ๋”ฉ ๋ธ”๋ก
  • 1 Pod : ๋ณดํ†ต์€ ํ•˜๋‚˜์˜ Container๋กœ ๊ตฌ์„ฑ
    • ํ•˜๋‚˜๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ์—๋Š” ๋ณดํ†ต helper container๊ฐ€ ๊ฐ™์ด ์‚ฌ์šฉ๋œ๋‹ค.
    • ๊ฐ™์€ pod ์•ˆ์—์„œ๋Š” ๋””์Šคํฌ์™€ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ณต์œ ๋œ๋‹ค.
    • Fail-over๋ฅผ ์œ„ํ•ด์„œ replicas๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.
      • ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณต์ œ๋ณธ์„ ์œ ์ง€ํ•œ๋‹ค.
  • Pod๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š” self-contained server

5. Yaml ํ™˜๊ฒฝ ์„ค์ • ์˜ˆ์‹œ

apiVersion: apps/v1
kind: Pod
metadata:
	name: nginx
spec:
	containers:
    - name: nginx
    	image: nginx

6. Pod ์ƒ์„ฑ ์˜ˆ์‹œ

  • kubectl create -f pod-definition.yml
  • kubectl get pods
  • kubectl describe pod nginx
  • kubectl run nginx --image nginx

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