๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์ž‘] ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ธ์‚ฌ์ด๋“œ

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2026. 3. 15.

1. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ ์š”์†Œ

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

์œ„ ๊ทธ๋ฆผ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ์š”์†Œ ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ด๋‹ค. ํฌ๊ฒŒ ๋ณด๋ฉด ๋‹ค์Œ 3๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

1. Control Plane = ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋‘๋‡Œ

2. Cluster Addons = ๊ธฐ๋ณธ ๋„คํŠธ์›Œํฌ / DNS ๊ธฐ๋Šฅ

3. Node Components = ๊ฐ ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๊ตฌ์„ฑ์š”์†Œ

 

1) Control Plane ๊ตฌ์„ฑ์š”์†Œ

 

ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์Šค์ผ€์ค„๋งํ•˜๋Š” ํ•ต์‹ฌ ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.

 

  • API Server (api)
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ชจ๋“  ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋Š” ๊ด€๋ฌธ
    • ์—ญํ• 
      • kubectl ๋ช…๋ น ์ฒ˜๋ฆฌ
      • ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๊ด€๋ฆฌ
      • ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์ด API๋กœ ํ†ต์‹ 
  • etcd
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • ์—ญํ• 
      • ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ์ €์žฅ
      • ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ์ •๋ณด ์ €์žฅ
  • Controller Manager (c-m)
    • ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ์›ํ•˜๋Š” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ ๋ชจ์Œ
    • ์˜ˆ์‹œ
      • deployment๋กœ pod 3๊ฐœ ์œ ์ง€์ธ๋ฐ ํ˜„์žฌ 2๊ฐœ์ด๋ฉด Controller Manager๊ฐ€ pod 1๊ฐœ ์ถ”๊ฐ€ ์ƒ์„ฑ
  • Scheduler (sched)
    • Pod๋ฅผ ์–ด๋А ๋…ธ๋“œ์— ๋ฐฐ์น˜ํ• ์ง€ ๊ฒฐ์ •
    • Scheduler์˜ ํŒ๋‹จ
      • CPU, Memory, Node ์ƒํƒœ, Affinity, Taint/Toleration

 

2) Cluster Addons

 

  • CoreDNS
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‚ด๋ถ€ DNS ์„œ๋ฒ„๋กœ Pod๊ฐ„ ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉ
  • kube-proxy (k-proxy)
    • Service ๋„คํŠธ์›Œํฌ ๊ตฌํ˜„
  • CNI (Calico)
    • Container Network Interface
    • Pod ๋„คํŠธ์›Œํฌ ์ œ๊ณต
      • Pod IP ํ• ๋‹น ๋“ฑ์„ ํ†ตํ•ด Pod๊ฐ„ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ฆ

 

3) Node Components

 

๊ฐ Worker Node์—์„œ ์‹คํ–‰๋œ๋‹ค.

 

  • kubelet
    • ๋…ธ๋“œ์—์„œ Pod๋ฅผ ์‹ค์ œ ์‹คํ–‰ํ•˜๋Š” ์—์ด์ „ํŠธ 
  • container runtime
    • ์˜ˆ : containerd, CRI-0, Docker(๊ตฌ๋ฒ„์ „)
  • systemd
    • ๋ฆฌ๋ˆ…์Šค ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž 
    • kubelet ์‹คํ–‰ ๋ฐฉ์‹ 

 

4) Kubernetes Workload ๋ฆฌ์†Œ์Šค

  • Pod
    • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ์ตœ์†Œ ์‹คํ–‰ ๋‹จ์œ„
    • ์ปจํ…Œ์ด๋„ˆ ๋ฌถ์Œ, IP๊ณต์œ , ์Šคํ† ๋ฆฌ์ง€ ๊ณต์œ 
  • Deployment (deploy)
    • Pod ๊ด€๋ฆฌ ๋ฆฌ์†Œ์Šค
    • ๊ธฐ๋Šฅ
      • ๋กค๋ง ์—…๋ฐ์ดํŠธ
      • Replica ๊ด€๋ฆฌ
      • ์ž๋™ ๋ณต๊ตฌ
  • DaemonSet (ds)
    • ๋ชจ๋“  ๋…ธ๋“œ์— Pod ํ•˜๋‚˜์”ฉ ์‹คํ–‰

 

 

2. ๊ตฌ์—ญ์„ ๋‚˜๋ˆ„๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค(Namespace)

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ž€ ํด๋Ÿฌ์Šคํ„ฐ ์•ˆ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฐ€์ƒ ๊ณต๊ฐ„์ด๋‹ค.

 

1. deafult namespace = ์‚ฌ์šฉ์ž๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๊ณต๊ฐ„์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ์›น์„œ๋ฒ„ ๋“ฑ์ด ๋“ค์–ด๊ฐ„๋‹ค.

2. kube-system = ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ๋“ค์–ด๊ฐ€๋Š” ๊ณต์œผ๋กœ scheduler, calico, kube-proxy ๋“ฑ๋“ฑ

3. metallb-system namespace = MetalLB ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์œ„ํ•œ namespace

 

kube-system ๊ตฌ์„ฑ์š”์†Œ ๋ณด๊ธฐ

 

kubectl get pods -n kube-system ์„ ํ†ตํ•ด ์ˆจ๊ฒจ์ ธ ์žˆ๋˜ pod๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

AWS์˜ EKS, Azure์˜ AKS, GCP์˜ GKE ์ „๋ถ€ kube-system์ด ์žˆ๋‹ค.

 

 

3. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ํ•˜๋Š” ์ผ

1) ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ๊ธฐ๋ณธ ์ฒ ํ•™

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

