Nailer's blog

Docker & K8S (1)

September 18th, 2019


1*6NVMEmo0qDcQjpXcXI8dtg


  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ๊ตฌ๊ธ€์ด ์ง€๋‚œ 10์—ฌ๋…„ ๊ฐ„ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–ป์€ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์ปจํ…Œ์ด๋„ˆ-ํ†ตํ•ฉ๋„๊ตฌ์ด๋‹ค.

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด Docker๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํˆด

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

์‹œ์Šคํ…œ ์ด์šฉ์ž๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ๋ถ€ํ•˜์˜ ๊ธ‰์ฆ์— ๋Œ€ํ•ด ์Šค์ผ€์ผํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌํ•˜๋Š” ์žฅ์น˜๋„ ์žˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ๋“ค

  • ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋“ค์—์„œ์˜ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ
  • ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ
  • ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ์‹œ
  • ๋ฌด์ •์ง€๋กœ ์—…๋ฐ์ดํŠธ

Kubernetes์˜ ์„œ๋ฒ„ ๊ตฌ์„ฑ


Master Server

  • kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ server

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

Back-end Database(etcd)

  • ๋ถ„์‚ฐ key-value store, ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค.

์‹œ์Šคํ…œ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ์„œ etcd๋ฅผ master server์ƒ์— ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. master server์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์ค‘ํ™”๋ฅผ ๊ฒ€ํ† ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

Node

  • ์‹ค์ œ๋กœ Docker container๋ฅผ ์ž‘๋™์‹œํ‚ค๋Š” ์„œ๋ฒ„

๋…ธ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋งˆ๋ จํ•˜์—ฌ cluster๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. master server์˜ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋…ธ๋“œ๋ฅผ ๋ช‡ ๋Œ€ ๋งˆ๋ จํ• ์ง€๋Š” ์‹œ์Šคํ…œ์˜ ๊ทœ๋ชจ๋‚˜ ๋ถ€ํ•˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” Node ํ•˜๋‚˜๊ฐ€ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ธ์Šคํ„ด์Šค ํ•˜๋‚˜๊ฐ€ ๋œ๋‹ค.

Application ๊ตฌ์„ฑ ๊ด€๋ฆฌ


application ์‹คํ–‰ ํ™˜๊ฒฝ์˜ orchestration ์„ ์œ ์—ฐํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ถ”์ƒํ™”๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค.

Pod

  • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ชจ์•„์„œ **'pod'**๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

app server์šฉ ์ปจํ…Œ์ด๋„ˆ์™€ proxy server์šฉ ์ปจํ…Œ์ด๋„ˆ ๋“ฑ ๊ด€๋ จ๋œ ๊ฒƒ๋“ค์„ pod๋กœ ๋ชจ์€๋‹ค. Pod๋Š” application์˜ Deployment ๋‹จ์œ„๊ฐ€ ๋˜๋ฉฐ Pod ๋‹จ์œ„๋กœ ์ปจํ…Œ์ด๋„ˆ ์ž‘์„ฑ/์‹œ์ž‘/์ •์ง€/์‚ญ์ œ ์™€ ๊ฐ™์€ ์กฐ์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์›น ํ”„๋ก ํŠธ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ Pod์— ์ €์žฅํ•˜๋ฉด ์•ˆ๋œ๋‹ค.

Pod๋Š” ๋ฐ˜๋“œ์‹œ ๋™์ผํ•œ ๋…ธ๋“œ ์ƒ์— ๋™์‹œ์— ์ „๊ฐœ๋œ๋‹ค. Pod ์•ˆ์˜ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ€์ƒ NIC(private IP)2๋ฅผ ๊ณต์œ ํ•˜๋Š” ๊ตฌ์„ฑ์„ ์ทจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปจํ…Œ์ด๋„ˆ๋ผ๋ฆฌ localhost ๊ฒฝ์œ ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Replica Set

  • ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์— ๋ฏธ๋ฆฌ ์ง€์ •๋œ Pod๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์‹คํ–‰์‹œ์ผœ๋‘๋Š” ์žฅ์น˜

ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์— ์ •ํ•ด์ง„ ์ˆ˜์˜ Pod๋ฅผ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰์‹œ์ผœ ๋‘”๋‹ค๋Š” ๊ฒƒ ์‹คํ–‰์ค‘์ธ Pod๋ฅผ ๊ฐ์‹œํ•˜๊ณ  ์ •์ง€๋œ ๊ฒฝ์šฐ์— ํ•ด๋‹น Pod๋ฅผ ์‚ญ์ œํ•˜๊ณ , ์ƒˆ๋กœ์šด Pod๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค. ํด๋ผ์šฐ๋“œ ์•ˆ์— pod๋ฅผ ์–ผ๋งˆ๋‚˜ ์‹คํ–‰์‹œ์ผœ ๋‘˜์ง€๋ฅผ **'Replica ์ˆ˜'**๋ผ๊ณ  ํ•œ๋‹ค. pod์˜ ์ˆ˜๋ฅผ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์˜คํ† ์Šค์ผ€์ผ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Deployment

  • Pod์™€ ReplicaSet์„ ๋ชจ์€ ๊ฒƒ ReplicaSet์˜ ์ด๋ ฅ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

