Upgrade Confluent for Kubernetes and Confluent Platform

Before you start the upgrade process, make sure your Kubernetes cluster is among the Supported Environments for the target version of Confluent for Kubernetes (CFK).

In general, it is best to minimize the number of changes occurring at the same time. For the purposes of upgrading from Confluent Platform 6.0 to 6.1, we recommend that you perform this upgrade separate from making other changes to your clusters, such as scaling up, changing configuration, or rotating credentials.

Disable component reconciliation

Temporarily disable resource reconciliation for each namespace where you have deployed the Confluent Platform component.

If you do not disable the reconcile operations before you run the upgrade, the component will begin rolling restarts and the pods may go into the CrashLoopBackOff status.

You need the component’s custom resource (CR) kind and the cluster name.

  1. Get the component CR kind:

    kubectl api-resources --api-group=platform.confluent.io \
      -namespace <namespace>
    

    For the ConfluentRolebinding CRD kind, get the CR kind:

    kubectl get cfrb -namespace <namespace>
    
  2. Get component cluster name:

    kubectl get <component CR kind> -namespace <namespace>
    
  3. Disable the resource reconciliation for the component:

    kubectl annotate <component CR kind> <cluster name> \
      platform.confluent.io/block-reconcile=true \
      --namespace <namespace>
    

    For example, where the Kafka CR kind is kafka and the cluster name is kafla, the command to disable resource reconciliation would be:

    kubectl annotate kafka kafka \
      platform.confluent.io/block-reconcile=true \
      -namespace <namespace>
    

Upgrade Confluent Platform version 6.0.x to 6.1.x

Upgrade each Confluent Platform component as below.

  1. Temporarily disable resource reconciliation for the component as describe in Disable component reconciliation.

  2. Upgrade the component:

    kubectl apply -f <component CR> --name <namespace>
    
  3. Enable reconciliation:

    kubectl annotate <component CR kind> <cluster name> \
      platform.confluent.io/block-reconcile- \
      --namespace <namespace>