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:

  1. Delete the Confluent application resources.

  2. Delete the Confluent Platform components.

  3. Delete the CFK.

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:

  1. 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 confluent does not currently list USMAgent resources. Additionally, check for a USMAgent using:

    kubectl get usmagent --namespace <namespace>
    
  2. 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:

  1. 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>
      
  2. Delete Kafka using one of the following commands.

    kubectl delete -f <Kafka CR> --namespace <namespace>
    

    or

    kubectl delete <Kafka resource name> --namespace <namespace>
    
  3. 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 Terminating state.

  4. 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:

  1. Check the release name of your CFK.

    helm ls --namespace <namespace>
    
  2. Using the release name you retrieved in the previous step, delete the CFK.

    helm delete <CFK release name> --namespace <namespace>
    
  3. Delete the namespace.

    kubectl delete namespace <namespace>