ReplicaSet์˜ ํ…œํ”Œ๋ฆฟ์„ ๊ฐ€์ง€๊ณ  ๊ฑฐ๊ธฐ์„œ Pod์˜ ๊ตฌ์„ฑ์„ ์ •์˜ํ•˜์—ฌ ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์„ ๋”ฐ๋ฅด๋Š” ReplicaSet์„ ๋งŒ๋“ ๋‹ค. ์ด๋ ฅ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— pod ์•ˆ์˜ ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฒ„์ „์—…์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋กค๋ง ์—…๋ฐ์ดํŠธ3๋ฅผ ํ•˜๊ฑฐ๋‚˜ ์ด์ „ ์„ธ๋Œ€๋กœ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ 'Blue-Green Deployment' ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

์ด ์™ธ์—๋„

  • DeamonSet : Node๋ณ„๋กœ ๊ฐ์‹œ ์—์ด์ „ํŠธ์™€ ๊ฐ™์€ ํŠน์ • pod๋ฅผ ๋ฐ˜๋“œ์‹œ ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ
  • Jobs : ์ƒ์ฃผ ์„œ๋น„์Šค๊ฐ€ ์•„๋‹Œ ์ˆ˜์น˜์—ฐ์‚ฐ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์ด ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ์ข…๋ฃŒ๊นŒ์ง€๋กœ ์™„๋ฃŒ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ Pod์—์„œ ์‹คํ–‰์‹œํ‚จ๋‹ค.
  • CronJob : Linux์˜ cron4๊ณผ ๊ฐ™์ด Pod๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ํƒ€์ด๋ฐ์„ ์ง€์ •ํ•œ๋‹ค.

๋“ฑ์˜ ๊ด€๋ฆฌ ํˆด๋“ค์ด ์žˆ๋‹ค.

Network ๊ด€๋ฆฌ(Service)


ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์—์„œ ์‹คํ–‰๋˜๋Š” Pod์— ๋Œ€ํ•ด ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์—‘์„ธ์Šคํ•  ๋•Œ๋Š” ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•œ๋‹ค. Service๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค.

  • Load Balancer : Service์— ๋Œ€์‘ํ•˜๋Š” IP ์ฃผ์†Œ + ํฌํŠธ๋ฒˆํ˜ธ์— ์—‘์„ธ์Šคํ•˜๋ฉด ์—ฌ๋Ÿฌ Pod์— ๋Œ€ํ•œ L4 level์˜ ๋กœ๋“œ๋ฒจ๋Ÿฐ์‹ฑ์ด ์ผ์–ด๋‚œ๋‹ค.

Service์— ํ• ๋‹น๋˜๋Š” IP ์ฃผ์†Œ๋Š”

  • Cluster IP : cluster ๋‚ด๋ถ€์˜ Pod๋ผ๋ฆฌ์˜ ํ†ต์‹ ์„ ์œ„ํ•œ Private IP pod์—์„œ ๋ณด๋‚ด๋Š” ํŒจํ‚ท์€ Node ์ƒ์˜ Proxy ๋ฐ๋ชฌ์ด ๋ฐ›์•„ ์ˆ˜์‹  Pod๋กœ ์ „์†ก๋œ๋‹ค.
  • External IP : ์™ธ๋ถ€ client์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ public IP ์ฃผ์†Œ Pod๋ฅผ ์ƒˆ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ์กด ์„œ๋น„์Šค์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Service ์™ธ์—..

Ingress๋ผ๋Š” pod์— ๋Œ€ํ•œ ํ†ต์‹ ์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. Ingress๋Š” Service์™€ ์—ฐ๊ฒฐ๋˜์–ด ํ†ต์‹  ๋‚ด์šฉ์„ ์ค‘๊ณ„(proxy)ํ•œ๋‹ค. ์ด๋Š” ์ž‘๋™ํ•˜๋Š” ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ๋ฐ, GCP์˜ ๊ฒฝ์šฐ HTTP Load Balancer๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. L7์—์„œ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์— request url ๋ณ„ ๋ถ„๋ฅ˜๋‚˜ virtual host ๊ธฐ๋Šฅ ๋“ฑ ๋ณด๋‹ค ์„ธ์„ธํ•œ ๋„คํŠธ์›Œํฌ ์ œ์–ด๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Label์„ ์‚ฌ์šฉํ•œ ๋ฆฌ์†Œ์Šค ์‹๋ณ„


๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์—์„œ ์ž๋™์œผ๋กœ ๋žœ๋คํ•œ ์ด๋ฆ„์ด ๋ถ€์—ฌ๋จ ์ด ์ด๋ฆ„์œผ๋กœ ์ ์ ˆํžˆ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— Label์„ ๋ถ™์—ฌ์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

  • ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ Key-Value ํ˜•ํƒœ์˜ ์ž„์˜์˜ ๋ฌธ์ž์—ด

Label์„ identifier๋กœ ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

