ポッドを完全に削除して、deployment.yamlとderveice.yamlを新しいものから再度作成できるようにしたいので、次のことを試しました。
kubctl delete pod <pod>
ポッドはまだそこにあり、試してみました:
kubectl delete pods <pod> --grace-period=0
動作しませんでした。
動作したのは、デプロイメントを設定したときだけですreplicas: 0
そしてそれを適用しますが、新しいデプロイメントを作成しようとすると、次のようになります。
サーバーからのエラー:「myService/deployment.yaml」の作成時のエラー:deployments.extensions「myService」はすでに存在します
ポッドはDeploymentによって作成されるため、Podを削除すると、Deploymentはreplicas
値に基づいてポッドを自動的に作成します。Deploymentを削除してから、再度作成する必要があります。
次を使用できます。
kubectl create -f deployment.yml
kubectl delete -f deployment.yml
ポッドに固有のDeployment
を削除すると、ポッドが自動的に終了します
kubectl get deployments
kubectl delete deployment deployment_name_to_delete --namespace=default
(e.g., kubectl delete deployment ngnix --namespace=default)
1)。すべてのポッドは、そのデプロイメントファイルに基づいて生成されることに注意してください。したがって、ポッドを削除するたびに、デプロイメントファイルで値 'replicas:1'を定義したため、ポッドが再び表示されます。また、このような場合、コマンド 'kubectl delete pods --grace-period = 0'を使用しても、展開ファイルに基づいてポッドが再度生成されるため、機能しません。
2)。質問で述べたエラーが発生する理由は、デプロイメントがまだ存在しているためです。「レプリカ:」を設定するだけで、いいえになりました。ゼロに等しい、クラスター上で起動または実行する必要があるポッドの数。
3)。ポッドを完全に削除するには、最初にそのポッドのデプロイメントファイルを削除してから、ポッドを削除する必要があります(オプション)。これにより、ポッドが完全に削除されます。そしてもちろん、デプロイメント自体は完全に削除されます。そのためのコマンドは次のとおりです。-kubectl delete -fdeployment_file_name.ymlまたは、代わりに、KubernetesのUIからデプロイメントファイルを削除することもできます。
kubectl delete --grace-period=0 --force --namespace=system pod mysql-84fbb8bfc6-lhlnh