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 are 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 will not be 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 CRs.

    kubectl get confluent --namespace <namespace>
    
    Copy

    An example output is:

    NAME                                        REPLICAS   READY   STATUS    AGE
    zookeeper.platform.confluent.io/zookeeper   3          3       RUNNING   23h
    
    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                                                AGE
    kafkarestclass.platform.confluent.io/krc-cfk-mtls   24h
    
    Copy
  2. Delete the application custom resources (CRs) using one of the following commands.

    • Using the CR file:

      kubectl delete -f <application CR> --namespace <namespace>
      
      Copy
    • Using the resource name from Step 1:

      kubectl delete <resource name> --namespace <namespace>
      
      Copy

      For example:

      kubectl delete kafkarestclass.platform.confluent.io/krc-cfk-mtls --namespace <namespace>
      
      Copy

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 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 Kafka and ZooKeeper.

    The CFK component resources include the following:

    • Connect
    • ControlCenter
    • KafkaRestProxy
    • KsqlDB
    • SchemaRegistry

    Delete the resources using one of the following commands.

    • Using the CR file:

      kubectl delete -f <component CR> --namespace <namespace>
      
      Copy
    • Using the resource name from Step 1:

      kubectl delete <resource name> --namespace <namespace>
      
      Copy

      For example:

      kubectl delete connect.platform.confluent.io/connect --namespace <namespace>
      
      Copy
  2. Delete Kafka using one of the following commands.

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

    or

    kubectl delete <Kafka resource name> --namespace <namespace>
    
    Copy
  3. Delete ZooKeeper using one of the following commands.

    kubectl delete -f <Zookeeper CR> --namespace <namespace>
    
    Copy

    or

    kubectl delete <Zookeeper resource name> --namespace <namespace>
    
    Copy

Delete the CFK

To delete the CFK:

  1. Check the release name of your CFK.

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

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

    kubectl delete namespace <namespace>
    
    Copy