ํฐ์คํ ๋ฆฌ ๋ทฐ
k8s: ๊ตฌ์กฐ ๋ฐ ๊ตฌ์ฑ ์์
dirmathfl 2020. 8. 6. 22:49์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ค์น ํ ๋ kubelet, kubeadam kubectl๊ณผ ๊ฐ์ ๊ตฌ์ฑ ์์๋ค์ ์ค์นํ๊ฒ ๋๋ค. ๊ฐ ๊ตฌ์ฑ ์์๋ค์ ๋ํด ๊ฐ๋ตํ ์์๋ณด๊ฒ ๋๋ค๋ฉด, ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
๊ตฌ์กฐ
์ฟ ๋ฒ๋คํฐ์ค์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ํ๋์ 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๋ก ํต์ ํ ์ ์๋๋ก ๊ฒฝ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์ ์งํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
'๐ต๏ธโโ๏ธ ์ฐ๋ฌผ ๋ฐ์ ๊ฐ๊ตฌ๋ฆฌ > k8s' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
k8s: ReplicaSets (0) | 2020.08.25 |
---|---|
k8s: Pod (0) | 2020.08.14 |