Label์€ ํ•˜๋‚˜์˜ ๋ฆฌ์†Œ์Šค์— ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์„œ Pod์˜ ์—ญํ• ๋ณ„๋กœ ์ž„์˜์˜ ์ด๋ฆ„์„ ๋ถ™์ด๊ฑฐ๋‚˜ ๊ด€๋ จ ์žˆ๋Š” Pod ๋ณ„๋กœ ๋ชจ์•„์„œ ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ• ๋•Œ ์œ ์šฉํ•˜๋‹ค.

๋˜ํ•œ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ผ๋Š” kubernetes์˜ ์ •์˜ ํŒŒ์ผ์„ ์ฐธ์กฐํ•  ๋•Œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ex)

labels:
  app: v1.0
selector:
  type: webserver
  app: v1.0

Kubernetes์˜ ๊ตฌ์กฐ

๋งˆ์Šคํ„ฐ, ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด, ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ํ˜‘๋ ฅํ•˜๋ฉด์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ–‰ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•œ๋‹ค.

image-20190908135526253

Master

  • API Server

    kubernetes์˜ ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Front-end REST API

    ๊ฐ component๋กœ๋ถ€ํ„ฐ ๋ฆฌ์†Œ์Šค ์ •๋ณด๋ฅผ ๋ฐ›์•„ etcd์— ์ €์žฅํ•œ๋‹ค.

    component๋“ค์€ etcd์— ์ ‘๊ทผํ•˜๊ธฐ์œ„ํ•ด API server๋ฅผ ๊ฑฐ์น˜๊ณ 

    ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์›น์˜ GUIํˆด์ด๋‚˜ kubectl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๊ณ , app ๋‚ด์—์„œ API Server๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

    ์ธ์ฆ, ์ธ๊ฐ€ ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ์Œ

  • Scheduler

    Pod๋ฅผ ์–ด๋–ค Node์—์„œ ์ž‘๋™์‹œํ‚ฌ์ง€ ์ œ์–ดํ•˜๋Š” Back-end component

    Node๊ฐ€ ํ• ๋‹น๋˜์ง€ ์•Š์€ Pod๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋นˆ ์˜์—ญ์„ ๊ฐ€์ง„ Node๋ฅผ ์ฐพ์•„

    ์‹คํ–‰์‹œํ‚ค๋Š” ์Šค์บ์ฅด๋ง์„ ์ˆ˜ํ–‰

  • Controller Manager

    Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ํ•ญ์ƒ ๊ฐ์‹œํ•˜๋Š” Back-end Component

    ์ •์˜ ํŒŒ์ผ์—์„œ ์ •์˜ํ•œ ๊ฒƒ๊ณผ ์‹ค์ œ Node๋‚˜ Container์—์„œ ์›€์ง์ด๊ณ  ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋ชจ์•„์„œ ๊ด€๋ฆฌ

Data Store(etcd)

ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” KVS(key value store)

์–ด๋–ค pod๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€์™€ ๊ฐ™์€ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ API server๊ฐ€ ์ฐธ์กฐํ•œ๋‹ค.

Node

  • kubelet

    Node์—์„œ ์ž‘๋™ํ•˜๋Š” ์—์ด์ „ํŠธ

    Pod์˜ ์ •์˜ ํŒŒ์ผ์— ๋”ฐ๋ผ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ Storage๋ฅผ ๋งˆ์šดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค.

    Node์˜ status๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ๊ฐ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ , status๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด API server์—๊ฒŒ ์•Œ๋ฆฐ๋‹ค.

kubernetes์˜ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์ •๋ณด๋ฅผ YAML์ด๋‚˜ JSON์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์ด ์ •์˜ํŒŒ์ผ์„ Manifest file์ด๋ผ๊ณ  ํ•œ๋‹ค. Jenkins์™€ ๊ฐ™์€ ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.


  1. Kubectl ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•œ cli์ด๋‹ค. kubect1 overviewโ†ฉ
  2. (Network Interface Controller) Host์—์„œ network์™€์˜ ์—ฐ๊ฒฐ์„ ๋‹ด๋‹นํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ์žฅ์น˜, ์—ฌ๊ธฐ์„œ๋Š” L2 switch๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋“ฏ ํ•˜๋‹ค.โ†ฉ
  3. (๋ฌด์ค‘๋‹จ๋ฐฐํฌ)Pod ์ธ์Šคํ„ด์Šค๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๊ฒƒ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋””ํ”Œ๋กœ์ด๋จผํŠธ ์—…๋ฐ์ดํŠธ๊ฐ€ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.โ†ฉ
  4. ์šด์˜์ฒด์ œ์˜ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ Job scheduler. ์ž‘์—…์„ ๊ณ ์ •๋œ ์‹œ๊ฐ„, ๋‚ ์งœ, ๊ฐ„๊ฒฉ์— ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šค์ผ€์ค„๋งํ•˜๊ธฐ์œ„ํ•ด ์‚ฌ์šฉ(ํŠน์ •์‹œ๊ฐ„๋งˆ๋‹ค log ๋ถ„์„ ๋“ฑ์„ ํ• ๋•Œ ์œ ์šฉํ• ๋“ฏ)โ†ฉ

Created by SeongHeum CHOI, 2020