[k8s] Kubernetes ์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ

2026. 6. 9. 16:31ยทContainer/Kubernetes

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ž‘๋…„์— Udemy ๊ฐ•์˜๋ฅผ ๋“ค์€ ์ดํ›„์— VMware Workstation์„ ๊ธฐ๋ฐ˜์œผ๋กœ Cluster๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‚ฌ์šฉํ•ด๋ณด์งˆ ์•Š์•˜๋”๋‹ˆ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ๋งŽ์ด ์žŠ์–ด๋ฒ„๋ ค์„œ ์ •๋ฆฌํ•˜๊ณ ์ž ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค.


1๏ธโƒฃ Docker์™€ Kubernetes์˜ ์ฐจ์ด

Docker๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. Kubernetes๋Š” ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ์œ„์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์ด๋‹ค.

๊ตฌ๋ถ„ Docker Kubernetes
์ฃผ์š” ์—ญํ•  ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ๊ณผ ์‹คํ–‰ ์ปจํ…Œ์ด๋„ˆ ๋ฐฐํฌ, ํ™•์žฅ, ๋ณต๊ตฌ, ๊ด€๋ฆฌ
๊ด€๋ฆฌ ๋‹จ์œ„ ์ปจํ…Œ์ด๋„ˆ Pod, Deployment, Service ๋“ฑ
์‚ฌ์šฉ ํ™˜๊ฒฝ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ๋‹จ์ผ ์„œ๋ฒ„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ์šด์˜ ํ™˜๊ฒฝ
์žฅ์•  ๋Œ€์‘ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ณต๊ตฌ

Docker๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ž์ฒด์— ์ดˆ์ ์ด ์žˆ๊ณ , Kubernetes๋Š” ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ดˆ์ ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๋„๊ตฌ๋Š” ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค๊ณ  ๋ณด๋Š” ํŽธ์ด ์ž์—ฐ์Šค๋Ÿฝ๋‹ค.

2๏ธโƒฃ Kubernetes์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

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

๊ตฌ์„ฑ์š”์†Œ ์—ญํ• 
API Server Kubernetes API ์š”์ฒญ์„ ๋ฐ›๋Š” ์ง„์ž…์ , kubectl ๋ช…๋ น, Controller, Scheduler, kubelet ๋“ฑ์€ API Server๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ .
ETCD Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ. Pod, Deployment, Service ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ์ •๋ณด์™€ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ์ €์žฅ.
Scheduler ์ƒˆ๋กœ ์ƒ์„ฑ๋œ Pod๋ฅผ ์–ด๋А Worker Node ์— ๋ฐฐ์น˜ํ• ์ง€ ๊ฒฐ์ •. ๋…ธ๋“œ์˜ ์ž์› ์ƒํƒœ์™€ ์กฐ๊ฑด์„ ํ™•์ธํ•ด ์ ์ ˆํ•œ ๋…ธ๋“œ๋ฅผ ์„ ํƒ.
Controller Manager ํ˜„์žฌ ์ƒํƒœ์™€ ์›ํ•˜๋Š” ์ƒํƒœ๋ฅผ ๋น„๊ตํ•˜๊ณ , ์ฐจ์ด๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•„์š”ํ•œ ์กฐ์น˜๋ฅผ ์ˆ˜ํ–‰. Pod ๊ฐœ์ˆ˜๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ์ƒˆ Pod๊ฐ€ ์ƒ์„ฑ๋˜๋„๋ก ์กฐ์ •.

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

๊ตฌ์„ฑ์š”์†Œ ์—ญํ• 
kubelet ๊ฐ Worker Node์—์„œ Pod๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ์—์ด์ „ํŠธ. API Server๋กœ๋ถ€ํ„ฐ Pod ์‹คํ–‰ ์š”์ฒญ์„ ๋ฐ›๊ณ , ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ด ๋ณด๊ณ .
kube-proxy Service๋ฅผ ํ†ตํ•œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌ. Pod IP๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ Service๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„คํŠธ์›Œํฌ ๊ทœ์น™์„ ๊ด€๋ฆฌ.
Container Runtime ์‹ค์ œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ. containerd, CRI-O ๋“ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. kubelet์˜ ์š”์ฒญ์— ๋ ๋ผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰.

3๏ธโƒฃ Pod, ReplicaSet, Deployment, DaemonSet

