Here is my deploment template:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
name: XXX
version: {{ xxx-version }}
deploy_time: "{{ xxx-time }}"
name: XXX
spec:
replicas: 1
revisionHistoryLimit : 0
strategy:
type : "RollingUpdate"
rollingUpdate:
maxUnavailable : 0%
maxSurge : 100%
selector:
matchLabels:
name: XXX
version: {{ xxx-version }}
deploy_time: "{{ xxx-time }}"
template:
metadata:
labels:
name: XXX
version: {{ xxx-version }}
deploy_time: "{{ xxx-time }}"
spec:
containers:
- image: docker-registry:{{ xxx-version }}
name: XXX
ports:
- name: XXX
containerPort: 9000The key section in the documentation that's relevant to this issues is:
Existing Replica Set controlling Pods whose labels match
.spec.selectorbut whose template does not match.spec.templateare scaled down. Eventually, the new Replica Set will be scaled to.spec.replicasand all old Replica Sets will be scaled to 0.
http://kubernetes.io/docs/user-guide/deployments/
So the spec.selector should not vary across multiple deployments:
selector:
matchLabels:
name: XXX
version: {{ xxx-version }}
deploy_time: "{{ xxx-time }}"should become:
selector:
matchLabels:
name: XXXThe rest of the labels can remain the same