Cluster
Cluster๋?
Kubernetes๋ฅผ ๋ฐฐํฌํ๋ฉด Cluster๋ฅผ ์ป๋๋ค
Kubernetes Cluster๋ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋
node
๋ผ๊ณ ํ๋ worker machine๋ค์ ์งํฉ์ด๋ค๋ชจ๋ cluster๋ ์ต์ ํ๋ ์ด์์
worker node
๋ฅผ ๊ฐ์ง๋ค
Cluster Architecture
ํ๋์จ์ด ์์ค์์ Kubernetes Cluster๋ ์ฌ๋ฌ node๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๋ ๊ฐ์ง ์ ํ์ผ๋ก ๋๋ ์ ์๋ค
๋ง์คํฐ ๋ ธ๋
์ ์ฒด Kubernetes system์ ์ ์ดํ๊ณ , ๊ด๋ฆฌํ๋ Kubernetes
Control Plane
์ ์คํํ๋ค์์ปค ๋ ธ๋
์ค์ ๋ฐฐํฌ๋๋ container application์ ์คํํ๋ค
Control Plane
Control Plane์
Cluster๋ฅผ ์ ์ดํ๊ณ ์๋
์ํจ๋ค
ํ๋์ master node์์ ์คํํ๊ฑฐ๋ ์ฌ๋ฌ node๋ก ๋ถํ ๋๊ณ ๋ณต์ ๋์ด ๊ณ ๊ฐ์ฉ์ฑ์ ๋ณด์ฅ
ํ ์ ์๋ ์๋ ์์๋ค๋ก ๊ตฌ์ฑ๋๋ค
Kubernetes API Server
API Server๋ Kubernetes API๋ฅผ ๋ ธ์ถํ๋ component์ด๋ค
์ฌ์ฉ์, Control Plane ๊ตฌ์ฑ ์์์ ํต์ ํ๋ค
kube-apiserver
kube-apiserver๋
์ํ์ผ๋ก ํ์ฅ
๋๋๋ก ๋์์ธ๋์๋ค์ฆ, ๋ ๋ง์ ์ธ์คํด์ค๋ฅผ ๋ฐฐํฌํด์ ํ์ฅํ ์ ์๋ค
์ฌ๋ฌ kube-apiserver ์ธ์คํด์ค๋ฅผ ์คํํ๊ณ , ์ธ์คํด์ค๊ฐ์ traffic์ ๊ท ํ์๊ฒ ์กฐ์ ํ ์ ์๋ค
Scheduler
Node๊ฐ ๋ฐฐ์ ๋์ง ์์ ์๋ก ์์ฑ๋ Pod๋ฅผ ๊ฐ์งํ๊ณ ,
์คํํ node๋ฅผ ์ ํ
ํ๋ component
Application์
๋ฐฐํฌ
๋ฅผ ๋ด๋นํ๋คApplication์ ๋ฐฐํฌ ๊ฐ๋ฅํ ๊ฐ ๊ตฌ์ฑ ์์๋ฅผ
worker node์ ํ ๋น
ํ๋ค
Scheduling ์ ์ํด ๊ณ ๋ ค๋๋ ์์๋ ์๋์ ๊ฐ๋ค
๊ฐ๋ณ/์ด์ฒด์ Resource requirements
Hardware/Software Policy ์ ์ฝ
Affinity & anti-affinity ๋ช ์ธ
Data ์ง์ญ์ฑ
Workload ๊ฐ ๊ฐ์ญ
Deadline
Controller Manager
Controller
process๋ฅผ ์คํ
ํ๋ component
๊ตฌ์ฑ ์์์ ๋ณต์ ๋ณธ, worker node ์ถ์ , node ์ฅ์ ์ฒ๋ฆฌ ๋ฑ๊ณผ ๊ฐ์ cluster ๋จ์ ๊ธฐ๋ฅ์ ์ํํ๋ค
๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฐ controller๋ ๋ถ๋ฆฌ๋ process ์ง๋ง, ๋ณตํฉ์ฑ์ ๋ฎ์ถ๊ธฐ ์ํด ํ๋์ binary๋ก compile๋๊ณ ,
๋จ์ผ process ๋ด์์ ์คํ
๋๋ค
Controller Types
Node controller
Node๊ฐ ๋ค์ด๋์์ ๋ ์๋ฆฌ๊ณ , ์๋ตํ๋ ๊ฒ์ ๋ํ ์ฑ ์์ ์ง๋ค
Job controller
์ผํ์ฑ Job object๋ฅผ ์ถ์ ํ๊ณ , ํด๋น ์์ ์ด ์คํ๋ ์ ์๊ฒ Pod๋ฅผ ์์ฑํ๋ค
Endpoints controller
Service์ Pod๋ฅผ ์ฐ๊ฒฐ์ํจ๋ค
Service Account & Token controllers
์๋ก์ด Namespace์ ๋ํ default account์ API access token์ ์์ฑํ๋ค
etcd
Cluster ๊ตฌ์ฑ์ ์ง์์ ์ผ๋ก ์ ์ฅํ๋ ์ ๋ขฐํ ์ ์๋ key-value ๊ตฌ์กฐ์
๋ถ์ฐ ๋ฐ์ดํฐ ์ ์ฅ์
์ด๋ค
๐ก Control Plane์ ๊ตฌ์ฑ ์์๋ Cluster ์ํ๋ฅผ ์ ์งํ๊ณ ์ ์ดํ์ง๋ง, application์ ์คํํ์ง ์๋๋ค โ ์ด๊ฒ์ Node์์ ์ด๋ฃจ์ด์ง๋ค
Node
Worker Node๋ containerํ๋
application์ ์คํ
ํ๋ ์์คํ ์ด๋คApplication์ ์คํํ๊ณ ๋ชจ๋ํฐ๋งํ๋ฉฐ, application์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์์ ์ ์๋์ ๊ตฌ์ฑ์์์ ์ํด ์ํ๋๋ค
Container Runtime
Container ์คํ์ ๋ด๋นํ๋ค
Container๋ฅผ ์คํํ๋ Docker
, containerd
, CRI-O
๋๋ Kubernetes CRI (์ปจํ
์ด๋ ๋ฐํ์ ์ธํฐํ์ด์ค) ๊ตฌํํ ์ํํธ์จ์ด๋ฅผ ์ง์ํ๋ค
Kubelet
API Server์ ํต์ ํ๊ณ node์ container๋ฅผ ๊ด๋ฆฌํ๋ค
Cluster์ ๊ฐ node์์ ์คํ๋๋ agent์ด๋ฉฐ, Pod์์ container๊ฐ ๋์ํ๋๋ก ๊ด๋ฆฌํ๋ค
๋ค์ํ ๋งค์ปค๋์ฆ์ ํตํด
PodSpec
์ ์งํฉ์ ๋ฐ์์ container๊ฐ ํด๋น Pod ์คํ์ ๋ฐ๋ผ ์ ์์ ์ผ๋ก ๋์ํ๋์ง ๊ด๋ฆฌํ๋คKubernetes๋ฅผ ํตํด ์์ฑ๋์ง ์์ container๋ ๊ด๋ฆฌํ์ง ์๋๋ค
Kube-proxy
Application ๊ตฌ์ฑ ์์ ๊ฐ์ ๋คํธ์ํฌ ํธ๋ํฝ์ ๋ก๋๋ฐธ๋ฐ์ฑ ํ๋
Kube-Proxy
Cluster์ ๊ฐ node์์ ์คํ๋๋
๋คํธ์ํฌ ํ๋ก์
๋ก, Kubernetes service ๊ฐ๋ ์ ๊ตฌํ๋ถ์ด๋คNode์ ๋คํธ์ํฌ ๊ท์น์ ์ ์ง/๊ด๋ฆฌํ๋ค
๋คํธ์ํฌ ๊ท์น์ด ๋ด๋ถ ๋คํธ์ํฌ session ์ด๋ cluster ๋ฐ์์ pod๋ก ๋คํธ์ํฌ ํต์ ์ ํ ์ ์๊ฒ ํด์ค๋ค
Last updated