【问题标题】:Kubernetes does not delete pods within a deleted deploymentKubernetes 不会删除已删除部署中的 pod
【发布时间】:2017-06-30 10:45:17
【问题描述】:

我们在 AWS 上运行一个 kubernetes 集群。

当我尝试删除部署时 - 副本集也被删除 - 但 pod 仍然存在并且没有被删除。

当我重新部署时,我得到一个新的部署、新的副本集和一个新的 pod(所以现在有 2 个可用...)

apiVersion: v1
kind: Service
metadata:
  name: helloworld
  labels:
    app: helloworld
spec:
  ports:
    - 
      port: 80
      targetPort: 10000
  selector:
    service: helloworld
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: helloworld
spec:
  replicas: 1
  revisionHistoryLimit: 0
  selector:
    matchLabels:
      service: helloworld
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        service: helloworld
    spec:
      containers:
      - 
        name: helloworld
        image: 'my.service.io/service/helloworld:latest'
        imagePullPolicy: Always
        ports:
        - containerPort: 10000
        command:
        - node
        args:
        - "app.js"
      imagePullSecrets:
      - name: my-screts
      restartPolicy: Always
      terminationGracePeriodSeconds: 30

deployment 和 replica sets 删除时,为什么 pod 没有被删除?

【问题讨论】:

  • 您使用声明式 (kubectl apply) 还是命令式语法 (kubectl create)?您究竟如何删除部署?

标签: kubernetes


【解决方案1】:

会不会是 Pod 没有部署在 Deployment 对象中?您是否有任何机会手动部署了这个 Pod?如果是这种情况,则在删除 Deployment 时不会将其删除。您能否尝试手动删除 Pod 并查看问题是否仍然存在?

【讨论】:

    【解决方案2】:

    您可能需要强制删除 pod。运行命令

    kubectl delete pod NAME --force --grace-period=0

    【讨论】:

      【解决方案3】:

      取决于你在使用- cascade [= true]时是否被删除

      kubectl delete -f deploy  --cascade false
      

      【讨论】:

        【解决方案4】:

        我有同样的问题,可以通过手动删除它们来解决它,如下所示:

        1.获取部署

         kubectl get deployments
        

        - 删除部署

        kubectl delete deployments [NameOfDeployment]
        

        - 获取复制控制器

        kubectl get rc
        

        - 删除复制控制器

         kubectl delete deployments [NameOfrc]
        

        删除replication controller/replicaset后,可以像deployment或rc一样手动删除pod和service。

        【讨论】:

          【解决方案5】:

          terminationGracePeriodSeconds: 30 表示删除部署后 pod 将在列表中保留 30 秒。它将有status: Terminating。

          你确定你给了足够的时间让 Pod 优雅地终止吗?

          您还可以将部署缩减到 0 个副本 (replicas: 0),然后将其删除。

          【讨论】:

            猜你喜欢
            • 2020-12-27
            • 1970-01-01
            • 1970-01-01
            • 2021-06-07
            • 2019-12-27
            • 2019-03-16
            • 1970-01-01
            • 2019-06-15
            • 2019-04-23
            相关资源
            最近更新 更多