Pod๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ตœ์†Œ ๋‹จ์œ„์ด๋‹ค. Kubernetes๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ง์ ‘ ๋ฐฐํฌํ•˜์ง€ ์•Š๊ณ , Pod๋ผ๋Š” ๋‹จ์œ„ ์•ˆ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ•˜๋‚˜์˜ Pod์—๋Š” ๋ณดํ†ต ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋“ค์–ด๊ฐ€์ง€๋งŒ, ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ํ•จ๊ฒŒ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.
ReplicaSet์€ ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜์˜ Pod๊ฐ€ ํ•ญ์ƒ ์œ ์ง€๋˜๋„๋ก ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค์ด๋‹ค. Pod๋Š” ์ผ์‹œ์ ์ธ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ Pod๋งŒ ์ƒ์„ฑํ•˜๋ฉด ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๊ฐœ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๋ณต๊ตฌํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ReplicaSet์€ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ Pod ์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์™€ ๋‹ค๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์กฐ์ •ํ•œ๋‹ค.
Deployment๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์™€ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค์ด๋‹ค. ๋‚ด๋ถ€์ ์œผ๋กœ ReplicaSet์„ ์‚ฌ์šฉํ•ด Pod ๊ฐœ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์ƒˆ๋กœ์šด ๋ฐฐ์ „์„ ๋ฐฐํฌํ•  ๋•Œ ๊ธฐ์กด Pod๋ฅผ ์ƒˆ Pod๋กœ ์ ์ง„์ ์œผ๋กœ ๊ต์ฒดํ•œ๋‹ค. Deployment๋Š” ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ API ์„œ๋ฒ„์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Pod๋กœ ์‹คํ–‰ํ•˜๊ณ  ์ƒˆ ๋ฒ„์ „์„ ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ ค์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์ ํ•ฉํ•˜๋‹ค. ReplicaSet์ด Pod ๊ฐœ์ˆ˜ ์œ ์ง€์— ์ดˆ์ ์ด ์žˆ๋‹ค๋ฉด Deployment๋Š” ๋ฐฐํฌ ๊ณผ์ •์„ ์ „์ฒด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋‘”๋‹ค.
DaemonSet์€ ๋ชจ๋“  ๋…ธ๋“œ ๋˜๋Š” ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋…ธ๋“œ๋งˆ๋‹ค Pod๋ฅผ ํ•˜๋‚˜์”ฉ ์‹คํ–‰ํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๋ฆฌ์†Œ์Šค์ด๋‹ค. Deployment์ฒ˜๋Ÿผ ์›ํ•˜๋Š” ๊ฐœ์ˆ˜์˜ Pod๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ ๋…ธ๋“œ ๋‹จ์œ„๋กœ ํ•„์š”ํ•œ Pod๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋‘”๋‹ค. DaemonSet์€ ๊ฐ ๋…ธ๋“œ์—์„œ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ์‚ฌ์šฉํ•ด ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ, ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ, ๋ณด์•ˆ ์—์ด์ „ํŠธ์ฒ˜๋Ÿผ ๋…ธ๋“œ๋งˆ๋‹ค ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” Pod์— ์ ํ•ฉํ•˜๋‹ค.

๊ตฌ๋ถ„ ReplicaSet Deployment DaemonSet
ํ•ต์‹ฌ ์—ญํ•  Pod๊ฐ€ ์ง€์ •ํ•œ ์ˆ˜ ๋งŒํผ ๊ณ„์† ์œ ์ง€๋˜๋„๋ก ๊ด€๋ฆฌ. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ, ์—…๋ฐ์ดํŠธ, ๋กค๋ฐฑ์„ ๊ด€๋ฆฌ. ๋ชจ๋“  ๋…ธ๋“œ ๋˜๋Š” ํŠน์ • ๋…ธ๋“œ๋งˆ๋‹ค Pod๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ๊ด€๋ฆฌ.
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ๋ณด๋‹ค Deployment๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ. ์›น ์„œ๋ฒ„, API ์„œ๋ฒ„์ฒ˜๋Ÿผ ์ผ๋ฐ˜์ ์ธ Stateless ์• ํ”Œ๋ฆฌ์ผ€์ž‡๋…€์„ ๋ฐฐํฌํ•  ๋•Œ ์‚ฌ์šฉ. ์ƒˆ ๋ฒ„์ „ ๋ฐฐํฌ์™€ ์ด์ „ ๋ฒ„์ „ ๋กค๋ฐฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉ. ๋กœ๊ทธ ์ˆ˜์ง‘๊ธฐ, ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ, ๋ณด์•ˆ ์—์ด์ „ํŠธ์ฒ˜๋Ÿผ ๊ฐ ๋…ธ๋“œ์—์„œ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰๋˜์–ดํ– ํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ ์‚ฌ์šฉ.

