我们在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?
答案 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
),然后将其删除。