๐ Pod๋ ๋ฌด์์ธ๊ฐ?
Kubernetes๊ฐ ์ปจํ ์ด๋ ๋์ Pod๋ฅผ ์ฌ์ฉํ๋ ์ง์ง ์ด์ (์ฝ๊ฒ ์ค๋ช )
๐ฅ 10์ด ์์ฝ(ํต์ฌ๋ง ๋น ๋ฅด๊ฒ)
- Pod = ์ปจํ ์ด๋ ํ(team)
- ๋์ผ ๋คํธ์ํฌ·IPC·UTS ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ๋ฉฐ ํ๋ ฅํ๋๋ก ๋ง๋ ๋จ์
- ์ ์ค์? → Kubernetes๊ฐ ๋ฐฐํฌ·์ค์ผ์ผ๋ง·์๋น์ค ์ฐ๊ฒฐ์ Pod ๋จ์๋ก ์๋ํํ๊ธฐ ๋๋ฌธ
Pod๋ “์ปจํ ์ด๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ํ๋์ ์ฑ์ฒ๋ผ ๋ฌถ๋ ์ต์ ๋จ์”์ด๋ฉฐ, Kubernetes ์ด์ ์์ ์ฑ์ ํต์ฌ์ด๋ค.
๐ซ ์ด๋ฐ ๊ณ ๋ฏผ ์์ผ์ ๊ฐ์? (๊ฒ์์๊ฐ ์ค์ ๋ก ์ฐพ๋ Pain Point)
- “์ปจํ ์ด๋๋ง ์์ผ๋ฉด ๋์ง ์ ๊ตณ์ด Pod๊ฐ ํ์ํ์ง?”
- “Sidecar ํจํด์ด ์ Pod ๊ฐ๋ ๊ณผ ์ฐ๊ฒฐ๋๋ ๊ฑฐ์ผ?”
- “์ Deployment๋ ์ปจํ ์ด๋๊ฐ ์๋๋ผ Pod๋ฅผ ์ค์ผ์ผ๋งํ์ง?”
- “Pod ๋ด๋ถ ์ปจํ ์ด๋๋ค์ด ์ด๋ป๊ฒ ํ๋ ฅํ๋์ง ๊ฐ์ด ์ ์จ๋ค…”
์ด ๊ธ์ ์ด๋ณด์ → ์ค๊ธ์ ์ ํ ์ ๋ฐ๋์ ์ดํดํด์ผ ํ Pod ํต์ฌ ๊ฐ๋ ๋ง ์ ๋ฆฌํ์ต๋๋ค.
โ 30์ด ํด๊ฒฐ: Pod ๊ฐ๋ ์์ฝ ๋ฒ์
Pod๊ฐ ํ์ํ ์ด์ 3๊ฐ
- ์ปจํ ์ด๋ ๊ฐ ํ๋ ฅ ๊ตฌ์กฐ ์ ๊ณต(๋คํธ์ํฌ·IPC ๋ฑ ๊ณต์ )
- ๋ฐฐํฌ/์ค์ผ์ผ๋ง/์ฅ์ ๋ณต๊ตฌ์ ํ์ค ๋จ์
- Sidecar ๊ฐ์ ๋๋ฐ์ ํ๋ก์ธ์ค ํจํด์ ์ง์
Pod ๋ด๋ถ์์ ์ผ์ด๋๋ ์ผ 3๊ฐ
- ๋์ผ IP ์ฃผ์ ๊ณต์
localhost๋ก ์ํธ ํต์ ๊ฐ๋ฅ- ์๋ช ์ฃผ๊ธฐ(Lifecycle)๋ฅผ ํจ๊ป ํจ
์ค๋ฌด์์ ์ค์ํ ๊ฒฐ๋ก
Kubernetes๋ “์ปจํ ์ด๋”๊ฐ ์๋๋ผ “Pod”๋ฅผ ๋ค๋ฃฌ๋ค.
Deployment๋, Service๋ ๋ชจ๋ Pod๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์ํ๋ค.
๐ ์ Kubernetes๋ ์ปจํ ์ด๋๋ฅผ ์ง์ ๋ค๋ฃจ์ง ์์๊น?
1) Pod๋ ์ปจํ ์ด๋๋ฅผ “ํ”์ผ๋ก ๋ฌถ๋ ์ต์ ๋จ์
์ปจํ
์ด๋๋ ์๋ ๊ณ ๋ฆฝ๋ ๋จ์ผ ํ๋ก์ธ์ค ํ๊ฒฝ์ด๋ค.
ํ์ง๋ง ์ค์ ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋์ ํ๋ก์ธ์ค๋ก ๋๋์ง ์๋๋ค.
์:
- ์น ์๋ฒ + ๋ก๊ทธ ์์ง๊ธฐ
- ๋ชจ๋ธ ์๋ฒ + ํ๋ก์ ์๋ฒ
- ๋ฐฑ์๋ ์ฑ + ๋ฉํธ๋ฆญ ์์ง๊ธฐ
์ด๋ฐ ๊ตฌ์กฐ๋ฅผ ๋จ์ผ ์ปจํ ์ด๋๋ก ํด๊ฒฐํ๋ฉด?
- ์ด๋ฏธ์ง ๋ณต์ก๋ ์ฆ๊ฐ
- ์ ์ง๋ณด์ ์ด๋ ค์
- ์ํคํ ์ฒ ํ์ฅ์ฑ ์ ํ
๊ทธ๋์ Kubernetes๋ ์ฌ๋ฌ ์ปจํ ์ด๋๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๋๋ก ๋ฌถ๋ ๊ท๊ฒฉ → Pod๋ฅผ ๋ง๋ค์๋ค.
2) Pod ๋ด๋ถ ์ปจํ ์ด๋๋ค์ ์ ํ๋ ฅํ ์ ์์๊น?
Pod๋ ๋ฆฌ๋ ์ค ๋ค์์คํ์ด์ค๋ฅผ ๊ณต์ ํด ์ปจํ ์ด๋ ๊ฐ ํ๋ ฅ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค.
์ฃผ์ ๊ณต์ ์์
| ๋ค์์คํ์ด์ค | ๊ณต์ ๋๋ ๊ฒ | ํจ๊ณผ |
|---|---|---|
| Network | IP, ํฌํธ | ๋์ผ Pod ๋ด ์ปจํ
์ด๋๊ฐ localhost๋ก ํต์ |
| IPC | SHM, ๋ฉ์์ง ํ | ํ๋ก์ธ์ค ๊ฐ ํ๋ ฅ ๊ฐ๋ฅ |
| UTS | Hostname | Pod ์ ์ฒด๋ฅผ ํ๋์ ์์คํ ์ฒ๋ผ ์ธ์ |
3) Pod๊ฐ Sidecar ํจํด์ ๊ธฐ๋ฐ์ด ๋๋ ์ด์
Sidecar๋ ๋ฉ์ธ ์ปจํ ์ด๋์ ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๋ณด์กฐ ์ปจํ ์ด๋์ด๋ค.
์:
- Envoy ํ๋ก์
- ๋ก๊ทธ ์์ง๊ธฐ
- ์ธ์ฆ/๋ณด์ ์์ด์ ํธ
์ด๋ค์ด ์์ฐ์ค๋ฝ๊ฒ ํ์ ๊ฐ๋ฅํ ์ด์ ๊ฐ ๋ฐ๋ก Pod์ Namespace ๊ณต์ ๊ตฌ์กฐ ๋๋ฌธ์ด๋ค.
์์
[์น ์๋ฒ] --localhost:1514--> [๋ก๊ทธ ์์ง๊ธฐ]
์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ ํ์ ์์.
๊ฐ์ ๋จธ์ ์์์ ํฌํธ๋ก ๋งํ๋ฏ ๋จ์ํ๊ฒ ํต์ ๊ฐ๋ฅ.
๐ฆ Pod๊ฐ ์ด์ ์์ ์ฑ์ ๋์ด๋ ๋ฐฉ์
4) Pod๋ Kubernetes ์๋ํ์ ๊ธฐ์ค ๋จ์
Kubernetes ์์ ๋ฆฌ์์ค๋ ๋ชจ๋ Pod๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ง์ธ๋ค.
Deployment๊ฐ Pod๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋ ์ด์
- Pod ๋ด๋ถ ์ปจํ ์ด๋๊ฐ 1๊ฐ์ธ์ง 5๊ฐ์ธ์ง ์ ๊ฒฝ ์ฐ์ง ์๊ณ
- Pod๋ผ๋ ํ๋์ ๊ท๊ฒฉ ๋ธ๋ก๋ง ๋ณต์ /๋ฐฐํฌ/๊ด๋ฆฌํ๋ฉด ๋จ
์ด ๋๋ถ์:
- ์ค์ผ์ผ๋ง์ ์์ ์ ์ผ๋ก ์ผ๊ด๋๊ฒ ์ฒ๋ฆฌ
- ๋๋ฝ/๋ถ์์ ํ ๋ณด์กฐ ์ปจํ ์ด๋ ์์ด ํญ์ ๋์ผ ๊ตฌ์ฑ ์ ์ง
5) Pod์ Ready ์ํ = “์ ๋ถ ๋๋ ํ๋๋ ์๋๋ค”
Pod๋ ์๋ ์กฐ๊ฑด์์๋ง Ready:
- ๋ด๋ถ ์ปจํ ์ด๋ ๋ชจ๋ ์ ์์ผ ๋๋ง Ready
- ํ๋๋ผ๋ ์คํจํ๋ฉด Pod ์ ์ฒด๊ฐ Unready
์ ์ค์ํ๊ฐ?
Service๋ Ready Pod์๋ง ํธ๋ํฝ์ ๋ณด๋ธ๋ค.
์ฆ,
๋ถ๋ถ์ ์ผ๋ก๋ง ์ ์์ธ Pod๊ฐ ํธ๋ํฝ์ ๋ฐ์ ์ฅ์ ๋ฅผ ์ผ์ผํค๋ ์ผ์ ์๋์ผ๋ก ๋ฐฉ์งํ๋ค.
๐ ์ค์ ์ฒดํฌ๋ฆฌ์คํธ: Pod๋ฅผ ์ดํดํ๋์ง ๋ฐ๋ก ํ์ธ
- Pod๋ ๋จ์ ์ปจํ ์ด๋ ๋ฌถ์์ด ์๋๋ผ “ํ๋ ฅ ๋จ์”์์ ์ดํดํ๋ค
- Pod๋ ๋ค์์คํ์ด์ค ๊ณต์ ๋ก ํต์ ์ด ๋จ์ํด์ง๋ค๋ ์ ์ ์ดํดํ๋ค
- Deployment/Service๊ฐ Pod๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์๋ค
- Sidecar ํจํด์ด Pod ๊ตฌ์กฐ์ ์์กดํ๋ค๋ ๊ฒ์ ์ดํดํ๋ค
โ ์์ฃผ ํ๋ ์คํด & ๋ฐ๋ก์ก๊ธฐ
์คํด 1) “์ปจํ ์ด๋๊ฐ Kubernetes์ ๊ธฐ๋ณธ ๋จ์๋ค.”
→ ์๋. Kubernetes๋ Pod๋ง ๊ด๋ฆฌํ๋ค.
์คํด 2) “Pod ์์๋ ์ปจํ ์ด๋ ํ๋๋ง ๋ค์ด๊ฐ๋ค.”
→ ์ปจํ
์ด๋ 1๊ฐ๋ผ๋ Pod ํํ๋ก ๊ฐ์ธ์ผ ํ๋ค.
→ Sidecar ๊ตฌ์กฐ์์๋ 2~3๊ฐ ์ด์์ด ์ผ๋ฐ์ .
์คํด 3) “Pod ๋ด๋ถ ์ปจํ ์ด๋๋ ์๋ก ์์ ํ ๋ถ๋ฆฌ๋๋ค.”
→ ๋คํธ์ํฌ·IPC·UTS๋ ๊ณต์ ๋จ.
๐ฌ FAQ
Q1. Pod ๋ด๋ถ ์ปจํ ์ด๋ ์๋ ์ ํ์ด ์๋์?
A. ๊ธฐ์ ์ ์ํ์ ๊ฑฐ์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก 1~3๊ฐ๊ฐ ๋ฒ ์คํธ์ ๋๋ค.
Q2. Sidecar๋ ๋ฐ๋์ Pod ์์ ์์ด์ผ ํ๋์?
A. ์. Pod ๋ค์์คํ์ด์ค ๊ณต์ ๋ฅผ ์ ์ ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Q3. Pod๋ฅผ VM์ฒ๋ผ ์๊ฐํด๋ ๋๋์?
A. “๊ฐ๋ณ๊ฒ ํ๋ ฅํ๋ ํ๋ก์ธ์ค ๊ทธ๋ฃน” ์ ๋๋ก ๋น์ ํ๋ฉด ์ถฉ๋ถํฉ๋๋ค.
๐ฏ ๊ฒฐ๋ก (3์ค ์์ฝ)
- Pod = ํ๋ ฅํ๋ ์ปจํ ์ด๋ ๊ทธ๋ฃน์ ํ์คํํ ์ต์ ์ด์ ๋จ์
- ๋ค์์คํ์ด์ค ๊ณต์ ๋๋ถ์ ํต์ ·์ด์์ด ๋จ์ํด์ง๋ค
- Deployment·Service ๋ฑ Kubernetes ์๋ํ๋ ๋ชจ๋ Pod ๊ฐ๋ ์ ์ค์ฌ์ผ๋ก ๋์๊ฐ๋ค