Delete Confluent Platform Deployment Using Confluent for Kubernetes
When you shut down a Confluent for Kubernetes (CFK) deployment, the components and resources must be deleted in the following order:
If you encounter an orphaned custom resource that is stuck in the
Deleting state, see Issue: Unable to delete Kubernetes resources for the troubleshooting
steps.
Note
Do not use the --force option when issuing the kubectl delete
command. With the option, the underlying resource isn’t properly
deleted.
To delete a CFK and Confluent Platform deployment:
Delete the Confluent application resources
The CFK application resources include the following:
ClusterLink
ConfluentRolebinding
Connector
KafkaTopic
SchemaExporter
Schema
KafkaRestClass
To delete the Confluent application resources:
Check which of the CFK resources were deployed and locate their custom resources (CRs).
kubectl get confluent --namespace <namespace>
An example output is:
NAME REPLICAS READY STATUS AGE kafka.platform.confluent.io/kafka 3 3 RUNNING 23h NAME REPLICAS READY STATUS AGE connect.platform.confluent.io/connect 2 2 RUNNING 23h NAME ENDPOINT KAFKACLUSTERID AGE kafkarestclass.platform.confluent.io/krc-cfk-mtls https://kafka.confluent.svc:8090 kafka 24h
kubectl get confluentdoes not currently list USMAgent resources. Additionally, check for a USMAgent using:kubectl get usmagent --namespace <namespace>
Delete the application custom resources (CRs) using one of the following commands.
Using the CR file:
kubectl delete -f <application CR> --namespace <namespace>
Using the resource name from Step 1:
kubectl delete <resource name> --namespace <namespace>
For example:
kubectl delete kafkarestclass.platform.confluent.io/krc-cfk-mtls --namespace <namespace>
Delete the Confluent Platform components
The best practice to delete a CFK deployment is to follow the recommended order.
If you choose to not follow the best practice order of deletion, you can try
using the --cascade=foreground option with the kubectl command to
delete a resource with dependencies. The option deletes the dependent resource
before it deletes the component cluster. For example, when deleting a Connect
cluster associated with a connector that did not get deleted in the
previous step, the
--cascade=foreground option deletes the connector resource first, and
then deletes the Connect cluster.
For more information, see Use Cascading Deletion in a Cluster.
To delete the Confluent Platform component clusters:
Delete the Confluent Platform component CRs, excluding Apache Kafka®, ZooKeeper, and KRaftController.
The CFK component resources include the following:
Connect
ControlCenter
KafkaRestProxy
KsqlDB
SchemaRegistry
USMAgent
Delete the resources using one of the following commands.
Using the CR file:
kubectl delete -f <component CR> --namespace <namespace>
Using the resource name from Step 1:
kubectl delete <resource name> --namespace <namespace>
For example:
kubectl delete connect.platform.confluent.io/connect --namespace <namespace>
Delete Kafka using one of the following commands.
kubectl delete -f <Kafka CR> --namespace <namespace>
or
kubectl delete <Kafka resource name> --namespace <namespace>
If your deployment uses KRaft, delete the KRaftController using one of the following commands.
kubectl delete -f <KRaftController CR> --namespace <namespace>
or
kubectl delete <KRaftController resource name> --namespace <namespace>
Warning
If you delete CFK in the next section before the KRaftController CR finalizer is processed, the finalizer can never be completed, and the namespace deletion hangs in the
Terminatingstate.If your deployment uses ZooKeeper, delete ZooKeeper using one of the following commands.
Important
Starting with Confluent Platform version 8.0, ZooKeeper is no longer part of Confluent Platform.
kubectl delete -f <Zookeeper CR> --namespace <namespace>
or
kubectl delete <Zookeeper resource name> --namespace <namespace>
Delete the CFK
To delete the CFK:
Check the release name of your CFK.
helm ls --namespace <namespace>
Using the release name you retrieved in the previous step, delete the CFK.
helm delete <CFK release name> --namespace <namespace>
Delete the namespace.
kubectl delete namespace <namespace>