-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeployment-prod.yml
72 lines (72 loc) · 2.21 KB
/
deployment-prod.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
apiVersion: apps/v1
kind: Deployment
metadata:
name: sns-deployment
namespace: prod
labels:
app: sns-service
spec:
selector:
matchLabels:
app: sns-service
# 앱이 Ready 상태가 될 때까지 기다리는 시간
minReadySeconds: 10
# 롤링 업데이트:
strategy:
type: RollingUpdate
rollingUpdate:
# 롤링 업데이트시 스케일아웃할 최대 pod 수
maxSurge: 1
maxUnavailable: 0
replicas: 2
template:
metadata:
name: sns-pod
labels:
app: sns-service
spec:
containers:
- name: sns-service
image: ${ECR_REGISTRY}/${AWS_ECR_REPOSITORY}:${IMAGE_TAG}
resources:
requests:
memory: "384Mi"
limits:
memory: "500Mi"
ports:
- containerPort: 8088
imagePullPolicy: IfNotPresent
# 애플리케이션이 시작된 뒤 초기화 작업이 마무리되어 준비되었는지 검사
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: 8088
initialDelaySeconds: 120
periodSeconds: 30
timeoutSeconds: 2
# 애플리케이션이 정상 상태를 유지하고 있는지 지속해서 검사
livenessProbe:
httpGet:
path: /actuator/health/liveness
port: 8088
initialDelaySeconds: 120
periodSeconds: 30
timeoutSeconds: 2
# SIGTERM을 받아도 바로 종료되지 않고 일정 시간 뒤에 종료
terminationGracePeriodSeconds: 60
restartPolicy: Always
affinity:
nodeAffinity:
# Pod이 존재하지 않다가 처음으로 만들어지는 상태, 이미 실행중인데 nodeSelector가 node에서 제거된다면 계속 실행
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: type
operator: In
values:
- App
- key: size
operator: In
values:
- Large
- Medium