Pod
Kubernetes์ ๊ฐ์ฅ ์์ ๋ฐฐํฌ ๋จ์์ ๋๋ค.
- ์ฌ๋ฌ ๊ฐ์ Container๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
- ๊ฐ์ Pod์ Container๋ Network์ Volume์ ๊ณต์ ํ ์ ์์ต๋๋ค.
Probe๋ Container๊ฐ ์์๋์๋์ง, Traffic์ ๋ฐ์ ์ ์๋์ง, ์ฌ์์์ด ํ์ํ์ง๋ฅผ ๊ฐ๊ฐ ํ์ธํฉ๋๋ค.
startupProbe: ์ด๊ธฐํ๊ฐ ๋๋ฌ๋์ง ํ์ธํฉ๋๋ค. ์ฑ๊ณตํ๊ธฐ ์ ์๋ ๋ค๋ฅธ Probe๋ฅผ ์์ํ์ง ์์ต๋๋ค.readinessProbe: ์ง๊ธ Traffic์ ๋ฐ์ ์ ์๋์ง ํ์ธํฉ๋๋ค. ์คํจํ๋ฉด Service์์ ์ ์ธํ์ง๋ง ์ฌ์์ํ์ง ์์ต๋๋ค.livenessProbe: ์ฌ์์ํด์ผ๋ง ๋ณต๊ตฌ๋๋ ๊ณ ์ฅ์ธ์ง ํ์ธํฉ๋๋ค. ์คํจํ๋ฉด Container๋ฅผ ์ฌ์์ํฉ๋๋ค.
containers:
- name: app
image: example/app
startupProbe:
httpGet:
path: /health/startup
port: 8080
periodSeconds: 5
failureThreshold: 30
readinessProbe:
httpGet:
path: /health/ready
port: 8080
livenessProbe:
httpGet:
path: /health/live
port: 8080- Startup์ ํ์ฉ ์๊ฐ์ ์ต์ ์ ์ ์ ์ด๊ธฐํ ์๊ฐ๋ณด๋ค ๊ธธ์ด์ผ ํฉ๋๋ค.
- Readiness๋ ํด๋น Pod๋ก Traffic์ ๋ณด๋ด์ง ์๋ ํธ์ด ๋์ ๋๋ง ์คํจ์ํต๋๋ค.
- Liveness์ DB๋ ์ธ๋ถ API์ฒ๋ผ ์ฌ์์์ผ๋ก ํด๊ฒฐ๋์ง ์๋ ์ํ๋ฅผ ๋ฃ์ผ๋ฉด ์ฌ๋ฌ Pod๊ฐ ํจ๊ป ์ฌ์์ํ๋ฉฐ ์ฅ์ ๋ฅผ ํค์ธ ์ ์์ต๋๋ค.
ReplicaSet
Pod๋ฅผ ์ ํด์ง ๊ฐ์๋งํผ ๊ด๋ฆฌํ๋ ๋ฆฌ์์ค์ ๋๋ค.
- ๊ณ์ ํ์ฌ ์ํ๋ฅผ ํ์ธํ์ฌ Pod ๊ฐ์๋ฅผ ์กฐ๊ฑด์ ๋ง๊ฒ ์กฐ์ ํฉ๋๋ค.
- ๋จ๋ ์ผ๋ก ์ฐ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์๊ณ , ๋ณดํต Deployment๋ฅผ ํตํด ์ฌ์ฉํฉ๋๋ค.
Deployment
ReplicaSet์ ๊ด๋ฆฌํ๊ณ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์์ ๋ฆฌ์์ค์ ๋๋ค.
- Pod๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆด ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ
RollingUpdate๋ฐฉ์์์๋ ์ ReplicaSet์ ๋ง๋ค๊ณ , ์ Pod๋ฅผ ๋๋ฆฌ๋ฉด์ ๊ธฐ์กด Pod๋ฅผ ์ค์ ๋๋ค.
StatefulSet
Deployment์ ๋น์ทํ๊ฒ Pod๋ฅผ ๊ด๋ฆฌํ์ง๋ง, ๊ฐ Pod์ ๋ฐ๋์ง ์๋ ์ด๋ฆ๊ณผ ๋ฒํธ๋ฅผ ๋ถ์ฌํฉ๋๋ค. Pod๊ฐ ๋ค์ ๋ง๋ค์ด์ ธ๋ name-0, name-1 ๊ฐ์ ์ด๋ฆ์ ์ ์งํ๋ฏ๋ก, Pod๋ง๋ค ์ญํ ์ด ๋ค๋ฅธ Database๋ ๋ถ์ฐ ์์คํ
์ ์ ํฉํฉ๋๋ค.
- ๊ธฐ๋ณธ
OrderedReady๋ฐฉ์์์๋ Pod๋ฅผ ๋ฒํธ์์ผ๋ก ๋ง๋ค๊ณ ์ญ์์ผ๋ก ์ค์ ๋๋ค.Parallel์ ์ฌ์ฉํ๋ฉด ์ด ์์๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค. - ๋ฐ๋์ง ์๋ DNS ์ด๋ฆ์ ์ฌ์ฉํ๋ ค๋ฉด Headless Service๊ฐ ํ์ํฉ๋๋ค.
volumeClaimTemplates๋ก Pod๋ง๋ค PVC๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. StatefulSet์ ์ค์ด๊ฑฐ๋ ์ญ์ ํด๋ PVC๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋จ์ต๋๋ค.- ๊ณ ์ ๋ ์ด๋ฆ๊ณผ ์คํ ์์๋ง์ผ๋ก ์์ ์ด ํ ๋ฒ๋ง ์คํ๋๋ค๊ณ ๋ณด์ฅํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ณด์ฅ์ด ํ์ํ๋ฉด Leader election๊ณผ ์ค๋ณต ์คํ์ ๊ฒฌ๋๋ ์ฒ๋ฆฌ๋ฅผ ๋ฐ๋ก ๊ตฌํํด์ผ ํฉ๋๋ค.
Job
์ผํ์ฑ ์์ ์ ์คํํ๋ ๋ฆฌ์์ค์ ๋๋ค.
- Pod๋ฅผ ๋ง๋ค์ด ์์ ์ ์ํํ๊ณ , ์๋ฃ๋๋ฉด ์ข ๋ฃํฉ๋๋ค.
- ๋์์ ์คํํ Pod ์์ ์คํจ ์ ์ฌ์๋ ํ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
- ๊ฐ์ ์์ ์ด ๋ ๋ฒ ์์๋ ์ ์์ผ๋ฏ๋ก, ๊ฐ๋ฅํ๋ฉด ์ค๋ณต ์คํ๋์ด๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง์ง ์๊ฒ ๋ง๋ญ๋๋ค.
CronJob
Job์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํ๋ ๋ฆฌ์์ค์ ๋๋ค.
- cron ํํ์์ผ๋ก ์คํ ์๊ฐ์ ์ ํฉ๋๋ค.
- ๋๋ฌผ๊ฒ ์คํ์ด ๋น ์ง๊ฑฐ๋ ๋ ๋ฒ ์์ฑ๋ ์ ์์ผ๋ฏ๋ก, ์ค๋ณต ์คํ๋์ด๋ ์์ ํ ์์ ์ผ๋ก ๋ง๋ญ๋๋ค.
concurrencyPolicy๋ก ์ด์ ์์ ์ด ๋๋์ง ์์์ ๋ ์ ์์ ์ ์คํํ ์ง ์ ํฉ๋๋ค.startingDeadlineSeconds๋ก ๋ฆ์ด์ง ์์ ์ ์ธ์ ๊น์ง ์คํํ ์ง ์ ํฉ๋๋ค.- Schedule ๋ณ๊ฒฝ์ ์์ผ๋ก ์์ฑ๋ Job์๋ง ์ ์ฉ๋๋ฉฐ, ์ด๋ฏธ ์์ฑ๋ Job์ ๋ฐ๋์ง ์์ต๋๋ค.
Service
Pod๋ฅผ Network์ ๋ ธ์ถํ๋ ๋ฆฌ์์ค์ ๋๋ค.
Pod๋ ๋ค์ ๋ง๋ค์ด์ง ๋ IP๊ฐ ๋ฐ๋ ์ ์์ต๋๋ค. Service๋ ๋ณํ๋ Pod๋ค์ ํ๋์ ๊ณ ์ ๋ ์ฃผ์์ DNS ์ด๋ฆ์ผ๋ก ๋ฌถ์ด, ์ฌ์ฉํ๋ ์ชฝ์์ ๊ฐ๋ณ Pod์ ์ฃผ์๋ฅผ ์ ํ์๊ฐ ์๊ฒ ํฉ๋๋ค.
Selector์ ์ผ์นํ๋ Pod๋ Service์ Endpoint์ ์๋์ผ๋ก ๋ฐ์๋ฉ๋๋ค. ๊ธฐ๋ณธ ClusterIP Service๋ Cluster ์์์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
Node
Cluster๋ฅผ ๊ตฌ์ฑํ๋ ๋ฌผ๋ฆฌ ์๋ฒ ๋๋ VM์ ๋๋ค.
Pod๊ฐ ์ค์ ๋ก ์คํ๋๋ ๊ณณ์ด๋ฉฐ, kubelet๊ณผ Container runtime์ด ๋์ํฉ๋๋ค. Network ๊ตฌ์ฑ์ ๋ฐ๋ผ kube-proxy ๋๋ ์ด๋ฅผ ๋์ ํ๋ ๋๊ตฌ๋ ์คํ๋ฉ๋๋ค.
Control plane Node๋ Cluster๋ฅผ ๊ด๋ฆฌํ๊ณ , Worker Node๋ ์ฃผ๋ก Application์ ์คํํฉ๋๋ค. ๋ค๋ง ๋์ ์์ ํ ๋ค๋ฅธ ์ข ๋ฅ์ Node๊ฐ ์๋๋ผ, ์ค์น๋ Component์ Scheduling ์ค์ ์ ๋ฐ๋ผ ๋๋๋ ์ญํ ์ ๋๋ค.
Service Mesh
Service Mesh๋ ๊ฐ Service ์์ Proxy๊ฐ Service ๊ฐ Traffic์ ๋์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ์ ๋๋ค. Application๋ง๋ค ๊ฐ์ ํต์ ๊ธฐ๋ฅ์ ๋ฐ๋ก ๊ตฌํํ์ง ์๊ณ , Cluster ์ ์ฒด์ ์ผ๊ด๋ Trafficยท๋ณด์ ์ ์ฑ ๊ณผ ๊ด์ธก ๊ธฐ๋ฅ์ ์ ์ฉํ ์ ์์ต๋๋ค.
| ๊ธฐ๋ฅ | ์ญํ |
|---|---|
| L7 Traffic ๊ด๋ฆฌ | ์์ฒญ ๋จ์ Load balancing, Retry, Timeout |
| mTLS | Service ๊ฐ ์ธ์ฆ๊ณผ ํต์ ์ํธํ |
| ๊ด์ธก | Metric, Trace, Log ์์ง |
| ์ ๊ทผ ์ ์ด | Service ๊ฐ ํธ์ถ ๊ถํ ๊ด๋ฆฌ |
gRPC Load balancing์ Service Mesh๊ฐ ํด๊ฒฐํ ์ ์๋ ๋ํ์ ์ธ ๋ฌธ์ ์ ๋๋ค. Kubernetes Service๋ ๋ณดํต IP ์ฃผ์์ Port๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฐ๊ฒฐ์ Pod์ ๋๋ ์ค๋๋ค. ํ์ง๋ง gRPC๊ฐ ์ฌ์ฉํ๋ HTTP/2๋ ํ๋์ ์ฐ๊ฒฐ๋ก ์ฌ๋ฌ ์์ฒญ์ ๊ณ์ ๋ณด๋ด๋ฏ๋ก, ์ฒ์ ์ ํ๋ Pod์ ์์ฒญ์ด ๋ชฐ๋ฆด ์ ์์ต๋๋ค. Service Mesh๋ gRPC ์์ฒญ์ ์ดํดํ๊ณ ์์ฒญ ๋จ์๋ก ์ฌ๋ฌ Pod์ ๋๋ ์ ์์ต๋๋ค.
๋ค๋ง gRPC ๋ถ์ฐ๋ง ํ์ํ๋ค๋ฉด Headless Service์ Client-side load balancing ๋๋ L7 Proxy๋ก๋ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ฌ๋ฌ Service์ mTLS, Traffic ์ ์ฑ , ๊ด์ธก, ์ ๊ทผ ์ ์ด๊น์ง ํจ๊ป ์ ์ฉํ ๋ Service Mesh์ ๊ฐ์น๊ฐ ์ปค์ง๋๋ค. ๊ทธ ๋์ ์ด์ํ Component์ Resource ์ฌ์ฉ๋๋ ๋์ด๋ฉ๋๋ค.
๋ํ์ ์ธ ๊ตฌํ์ผ๋ก Istio์ Linkerd๊ฐ ์์ต๋๋ค.