ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์„ค์น˜ ํ•  ๋•Œ kubelet, kubeadam kubectl๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ์„ค์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๊ฒŒ ๋œ๋‹ค๋ฉด, ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์•„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

 

๊ตฌ์กฐ

์ถœ์ฒ˜ : https://www.guru99.com/kubernetes-tutorial.html

 ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ „์ฒด์ ์ธ ๊ตฌ์กฐ๋Š” ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ Master์™€ ๋‹ค์ˆ˜์˜ Worker ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ๋Š” local ํ™˜๊ฒฝ์—์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒฝ์šฐ์ด๋‹ค. ๋ณธ ๊ธ€์—์„œ๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ๋ฅผ ์ค‘์ ์œผ๋กœ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

Master Node

 ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ ์›Œ์ปค ๋…ธ๋“œ๋ฅผ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋ฉฐ Pod๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ ์ ˆํ•œ Worker Node๋ฅผ ์Šค์ผ€์ค„๋งํ•˜๋Š” ์—ญํ•  ๋“ฑ๊ณผ ๊ฐ™์ด ์ „๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ์™€ Pod๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 (Pod : ํ•˜๋‚˜ ๋˜๋Š” ๋‹ค์ˆ˜์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰ ๋  ์ˆ˜ ์žˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์˜ค๋ธŒ์ ํŠธ, ๋‹ค์Œ ๊ธ€์—์„œ ์ž์„ธํžˆ ๋‹ค๋ฃจ๊ณ ์ž ํ•œ๋‹ค.)

 

 ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•ต์‹ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ETCD
  • API-server
  • Controller-Manager
  • Scheduler

 

Worker Node

 ์š”์ฒญ๋œ Pod๋“ค์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋ฉฐ, Pod์˜ ์ƒํƒœ์™€ ๋…ธ๋“œ์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์™€ ํ†ต์‹ ํ•˜์—ฌ Pod๊ฐ€ ์š”์ฒญ์— ๋งž๊ฒŒ ์ž˜ ์‹คํ–‰๋˜๋ฉฐ ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

 

 

 ์›Œ์ปค ๋…ธ๋“œ์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•ต์‹ฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • kublet
  • proxy
  • Container Engine

๊ตฌ์„ฑ ์š”์†Œ

 ์•ž ์ ˆ์—์„œ ๊ฐ„๋žตํžˆ ๊ฐ ๋…ธ๋“œ ๋ณ„๋กœ ๊ตฌ์„ฑ๋˜๋Š” ์š”์†Œ๋“ค์„ ํ™•์ธํ•˜์˜€๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ, ์›Œ์ปค ๋…ธ๋“œ ์ˆœ์œผ๋กœ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

Master Node Component

ETCD

 ETCD๋Š” key-value ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์™€ ๊ด€๋ จ๋œ ์ „๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋…ธ๋“œ, Pod, ์„ค์ • ์ •๋ณด ๋“ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ETCD์˜ ์ •๋ณด๋“ค์€ kubectl get ๋ช…๋ น์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 (key-value : key ๊ฐ’์„ ํ†ตํ•ด value๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ €์žฅ ๋ฐฉ์‹, ์ „ํ†ต์ ์ธ ์ €์žฅ ๋ฐฉ์‹์€ ์•„๋‹ˆ์ง€๋งŒ, ์„ค์ •๊ณผ ์ƒํƒœ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ์— ํšจ์œจ์ ์ธ ๋ฐฉ์‹์ด๋‹ค.)

 

API Server

 API server๋Š” ๊ทธ๋ฆผ์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด kubectl๋กœ ๋ถ€ํ„ฐ ๋ช…๋ น์„ ๋ฐ›์•„, ์ธ์ฆ ๊ณผ์ •์„ ๊ฑฐ์ณ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ํ†ตํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์–ด๋–ค ํ•œ ์ž‘์—…์„ ํ•  ๊ฑด์ง€, ํŠน์ • ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ฒฐ์ •๋˜๋ฉด ์›Œ์ปค ๋…ธ๋“œ์˜ kublet์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ž‘์—…์ด ์ง„ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์ฆ‰, API Server๋ฅผ ํ†ตํ•ด ๊ฐ ๋…ธ๋“œ๋“ค๊ณผ ํ†ต์‹ ์„ ํ•œ๋‹ค.

 

Controller

 kube-Controller-Manager๋Š” ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. Deployment, Namespace, Endpoint, CronJob, Service ๋“ฑ ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. ๊ทธ ์ค‘ Node Controller์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์•Œ์•„๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

 Node Controller๋Š” API server๋ฅผ ํ†ตํ•ด ํŠน์ • ์‹œ๊ฐ„ ๋งˆ๋‹ค hear beat๋ฅผ ๋ณด๋‚ด ์›Œ์ปค ๋…ธ๋“œ๋“ค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค. ๋งŒ์•ฝ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ์‘๋‹ต์ด ์—†์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋…ธ๋“œ๊ฐ€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

 

Scheduler

 ํŠน์ • Pod๊ฐ€ ์–ด๋–ค ๋…ธ๋“œ์— ์‹คํ–‰ ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. ์ด๋Š” Node Controller๋ฅผ ํ†ตํ•ด ๊ฐ ์›Œ์ปค ๋…ธ๋“œ์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๊ธฐ์—, ์›Œ์ปค ๋…ธ๋“œ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํžˆ Pod๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šค์ผ€์ค„๋Ÿฌ๋Š” ๊ฐ ์›Œ์ปค ๋…ธ๋“œ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ ์ž์›์— ๋”ฐ๋ผ ๋“ฑ๊ธ‰์„ ๋ถ€์—ฌํ•˜์—ฌ, Pod์˜ ์š”์ฒญ๋œ ์‹œ์Šคํ…œ ์ž์›์— ๋”ฐ๋ผ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋…ธ๋“œ ๋ณ„ ๊ตฌ์„ฑ ์š”์†Œ๋“ค

 

Worker Node Component

kublet

 ์›Œ์ปค ๋…ธ๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ,  ํด๋Ÿฌ์Šคํ„ฐ์— Regiseter ํ•˜๊ฑฐ๋‚˜ ๋…ธ๋“œ, Pod ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

proxcy

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

 

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

 

 ์ฆ‰, ์ƒ์„ฑ๋œ ์„œ๋น„์Šค์˜ IP๊ฐ€ 192.168.0.7์ด๊ณ , Pod์˜ IP๊ฐ€ 10.32.0.7์ด๋ผ๋ฉด 192.168.0.7 → 10.32.0.7๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ•ต๏ธโ€โ™‚๏ธ ์šฐ๋ฌผ ๋ฐ–์˜ ๊ฐœ๊ตฌ๋ฆฌ > k8s' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

k8s: ReplicaSets  (0) 2020.08.25
k8s: Pod  (0) 2020.08.14
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€