kubectl申请一个revHistoryLimit为0的deployment不删除旧副本集

Kubectl apply for a deployment with revHistoryLimit 0 does not delete the old replica set

这是我的部署模板:

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: 9000

文档中与此问题相关的关键部分是:

Existing Replica Set controlling Pods whose labels match .spec.selectorbut whose template does not match .spec.template are scaled down. Eventually, the new Replica Set will be scaled to .spec.replicas and all old Replica Sets will be scaled to 0.

http://kubernetes.io/docs/user-guide/deployments/

因此 spec.selector 不应因多个部署而异:

selector:
    matchLabels:
      name: XXX
      version: {{ xxx-version }}
      deploy_time: "{{ xxx-time }}"

应该变成:

selector:
    matchLabels:
      name: XXX

其余标签可以保持不变