
git push โ Jenkins ์๋ build โ Docker ์ด๋ฏธ์ง Harbor์ push โ Deployment manifest ์์ โ ArgoCD Sync โ Pod ์ฌ์์
Jenkins๋ ์ด๋ฏธ์ง ๋น๋ ์ ์ฉ, ArgoCD๋ manifest ๋ฐ์ ์ ์ฉ









๋์ผํ ์ฑ ๋ ์ด๋ธ์ ๊ฐ์ง Pod์ด ๊ฐ์ ๋ ธ๋์ ๋จ์ง ์๋๋ก ์ ํํ๋ ์ ์ฑ
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- sk030-my-app
topologyKey: "kubernetes.io/hostname"
topologyKey: ๋
ธ๋ ๋จ์ ๋ถ์ฐrequired...: ๊ฐ์ ์กฐ๊ฑดpreferred...: soft ์กฐ๊ฑด์ผ๋ก fallback ํ์ฉKubernetes๋ ์ปจํ ์ด๋ ์ํ๋ฅผ ํ์ธํ๊ธฐ ์ํด 3๊ฐ์ง probe๋ฅผ ์ง์ํ๋ค.
startupProbe:
httpGet:
path: /actuator/health
port: 23456
failureThreshold: 30
periodSeconds: 1
initialDelaySeconds: 60
/actuator/health/startup ์ง์ํ๋ ค๋ฉด:management:
endpoint:
health:
probes:
enabled: true
startup:
enabled: true
startup ๋ฏธ์ง์livenessProbe:
httpGet:
path: /actuator/health
port: 23456
initialDelaySeconds: 60
periodSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health
port: 23456
initialDelaySeconds: 60
periodSeconds: 5
{
"status": "UP",
"groups": ["liveness", "readiness"]
}
/actuator/health๋ก ํตํฉ ํ์ธ ๊ฐ๋ฅstartup group์ spring ์ค์ ํ์| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| connection refused | ํฌํธ ๋ถ์ผ์น (Spring Boot vs K8s manifest) | server.port์ containerPort ์ผ์น์ํด |
| 404 Not Found | actuator endpoint ์์ | actuator config ํ์ธ (startup, readiness ๋ฑ) |
| Probe failed | ์ด๊ธฐ ์๊ฐ ๋ถ์กฑ | initialDelaySeconds 60์ด ์ด์ ์ถ์ฒ |