Deleting a Cluster
Delete your M3DB cluster with
kubectl delete m3dbcluster simple-cluster
By default, the operator will delete the placement and namespaces associated with a cluster before the CRD resource
deleted. If you do not want this behavior, set
true on your cluster spec.
Under the hood, the operator uses Kubernetes finalizers to ensure the cluster CRD is not deleted until the operator has had a chance to do cleanup.
Debugging Stuck Cluster Deletion
If for some reason the operator is unable to delete the placement and namespace for the cluster, the cluster CRD itself will be stuck in a state where it can not be deleted, due to the way finalizers work in Kubernetes. The operator might be unable to clean up the data for many reasons, for example if the M3DB cluster itself is not available to serve the APIs for cleanup or if etcd is down and cannot fulfill the deleted.
To allow the CRD to be deleted, you can
kubectl edit m3dbcluster $CLUSTER and remove the
operator.m3db.io/etcd-deletion finalizer. For example, in the following cluster you'd remove the finalizer from
apiVersion: operator.m3db.io/v1alpha1 kind: M3DBCluster metadata: ... finalizers: - operator.m3db.io/etcd-deletion name: m3db-cluster ...
Note that if you do this, you'll have to manually remove the relevant data in etcd. For a cluster in namespace
$CLUSTER, the keys are: