[์ฟ ๋ฒ๋คํฐ์ค ์์] ๋ฐฐํฌ๋ฅผ ํตํ ์ฟ ๋ฒ๋คํฐ์ค ์ค์ต
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(๋ก๋๋ฐธ๋ฐ์) ์ญ์

'์ฟ ๋ฒ๋คํฐ์ค > ์ฟ ๋ฒ๋คํฐ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [์ฟ ๋ฒ๋คํฐ์ค ์์] ์ฟ ๋ฒ๋คํฐ์ค ์ค๋ธ์ ํธ (0) | 2026.03.15 |
|---|---|
| [์ฟ ๋ฒ๋คํฐ์ค ์์] ์ฟ ๋ฒ๋คํฐ์ค ์ธ์ฌ์ด๋ (0) | 2026.03.15 |
| [์ฟ ๋ฒ๋คํฐ์ค ์์] ์ฟ ๋ฒ๋คํฐ์ค ์ค์ต ํ๊ฒฝ ๊ตฌ์ถ(Mac OS) (0) | 2026.03.15 |
| [์ฟ ๋ฒ๋คํฐ์ค ์์] ์ฟ ๋ฒ๋คํฐ์ค ๋? (0) | 2026.03.14 |
| ์จํ๋ ๋ฏธ์ค ์ฐ๋ถํฌ๋ฅผ ํ์ฉํ ์ฟ ๋ฒ๋คํฐ์ค ๊ตฌ์ฑ (0) | 2025.12.18 |
๋๊ธ