无法使用 kubectl delete pod <pod> 删除 pod

cant delete pod using kubctl delete pod <pod>

我想永久删除一个 pod,这样我就可以重新创建 deployment.yaml 和 derveice.yaml,所以我尝试了:

 kubctl delete pod <pod>

pod 还在,也试过:

kubectl delete pods <pod> --grace-period=0

没用。

唯一有用的是当我设置部署 replicas: 0 然后应用它时,但是当我尝试创建新部署时我得到:

Error from server: error when creating "myService/deployment.yaml": deployments.extensions "myService" already exists

Pods 是由 Deployment 创建的,所以当你删除一个 Pod 然后 Deployment 会自动根据 replicas 值创建它,你必须删除 Deployment 然后重新创建它,

您可以使用:

kubectl create -f deployment.yml
kubectl delete -f deployment.yml

1).请注意,每个 pod 都是根据其部署文件生成的。因此,每次删除 pod 时,它都会再次出现,因为您在部署文件中定义了值 'replicas: 1'。在这种情况下,使用命令 'kubectl delete pods --grace-period=0' 也将不起作用,因为 pod 将根据部署文件再次生成。

2).你得到你在问题中提到的错误的原因是因为部署仍然存在,你所做的只是设置'replicas:0'这使得没有。应该出现的 pods 或集群上的 运行,等于零。

3). 要永久删除 Pod/s,您必须先删除该 pod 的部署文件,然后再删除该 pod(可选)。这将永久删除 pod。当然,部署本身将被永久删除。这样做的命令是:- kubectl delete -f deployment_file_name.yml 当然,您也可以从 Kubernetes 的 UI 中删除部署文件。

kubectl delete --grace-period=0  --force --namespace=system pod mysql-84fbb8bfc6-lhlnh

删除特定于 pods 的 Deployment 将自动终止 pods

kubectl get deployments

kubectl delete deployment deployment_name_to_delete --namespace=default  
(e.g., kubectl delete deployment ngnix --namespace=default)