4๏ธโƒฃ Service(Cluster IP, NodePort, LoadBalancer)

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

Service Type ์—ญํ•  ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
ClusterIP ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋‚ด๋ถ€ API, ๋‚ด๋ถ€ DB ์ ‘๊ทผ
NodePort ๋…ธ๋“œ IP์™€ ํŠน์ • ํฌํŠธ๋กœ ์™ธ๋ถ€ ์ ‘๊ทผ ํ…Œ์ŠคํŠธ์šฉ ์™ธ๋ถ€ ์ ‘๊ทผ
LoadBalancer ์™ธ๋ถ€ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ ์šด์˜ ํ™˜๊ฒฝ์˜ ์™ธ๋ถ€ ์„œ๋น„์Šค ๋…ธ์ถœ

5๏ธโƒฃ Ingress, Gateway์™€ HTTPRoute

Ingress, Gateway, HttpRoute๋Š” ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” HTTP ์š”์ฒญ์„ Kubernetes ๋‚ด๋ถ€ Service๋กœ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Service๊ฐ€ Pod์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์ • ์ง€์ ์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด Ingress์™€ Gateway API๋Š” ์™ธ๋ถ€ ์š”์ฒญ์„ ์–ด๋˜ Service๋กœ ๋ณด๋‚ผ์ง€ ์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๊ตฌ๋ถ„ Ingress Gateway HTTPRoute
ํ•ต์‹ฌ ์—ญํ•  HTTP/HTTPS ์š”์ฒญ์„ ๋„๋ฉ”์ธ์ด๋‚˜ ๊ฒฝ๋กœ ๊ธฐ์ค€์œผ๋กœ Service์— ์ „๋‹ฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐ›๋Š” ์ง„์ž…์ ์„ ์ •์˜ํ•˜๋Š” ๋ฆฌ์†Œ์Šค Gateway๋กœ ๋“ค์–ด์˜จ HTTP ์š”์ฒญ์„ ์–ด๋–ค Service๋กœ ๋ณด๋‚ผ์ง€ ์ •ํ•˜๋Š” ๋ผ์šฐํŒ… ๊ทœ์น™
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ์—์„œ /api, /admin์ฒ˜๋Ÿผ ๊ฒฝ๋กœ๋ณ„๋กœ ๋‹ค๋ฅธ Service์— ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ. ๊ธฐ์กด Kubernetes ํ™˜๊ฒฝ์—์„œ HTTP ๋ผ์šฐํŒ…์„ ๊ตฌ์„ฑํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ. ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐ›๋Š” ์ง€์ ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ์ธํ”„๋ผ ๋‹ด๋‹น์ž๊ฐ€ ํŠธ๋ž˜ํ”ฝ ์ง„์ž…์ ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์— ์ ํ•ฉ. ํŠน์ • Gateway๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ๊ฒฝ๋กœ, ํ˜ธ์ŠคํŠธ, ์กฐ๊ฑด์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ Service๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๋‚ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹ด๋‹น์ž๊ฐ€ ์ž์‹ ์˜ ์„œ๋น„์Šค ๋ผ์šฐํŒ… ๊ทœ์น™์„ ๊ด€๋ฆฌํ•  ๋•Œ ์ ํ•ฉ.

Ingress๋Š” ๋น„๊ต์  ๋‹จ์ˆœํ•œ HTTP ๋ผ์šฐํŒ…์— ์ ํ•ฉํ•˜๋‹ค. Gateway์™€ HTTPRoute๋Š” ํŠธ๋ž˜ํ”ฝ ์ง„์ž…์ ๊ณผ ๋ผ์šฐํŒ… ๊ทœ์น™์„ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•ด์•ผ ํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.

6๏ธโƒฃ ConfigMap๊ณผ Secret

