์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋ฌ๋ถ, ํ์ํฉ๋๋ค! ๐
์ด ๊ธ์ Pod, Deployment, Service๋ผ๋ ์ฟ ๋ฒ๋คํฐ์ค์ ํต์ฌ ๊ฐ๋ 3๊ฐ์ง๋ฅผ ์ค์ฌ์ผ๋ก ์ ํ์ํ์ง, ๋ฌด์จ ์ญํ ์ ํ๋์ง, ์ด๋ค ์์ผ๋ก ์ฌ์ฉ๋๋์ง๋ฅผ ์ฝ๊ณ ์์ธํ ์๋ ค์ฃผ๋ ๋ธ๋ก๊ทธ์ ๋๋ค.
๐ ์ด ๊ธ์ ์ฝ์ผ๋ฉด, ๋ง์น ๋ ๊ณ ๋ธ๋ก์ฒ๋ผ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ์กฐ๋ฆฝํ๋ฏ ์ดํดํ ์ ์์ด์!
| ๊ธฐ๋ฅ | ์ค๋ช | |โโ|โโ| | ๋ฐฐํฌ | ์ปจํ ์ด๋๋ฅผ ์๋ฒ์ ์๋์ผ๋ก ๋ฐฐ์นํด์ค | | ํ์ฅ | ์ฌ์ฉ์๊ฐ ๋ง์์ง๋ฉด ์๋์ผ๋ก ์ปจํ ์ด๋ ์ ๋๋ฆผ | | ๋ณต๊ตฌ | ๋ฌธ์ ๊ฐ ์๊ธด ์ปจํ ์ด๋๋ ์๋์ผ๋ก ์ฌ์์ | | ์ฐ๊ฒฐ | ์ฌ์ฉ์์ ์ปจํ ์ด๋, ์ปจํ ์ด๋ ๊ฐ ์ฐ๊ฒฐ์ ์๋์ผ๋ก ์ค์ |
โPod๋ ์ฟ ๋ฒ๋คํฐ์ค์์ ์ฑ์ด ์ค์ ๋ก ์คํ๋๋ ๊ฐ์ฅ ์์ ๋จ์์์.โ
โDeployment๋ ์ฌ๋ฌ Pod๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ๋งค๋์ ์์.โ
| ๊ธฐ๋ฅ | ์ค๋ช | |โโ|โโ| | ์๋ ์์ฑ | ์ํ๋ ์๋งํผ Pod ์์ฑ | | ๋ณต๊ตฌ | ์ฃฝ์ Pod ์๋ ์ฌ์์ฑ | | ์ ๋ฐ์ดํธ | ์๋ก์ด ์ด๋ฏธ์ง๋ก ๊ต์ฒด ๊ฐ๋ฅ (๋กค๋ง ์ ๋ฐ์ดํธ) | | ๋กค๋ฐฑ | ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ด์ ์ํ๋ก ๋๋๋ฆฌ๊ธฐ |
โService๋ ์ธ๋ถ์์ Pod์๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฌธ์ง๊ธฐ์์.โ
| ์ข ๋ฅ | ์ค๋ช | |โโ|โโ| | ClusterIP | ๋ด๋ถ์์๋ง ์ ๊ทผ ๊ฐ๋ฅ (๊ธฐ๋ณธ๊ฐ) | | NodePort | ์ธ๋ถ์์ ํน์ ํฌํธ๋ก ์ ๊ทผ ๊ฐ๋ฅ | | LoadBalancer | ํด๋ผ์ฐ๋์์ ์ธ๋ถ IP ๋ถ์ฌ |
| ํญ๋ชฉ | Pod | Deployment | Service |
|---|---|---|---|
| ์ญํ | ์ปจํ ์ด๋ ์คํ ๋จ์ | Pod ์๋ ๊ด๋ฆฌ | ์ ๊ทผ & ์ฐ๊ฒฐ ๋ด๋น |
| ๊ตฌ์ฑ ์ | 1๊ฐ ์ด์ ์ปจํ ์ด๋ | ์ฌ๋ฌ Pod | ์ฌ๋ฌ Pod์ ์ฐ๊ฒฐ |
| ์๋ํ | ์์ | ์์ | ์์ |
| ์ธ๋ถ ๋ ธ์ถ | ์ ๋จ | ์ ๋จ | ๋จ |
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-web-deploy
spec:
replicas: 3
selector:
matchLabels:
app: my-web
template:
metadata:
labels:
app: my-web
spec:
containers:
- name: web
image: nginx
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: my-web-svc
spec:
type: NodePort
selector:
app: my-web
ports:
- port: 80
targetPort: 80
nodePort: 30080
์ ๋ ํ์ผ์ ์ ์ฉํ๋ฉด 3๊ฐ์ ์น์๋ฒ Pod๊ฐ ๋ง๋ค์ด์ง๊ณ , ์ธ๋ถ์์ 30080 ํฌํธ๋ก ์ ๊ทผํ ์ ์์ด์.
์ด ์ธ ๊ฐ์ง๊ฐ ํฉ์ณ์ ธ์ ์ฟ ๋ฒ๋คํฐ์ค์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ๋ง๋ญ๋๋ค!
๐ ์ฐธ๊ณ ์๋ฃ: