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

[์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹œ์ž‘] ๋ฐฐํฌ๋ฅผ ํ†ตํ•œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์‹ค์Šต

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

1. ๋ฐฐํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๋Š” Pod

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

 

์›Œ์ปค๋…ธ๋“œ์— Nginx๋ผ๋Š” Application์„ ๋ฐฐํฌํ•  ๊ฒƒ์ด๋‹ค. ์ด๋•Œ Application๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‹จ์œ„๋ฅผ Pod๋ผ๊ณ  ํ•œ๋‹ค. 

 

Pod๋ž€?

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

 

Pod๋ž€ ํ•˜๋‚˜์˜ ์ผ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌถ์—ฌ์ง„ ์ปจํ…Œ์ด๋„ˆ๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ Pod๋Š” ํ•˜๋‚˜์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. 

*๋ณผ๋ฅจ : ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ

 

Pod ๋ฐฐํฌ ์‹ค์Šต

 

1. kubectl run nginx --image=nginx ๋ฅผ ํ†ตํ•ด pod ๋ฐฐํฌ

๋งˆ์ง€๋ง‰์— Status Running์œผ๋กœ ๋ฐฐํฌ ์™„๋ฃŒ

 

2. kubectl get pod -o wide๋ฅผ ํ†ตํ•ด ๋ฐฐํฌํ•œ pod์˜ IP ํ™•์ธ ํ›„, curl ๋กœ ์‘๋‹ต ํ™•์ธ

์ด์ƒ์—†์ด nginx ๋ฌธ๊ตฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

 

 

2. ํŒŒ๋“œ๋ฅผ ์™ธ๋ถ€์—์„œ๋„ ์ ‘์†ํ•˜๊ฒŒ ํ•˜๋Š” ์„œ๋น„์Šค(Service)

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

 

Service๊ฐ€ NodePort๋ฅผ ํ†ตํ•ด Node์— ์ ‘๊ทผํ•˜๊ณ  ๊ฐ NodePort๊ฐ„ ํ†ต์‹ ์„ ํ•ด์„œ Pod๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

๋…ธ๋“œ ๋…ธ์ถœ ์‹ค์Šต

 

1. kubectl expose pod nginx --type=NodePort --port=80 ์„ ํ†ตํ•ด ๋…ธ๋“œ๋ฅผ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ์‹œ์ผœ์ค€๋‹ค.

 

2. kubectl get nodes -o wide ๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ๋…ธ์ถœ๋œ ๋…ธ๋“œ ip๋ฅผ ํ™•์ธ

 

3. w1์ธ 192.168.1.101์— ํฌํŠธ๋ฒˆํ˜ธ 32373์„ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ Nginx์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Œ

 

3. ํŒŒ๋“œ์™€ ๋””ํ”Œ๋กœ์ด๋จผํŠธ(Deployment) ์ฐจ์ด

๋งŒ์•ฝ์— ํŒŒ๋“œ๊ฐ€ ํ•˜๋‚˜๊ฐ€ ์žˆ์„ ๋•Œ ํŒŒ๋“œ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด ๋˜๋ฉด ์‹œ์Šคํ…œ ์ž์ฒด๊ฐ€ ๋จนํ†ต์ด ๋œ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ๊ฐœ pod๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” Deployment๋ฅผ ์‹ค์Šตํ•ด๋ณด์ž

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

 

Deploy ๋ฐฐํฌ ๋ช…๋ น์–ด ์ข…๋ฅ˜

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

 

kubectl run์€ pod ํ•˜๋‚˜ ๋ฐฐํฌํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— kubectl create์™€ kubectl apply๋ฅผ ํ™œ์šฉํ•  ๊ฒƒ์ด๋‹ค.

 

 

๋””ํ”Œ๋กœ์ด๋จผํŠธ๋กœ ๋ฐฐํฌํ•˜๊ธฐ ์‹ค์Šต

 

1. kubectl create deployment deploy-nginx --image=nginx๋ฅผ ํ†ตํ•ด pod๋ฅผ ๋ฐฐํฌ ํ•œ๋‹ค.

 

 

2. ๊ทธ๋Ÿฌ๋ฉด ํ•˜๋‚˜์˜ pod๊ฐ€ ๋ฐฐํฌ ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

3. Deployment์˜ ์ง„๊ฐ€๋Š” replicas์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด pod๋ฅผ ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

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

 

4. kubectl scale deployment deploy-nginx --replicas=3 ์„ ํ†ตํ•ด pod๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด pod๊ฐ€ 3๊ฐœ ์ƒ์„ฑ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

*๋งŒ์•ฝ deployment๋กœ 3๊ฐœ์˜ pod๋ฅผ ์ƒ์„ฑํ–ˆ๋Š”๋ฐ, ์‹ค์ˆ˜๋กœ ํ•˜๋‚˜๋ฅผ ์‚ญ์ œ๋ฅผ ํ–ˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? => ๋‹ค์‹œ ๊ฐฏ์ˆ˜๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด pod๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๋œ๋‹ค.

4. ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ธ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(LoadBalancer) ์„œ๋น„์Šค

NodePort๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋˜๋ฉด node์˜ IP๋ฅผ ์•Œ์•„์•ผ ํ•˜๊ณ  ๋…ธ์ถœ๋  ์œ„ํ—˜์ด ์žˆ์„ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•œ ๋Œ€์•ˆ์œผ๋กœ๋Š” LoadBalancer ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

LoadBalncer๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ณ ์œ ์˜ IP๋ฅผ ๋งŒ๋“ค๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ, ์ตœ์ ๋œ ๊ฒฝ๋กœ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

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

 

MetalLB ์„ค์น˜ ๋ฐ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ๊ตฌ์ถ• ์‹ค์Šต

 

1. ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด MetalLB๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค.

 

 

2. kubectl create deployment chk-hn --image=sysnet4admin/chk-hn ์œผ๋กœ ์ž„์˜์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  replicas=3 ๊ฐœ๋กœ ์ด 3๊ฐœ์˜ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•œ๋‹ค.

 

 

3. kubectl expose deployment chk-hn --type=LoadBalancer --port=80์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋…ธ์ถœ ์‹œํ‚จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  services๋ฅผ ํ™•์ธํ•˜๋ฉด NodePort์™€ ๋‹ค๋ฅด๊ฒŒ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋Š” ๊ณ ์œ ์˜ IP๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

 

 

4. External - IP๋ฅผ ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•ด์„œ ์š”์ฒญํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ ‘๊ทผ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

5. ๋ฐฐํฌํ•œ ๊ฒƒ๋“ค ์‚ญ์ œ

 

1. kubectl delete service chk-hn์„ ํ†ตํ•ด ์šฐ์„  ์„œ๋น„์Šค ์‚ญ์ œ

 

2. kubectl delete deployment chk-cn ์œผ๋กœ ๋ฐฐํฌ๋œ pod ์‚ญ์ œ

 

3. ํŒŒ์ผ๋กœ ์„ค์น˜ํ•œ ๊ฒƒ์€ kubectl delete -f ~ ๋ฅผ ํ†ตํ•ด ์‚ญ์ œ -> metallb(๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ) ์‚ญ์ œ

 

๋Œ“๊ธ€