ConfigMap๊ณผ Secret์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ •๊ฐ’์„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์™€ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ฏธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ์„ค์ •๊ฐ’๋งŒ ๋”ฐ๋กœ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ตฌ๋ถ„ ConfigMap Secret
ํ•ต์‹ฌ ์—ญํ•  ๋ฏผ๊ฐํ•˜์ง€ ์•Š์€ ์„ค์ •๊ฐ’์„ ์ €์žฅํ•˜๊ณ  Pod์— ์ „๋‹ฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค ๋น„๋ฐ€๋ฒˆํ˜ธ, ํ† ํฐ, ์ธ์ฆ์„œ ๊ฐ™์€ ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  Pod์— ์ „๋‹ฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜ ํ™˜๊ฒฝ๋งˆ๋‹ค ๋‹ค๋ฅธ DB ์ฃผ์†Œ, ์™ธ๋ถ€ API ์ฃผ์†Œ, ๋กœ๊ทธ ๋ ˆ๋ฒจ, ๊ธฐ๋Šฅ ์„ค์ •๊ฐ’ ๋“ฑ์„ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ DB ๋น„๋ฐ€๋ฒˆํ˜ธ, API ํ† ํฐ, ์ธ์ฆ ํ‚ค, ์ธ์ฆ์„œ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋‚˜ ์ด๋ฏธ์ง€์— ์ง์ ‘ ๋„ฃ์œผ๋ฉด ์•ˆ ๋˜๋Š” ๊ฐ’์„ ๊ด€๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ

ConfigMap์€ ์ผ๋ฐ˜ ์„ค์ •๊ฐ’ ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜๊ณ , Secret์€ ๋ฏผ๊ฐ ์ •๋ณด ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค๋งŒ Secret๋„ ๊ธฐ๋ณธ ์„ค์ •๋งŒ์œผ๋กœ ์™„์ „ํ•œ ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ‘๊ทผ ๊ถŒํ•œ๊ณผ ์•”ํ˜ธํ™” ์„ค์ •์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

7๏ธโƒฃ ServiceAccount์™€ RBAC

ServiceAccount์™€ RBAC๋Š” Kubernetes ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ServiceAccount๋Š” Pod๊ฐ€ Kubernetes API์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ •์ด๊ณ  RBAC๋Š” ํ•ด๋‹น ๊ณ„์ •์ด๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ๊ถŒํ•œ์„ ์ค„์ง€ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๊ตฌ๋ถ„ ServiceAccount RBAC
ํ•ต์‹ฌ ์—ญํ•  Pod๊ฐ€ Kubernetes API์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ • ์‚ฌ์šฉ์ž๋‚˜ ServiceAccount๊ฐ€ ์–ด๋–ค ๋ฆฌ์†Œ์Šค์— ์–ด๋–ค ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ œ์–ดํ•˜๋Š” ๊ถŒํ•œ ๊ด€๋ฆฌ ๋ฐฉ์‹
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŠน์ • Pod๊ฐ€ Kubernetes API๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๊ฐ€ Pod ๋ชฉ๋ก์„ ์กฐํšŒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ServiceAccount๋ฅผ ๋ถ€์—ฌ ๊ฐ€๋Šฅ. ์‚ฌ์šฉ์ž๋‚˜ Pod์— ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠน์ • ServiceAccount์—๋Š” Pod ์กฐํšŒ ๊ถŒํ•œ๋งŒ ์ฃผ๊ณ , ์‚ญ์ œ ๊ถŒํ•œ์€ ์ฃผ์ง€ ์•Š๋Š” ์‹์œผ๋กœ ์ œ์–ด ๊ฐ€๋Šฅ.

ServiceAccount๋Š” “๋ˆ„๊ฐ€ ์ ‘๊ทผํ•˜๋Š”๊ฐ€”์— ๊ฐ€๊น๊ณ , RBAC๋Š” “๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€”์— ๊ฐ€๊น๋‹ค. ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ๋‘ ๊ฐœ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด Pod๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ๋ถ€์—ฌํ•œ๋‹ค.

8๏ธโƒฃ Rolling Update, Blue-Green, Canary

