BE/Kubernetes
[Cluster Architecture] Kubernetes Architecture
Taylor Kang
2021. 3. 20. 17:34
์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ ๋ค์ด์ด๊ทธ๋จ


์ฟ ๋ฒ๋คํฐ์ค ๊ตฌ์ฑ ๋จ์
๐ก
(
Cluster
: Namespace
set) > Node
> Pod
> Conainer
- Cluster ํด๋ฌ์คํฐ
- Node์ ์งํฉ
- Namespace ๋ค์์คํ์ด์ค
- ํด๋ฌ์คํฐ ์์ ๊ฐ์ ํด๋ฌ์คํฐ
- ํด๋ฌ์คํฐ ๋ด์์ ๋ฆฌ์์ค์ ๊ตฌ๋ถ ์ฉ๋๋ก ์ฌ์ฉ
- Node ๋
ธ๋
- ์ปจํ ์ด๋ํ๋ Application์ ์คํํ๋ ์์ปค ๋จธ์
- ์์ปค ๋ ธ๋๋ Application์ ๊ตฌ์ฑ์์์ธ Pod์ ํธ์คํธํจ
- Pod ํ๋
- ์ปจํ ์ด๋์ ์งํฉ
- Container ์ปจํ
์ด๋
- ๋์ปค ์ปจํ ์ด๋
์ปดํฌ๋ํธ ์ข ๋ฅ
๐น Control Plane Component (Master Node)
Manage, Plan, Schedule, Monitor์ญํ
- ํด๋ฌ์คํฐ์ ๊ดํ ์ ๋ฐ์ ์ธ ๊ฒฐ์ (ex. ์ค์ผ์ฅด๋ง)
- ํด๋ฌ์คํฐ ์ด๋ฒคํธ(ex.replicas ๊ฐ์ ์ ์ง)๋ฅผ ๊ฐ์งํ๊ณ ๋ฐ์
๊ตฌ์ฑ
- Kube-API Server
- ETCD Cluster : ๋ชจ๋ ํด๋ฌ์คํฐ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ์ผ๊ด์ฑ, ๊ณ ๊ฐ์ฉ์ฑ, ํค-๊ฐ ์ฟ ๋ฒ๋คํฐ์ค ์ ์ฅ์
- Kube Scheduler : ๋ ธ๋ ๋ฐฐ์ ๋์ง ์์ ์ ๊ท Pod์ ๊ฐ์งํ๊ณ , ์คํํ ๋ ธ๋๋ฅผ ์ ํ
- Kube Contoller Mangaer
- Cloud Controller Manager : ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ ์ฉ ์ปจํธ๋กค๋ฌ
ํน์ง
- ํด๋ฌ์คํฐ ๋ด ์ด๋ ํ ๋จธ์ ์์๋ ๋์ํ ์ ์์ง๋ง, ๊ฐ๊ฒฐ์ฑ์ ์ํด์ ๋์ผ ๋จธ์ (๋ง์คํฐ ๋ ธํธ) ์์ ๊ตฌ๋์ํค๊ณ , ์ฌ์ฉ์ ์ปจํ ์ด๋๋ ํด๋น ๋จธ์ ์์ ๋์์ํค์ง ์๋๋ค.
๐ทโ๏ธ Worker Node Component
Host Application as Container์ญํ
- ๋์์ค์ธ Pod๋ฅผ ์ ์ง์ํค๊ณ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณต
- ๋ชจ๋ ๋ ธ๋์์์ ๋์
๊ตฌ์ฑ
- kubelet : ํด๋ฌ์คํฐ๋ด์์ ์๋๋๋ Pod๊ฐ PodSpec(ํ๋์คํ)์ ๋ฐ๋ผ์ ์ ์์ ์ผ๋ก ๋์ํ๋๋ก ๊ด๋ฆฌ
- kube-proxy : ๋ ธ๋์ ๋คํธ์ํฌ ๊ท์น์ ์ ์ง/๊ด๋ฆฌํ๊ธฐ ์ํด ์คํ๋๋ ๋คํธ์ํฌ ํ๋ก์(Service ๊ตฌํ๋ถ)
- Container Runtime Engine : ์ปจํ ์ด๋ ์คํ์ ๋ด๋นํ๋ SW(ex. Docker, Rocket)