Kubernetes不会删除已删除部署中的pod

时间:2017-06-30 10:45:18

标签: kubernetes

我们在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

为什么删除部署和副本集时删除了pod?

5 个答案:

答案 0 :(得分:0)

可能是pod未部署在Deployment对象中吗?你有没有机会手动部署这个Pod?如果是这种情况,则在删除部署时不会删除它。您是否可以尝试手动删除Pod并查看问题是否仍然存在?

答案 1 :(得分:0)

您可能需要强制删除该窗格。运行命令

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

答案 2 :(得分:0)

取决于您在使用- cascade [= true]

时是否被删除
kubectl delete -f deploy  --cascade false

答案 3 :(得分:0)

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

1。获取部署

 kubectl get deployments

-删除部署

kubectl delete deployments [NameOfDeployment]

-获取复制控制器

kubectl get rc

-删除复制控制器

 kubectl delete deployments [NameOfrc]

删除复制控制器/复制包后,您可以手动删除与部署或rc相同的Pod和服务。

答案 4 :(得分:0)

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

您确定您有足够的时间使Pod正常终止吗?

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