Kubectl申请带有revHistoryLimit 0的部署不会删除旧副本集

kar*_*cru 2 kubernetes kubectl

这是我的部署模板:

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
Run Code Online (Sandbox Code Playgroud)

man*_*lds 5

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

标签匹配.spec.selector但模板不匹配的现有副本集控制Pod .spec.template被按比例缩小。最终,新的副本集将缩放为.spec.replicas,所有旧的副本集将缩放为0。

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

因此,spec.selector在多个部署中不应有所不同:

selector:
    matchLabels:
      name: XXX
      version: {{ xxx-version }}
      deploy_time: "{{ xxx-time }}"
Run Code Online (Sandbox Code Playgroud)

应该变成:

selector:
    matchLabels:
      name: XXX
Run Code Online (Sandbox Code Playgroud)

其余标签可以保持不变