Kubernetes Deployment Zero-Downtime Rollout
apiVersion: extensions/v1beta1 # for versions after 1.6.0 use apps/v1
kind: Deployment
metadata:
name: johnsontest
spec:
replicas: 5
selector:
matchLabels:
app: johnsontest
template:
metadata:
labels:
app: johnsontest
spec:
#terminationGracePeriodSeconds: 40
containers:
- name: johnsontest
image: nginx:1.14.0
ports:
- name: http
containerPort: 8080
readinessProbe:
httpGet:
path: /alive
port: 8080
#initialDelaySeconds: 5
#periodSeconds: 5
#successThreshold: 1
lifecycle:
preStop:
exec:
command: ["sleep", "10"] # let the processing requests get done