์ฟ ๋ฒ„๋„คํŠธ์Šค๋Š” ๊ฐ์ž์˜ ์ผ์„ ์—ด์‹ฌํžˆ ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์ด๋‹ค.

 

2) ํŒŒ๋“œ๊ฐ€ ๋ฐฐํฌ ๋œ๋‹ค๋ฉด

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

1. ํŒŒ๋“œ ์ƒ์„ฑ์š”์ฒญ

์ƒ์„ฑ ์š”์ฒญ์ด API ์„œ๋ฒ„๋กœ ๋„˜์–ด๊ฐ

 

2. ์ปจํŠธ๋กค ๋งค๋‹ˆ์ €์— ํŒŒ๋“œ ์ƒ์„ฑ์ด ๋˜์—ˆ๋Š”์ง€ ๊ฐ์‹œํ•˜๊ณ  ์ปจํŠธ๋กค ๋งค๋‹ˆ์ €๊ฐ€ API ์„œ๋ฒ„์˜ ๋‚ด์šฉ์„ ๋ณด๊ณ  ๊ฐ’์„ ์„ ์–ธํ•œ ๊ฐ’์„ API ์„œ๋ฒ„๋กœ ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ

 

3. API์„œ๋ฒ„๋Š” ๋˜๋‹ค์‹œ ์Šค์ผ€์ค„๋Ÿฌ์— ์ƒˆ๋กœ์šด ํŒŒ๋“œ๊ฐ€ ์›Œ์ปค ๋…ธ๋“œ์— ๋“ค์–ด๊ฐ”๋Š”์ง€ ๊ฐ์‹œ๋งŒ ํ•˜๊ณ  ์Šค์ผ€์ค„๋Ÿฌ๋Š” ์Šค์ผ€์ค„๋งŒ ํ•˜๊ณ  API ์„œ๋ฒ„๋กœ ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ

 

4. API์„œ๋ฒ„๋Š” kubelet์— ์ƒˆ๋กœ์šด ํŒŒ๋“œ๊ฐ€ ๋…ธ๋“œ์— ์ž˜ ์†Œ์†๋˜์–ด ์žˆ๋Š”์ง€ ๊ฐ์‹œ

 

5. kubelet์ด ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

 

6. ํŒŒ๋“œ ์ƒํƒœ ์ •๋ณด๋ฅผ API ์„œ๋ฒ„๋กœ ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ

 

 

4. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์„ ์–ธ์  ์‹œ์Šคํ…œ

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ์ถ”๊ตฌํ•˜๋Š” ์ƒํƒœ์™€ ํ˜„์žฌ์ƒํƒœ๋ฅผ ๋งž์ถ”๋ ค๊ณ  ํ•˜๋Š” ์„ ์–ธ์  ์‹œ์Šคํ…œ์ด๋‹ค.

 

 

5. API์™€ ETCD

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

etcd๋Š” API๊ฐ€ ์ถ”๊ตฌํ•˜๋Š” ๊ฐ’ ์„ ์–ธํ•œ ๊ฐ’์„ ํœ˜๋ฐœ๋˜์ง€ ์•Š๊ฒŒ ์ €์žฅํ•ด์ฃผ๋Š” ๊ณณ์ด๋‹ค. API ์„œ๋ฒ„๊ฐ€ etcd์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

 

 

6. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํŒŒ๋“œ ๋ฐฐํฌ ์ „์ฒด ํ๋ฆ„ ๋ณด๊ธฐ

์ถœ์ฒ˜ : ์กฐํ›ˆ(์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค)

 

1. kubectl ๋ฅผ ํ†ตํ•ด API ์„œ๋ฒ„์— ์š”๊ตฌํ•˜๋Š” ๋ช…๋ น์„ ๋ณด๋ƒ„

2. API๋Š” etcd์— ์„ ์–ธ๋œ ์ •๋ณด๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๋ณด๋ƒ„ (๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด etcd ์ •๋ณด๋ฅผ ๋ณต์›)

3. API ์„œ๋ฒ„๋ฅผ ์ปจํŠธ๋กค ๋งค๋‹ˆ์ €๊ฐ€ ๋ณด๊ณ  ๊ฐ’์„ ๋ฐ”๊พผ๋’ค API ์„œ๋ฒ„์— ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ

4. API ์„œ๋ฒ„๋ฅผ ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ๋ณด๊ณ  ์—…๋ฐ์ดํŠธ ํ•œ ๋’ค, API ์„œ๋ฒ„์— ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ

5-7. API ์„œ๋ฒ„๋ฅผ ๋ณด๊ณ  kubelet์ด pod ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ ๋Ÿฐํƒ€์ž„์—๊ฒŒ ์š”์ฒญํ•ด์„œ pod ์ƒ์„ฑ

8. ์‹ค์ œ๋กœ ์‚ฌ์šฉ์ž์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด kube-proxy๋ฅผ ํ™œ์šฉ

9. kubelet์€ API ์„œ๋ฒ„์— ๊ฒฐ๊ณผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ 

 

์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ๋Š” API ์„œ๋ฒ„๋Š” ๋ชจ๋“  ๊ฒƒ์˜ ์ค‘์‹ฌ์— ์žˆ๋‹ค. API ์„œ๋ฒ„๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ด๋ฃจ๋Š” ๋ชจ๋“  ๊ฒƒ์˜ ๊ฒŒ์ดํŠธ์›จ์ด์ด๋‹ค.

 

์ถ”๊ฐ€ ๊ฐœ๋…:

 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ IP๋ฅผ ํ• ๋‹นํ•  ๋•Œ, ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ง์ ‘ ์ง€์ •ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋” ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด CoreDNS ์ด๋‹ค.

๋Œ“๊ธ€