๊ตฌ๋ถ„ Rollin Update Blue-Green Canary
ํ•ต์‹ฌ ์—ญํ•  ๊ธฐ์กด Pod๋ฅผ ์กฐ๊ธˆ์”ฉ ์ƒˆ ๋ฒ„์ „์˜ Pod๋กœ ๊ต์ฒดํ•˜๋Š” ๋ฐฐํฌ ๋ฐฉ์‹. ๊ธฐ์กด ์šด์˜ ํ™˜๊ฒฝ๊ณผ ์ƒˆ ๋ฒ„์ „ ํ™˜๊ฒฝ์„ ๋ถ„๋ฆฌํ•œ ๋’ค ํŠธ๋ž˜ํ”ฝ์„ ํ•œ ๋ฒˆ์— ์ „ํ™˜ํ•˜๋Š” ๋ฐฐํฌ ๋ฐฉ์‹. ์ƒˆ ๋ฒ„์ „์„ ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋‚˜ ์ผ๋ถ€ ํŠธ๋ž˜ํ”ฝ์—๋งŒ ๋จผ์ € ์ ์šฉํ•ด ๊ฒ€์ฆํ•˜๋Š” ๋ฐฐํฌ ๋ฐฉ์‹.
์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„œ๋น„์Šค ์ค‘๋‹จ ์—†์ด ์ ์ง„์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. Kubernetes Deployment์˜ ๊ธฐ๋ณธ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ. ์ƒˆ ๋ฒ„์ „ ํ™˜๊ฒฝ์„ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด๋‘๊ณ , ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ธฐ์กด ํ™˜๊ฒฝ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋˜๋Œ๋ฆฌ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ๋น ๋ฅธ ์ „ํ™˜๊ณผ ๋กค๋ฐฑ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— ์ ํ•ฉ. ์ƒˆ ๋ฒ„์ „์˜ ์œ„ํ—˜์„ ์ œํ•œ๋œ ๋ฒ”์œ„์—์„œ ๋จผ์ € ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ. ์˜ค๋ฅ˜์œจ, ์‘๋‹ต ์‹œ๊ฐ„, ์‚ฌ์šฉ์ž ๋ฐ˜์‘์„ ํ™•์ธํ•˜๋ฉฐ ์ ์ง„์ ์œผ๋กœ ๋ฐฐํฌ ๋ฒ”์œ„๋ฅผ ๋„“ํž ๋•Œ ์ ํ•ฉ.

Rolling Update๋Š” ๊ธฐ๋ณธ์ ์ธ ์ ์ง„ ๋ฐฐํฌ์— ์ ํ•ฉํ•˜๋‹ค. Blue-Green์€ ๋น ๋ฅธ ์ „ํ™˜๊ณผ ๋ณต๊ตฌ์— ์œ ๋ฆฌํ•˜๋‹ค. Canary๋Š” ์‹ค์ œ ํŠธ๋ž˜ํ”ฝ ์ผ๋ถ€๋กœ ์ƒˆ ๋ฒ„์ „์„ ๋จผ์ € ๊ฒ€์ฆํ•  ๋•Œ ์ ํ•ฉํ•˜๋‹ค.


๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ๋ณด๋‹ˆ๊นŒ ์ง„์งœ ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๋‚ด์šฉ์„ ์žŠ์–ด๋ฒ„๋ ธ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์ฃผ๋กœ ์‹ค์Šต์„ ๋งŽ์ด ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐœ๋…์„ ์ž˜ ์ดํ•ดํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ๋งŽ์ด ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Container > Kubernetes' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[k8s] kind ํด๋Ÿฌ์Šคํ„ฐ์— MetalLB ์„ค์น˜ํ•˜๊ธฐ  (0) 2025.08.08
[k8s] kubeadm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ(2)  (2) 2025.07.17
[k8s] kubeadm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ(1)  (1) 2025.07.12
[k8s] Kubernetes Scheduling  (0) 2024.12.04
[k8s] Pod๋ž€?  (0) 2024.11.25
'Container/Kubernetes' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [k8s] kind ํด๋Ÿฌ์Šคํ„ฐ์— MetalLB ์„ค์น˜ํ•˜๊ธฐ
  • [k8s] kubeadm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ(2)
  • [k8s] kubeadm์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ(1)
  • [k8s] Kubernetes Scheduling
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (204)
      • OS&Server (31)
        • Linux (28)
        • WEB | WAS (3)
      • Architecture (9)
      • Cloud (8)
        • AWS (4)
        • GCP (4)
      • Container (13)
        • Docker (4)
        • Kubernetes (9)
      • IaC | DevOps (12)
        • IaC (7)
        • DevOps (5)
      • Observability (6)
      • CS (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (99)
        • Algorithms (91)
        • SQL (7)
      • ETC (9)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ž๋ฐ”
    docker
    Shell
    Java
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    terraform
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    bfs
    ๋„์ปค
    Baekjoon
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    Kubernetes
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    network
    ์˜ค๋ธ”์™„
    Linux
    Shell Script
    ๋ฆฌ๋ˆ…์Šค
    K8s
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ๋„คํŠธ์›Œํฌ
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ๋ฐฑ์ค€
    AWS
    programmers
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[k8s] Kubernetes ์ฃผ์š” ๊ฐœ๋… ์ •๋ฆฌ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”