web-dev-qa-db-ja.com

kubectl delete pod <pod>を使用してポッドを削除することはできません

ポッドを完全に削除して、deployment.yamlとderveice.yamlを新しいものから再度作成できるようにしたいので、次のことを試しました。

 kubctl delete pod <pod>

ポッドはまだそこにあり、試してみました:

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

動作しませんでした。

動作したのは、デプロイメントを設定したときだけですreplicas: 0そしてそれを適用しますが、新しいデプロイメントを作成しようとすると、次のようになります。

サーバーからのエラー:「myService/deployment.yaml」の作成時のエラー:deployments.extensions「myService」はすでに存在します

7
jack miao

ポッドはDeploymentによって作成されるため、Podを削除すると、Deploymentはreplicas値に基づいてポッドを自動的に作成します。Deploymentを削除してから、再度作成する必要があります。

次を使用できます。

kubectl create -f deployment.yml
kubectl delete -f deployment.yml
10
Pawan Kumar

ポッドに固有のDeploymentを削除すると、ポッドが自動的に終了します

kubectl get deployments

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

1)。すべてのポッドは、そのデプロイメントファイルに基づいて生成されることに注意してください。したがって、ポッドを削除するたびに、デプロイメントファイルで値 'replicas:1'を定義したため、ポッドが再び表示されます。また、このような場合、コマンド 'kubectl delete pods --grace-period = 0'を使用しても、展開ファイルに基づいてポッドが再度生成されるため、機能しません。

2)。質問で述べたエラーが発生する理由は、デプロイメントがまだ存在しているためです。「レプリカ:」を設定するだけで、いいえになりました。ゼロに等しい、クラスター上で起動または実行する必要があるポッドの数。

3)。ポッドを完全に削除するには、最初にそのポッドのデプロイメントファイルを削除してから、ポッドを削除する必要があります(オプション)。これにより、ポッドが完全に削除されます。そしてもちろん、デプロイメント自体は完全に削除されます。そのためのコマンドは次のとおりです。-kubectl delete -fdeployment_file_name.ymlまたは、代わりに、KubernetesのUIからデプロイメントファイルを削除することもできます。

1
Suhas Chikkanna
kubectl delete --grace-period=0  --force --namespace=system pod mysql-84fbb8bfc6-lhlnh
0
jamlee