kubectl delete statefulsets This task shows you how to delete a StatefulSet. You can delete a StatefulSet in the same way you delete other resources in Kubernetes:
use the You may need to delete the associated headless service separately after the StatefulSet itself is deleted. When deleting a StatefulSet through By passing Deleting the Pods in a StatefulSet will not delete the associated volumes.
This is to ensure that you have the chance to copy data off the volume before
deleting it. Deleting the PVC after the pods have terminated might trigger
deletion of the backing Persistent Volumes depending on the storage class
and reclaim policy. You should never assume ability to access a volume
after claim deletion. To delete everything in a StatefulSet, including the associated pods,
you can run a series of commands similar to the following: In the example above, the Pods have the label If you find that some pods in your StatefulSet are stuck in the 'Terminating'
or 'Unknown' states for an extended period of time, you may need to manually
intervene to forcefully delete the pods from the apiserver.
This is a potentially dangerous task. Refer to
Force Delete StatefulSet Pods
for details. Learn more about force deleting StatefulSet Pods.Delete a StatefulSet
Delete a StatefulSet
Before you begin
Deleting a StatefulSet
kubectl delete command, and specify the StatefulSet either by file or by name.kubectl delete -f <file.yaml>
kubectl delete statefulsets <statefulset-name>
kubectl delete service <service-name>
kubectl, the StatefulSet scales down to 0.
All Pods that are part of this workload are also deleted. If you want to delete
only the StatefulSet and not the Pods, use --cascade=orphan. For example:kubectl delete -f <file.yaml> --cascade=orphan
--cascade=orphan to kubectl delete, the Pods managed by the StatefulSet
are left behind even after the StatefulSet object itself is deleted. If the pods have
a label app.kubernetes.io/name=MyApp, you can then delete them as follows:kubectl delete pods -l app.kubernetes.io/name=MyApp
Persistent Volumes
Note:
Use caution when deleting a PVC, as it may lead to data loss.Complete deletion of a StatefulSet
grace=$(kubectl get pods <stateful-set-pod> --template '{{.spec.terminationGracePeriodSeconds}}')
kubectl delete statefulset -l app.kubernetes.io/name=MyApp
sleep $grace
kubectl delete pvc -l app.kubernetes.io/name=MyApp
app.kubernetes.io/name=MyApp;
substitute your own label as appropriate.Force deletion of StatefulSet pods
What's next