Kafka Upgrade from 5.4.1 to 6.1.2 with Confluent Playbooks

Viewed 331

Currently I'm trying to upgrade our cluster with Confluent Playbooks. I setup a local environment with Vagrant where I'm simulate our production environment.

I must be honest I'm experimenting with a quite unusually thing, because our current setup was not installed with the Confluent Playbooks. I know the documentation says I should use the Upgrade Playbooks if I used the Install Playbooks with the same hosts.yml.

Anyway I'm trying to find out if it would be possible to use the official Confluent Upgrade Playbooks. It would eventually save lot's of time for us, if I don't have to create my own Upgrade Playbooks.

The Zookeeper Upgrade was successful and after upgrading Zookeeper now I'm trying to upgrade the Brokers.

During the upgrade the Broker goes to "failed" status. If I'm trying to restart the Broker service I get the following error:

[2021-07-12 08:59:52,144] ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at io.confluent.rbacapi.resources.base.AuditLogConfigResource.<init>(AuditLogConfigResource.java:78)
    at io.confluent.rbacapi.resources.v1.V1AuditLogConfigResource.<init>(V1AuditLogConfigResource.java:47)
    at io.confluent.rbacapi.app.RbacApiApplication.setupResources(RbacApiApplication.java:339)
    at io.confluent.rest.Application.configureHandler(Application.java:258)
    at io.confluent.rest.ApplicationServer.doStart(ApplicationServer.java:227)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at io.confluent.http.server.KafkaHttpServerImpl.doStart(KafkaHttpServerImpl.java:105)
    at java.lang.Thread.run(Thread.java:748)
[2021-07-12 08:59:52,145] INFO [KafkaServer id=1] shutting down (kafka.server.KafkaServer)
[2021-07-12 08:59:52,141] WARN KafkaHttpServer transitioned from STARTING to FAILED.: null. (io.confluent.http.server.KafkaHttpServerImpl)
java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at io.confluent.rbacapi.resources.base.AuditLogConfigResource.<init>(AuditLogConfigResource.java:78)
    at io.confluent.rbacapi.resources.v1.V1AuditLogConfigResource.<init>(V1AuditLogConfigResource.java:47)
    at io.confluent.rbacapi.app.RbacApiApplication.setupResources(RbacApiApplication.java:339)
    at io.confluent.rest.Application.configureHandler(Application.java:258)
    at io.confluent.rest.ApplicationServer.doStart(ApplicationServer.java:227)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
    at io.confluent.http.server.KafkaHttpServerImpl.doStart(KafkaHttpServerImpl.java:105)
    at java.lang.Thread.run(Thread.java:748)

Since I see a reference to rbac api in the error logs above, I installed confluent-security package, but it didn't helped.

My hosts.yml in my cp-ansible Ansible root directory file looks like this:

---
all:
  vars:
    ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
    ansible_connection: ssh
    ansible_user: vagrant
    ansible_become: true
    ansible_port: 22
    ansible_ssh_private_key_file: ~/.ssh/id_rsa

    sasl_protocol: scram
    ssl_enabled: true

    ssl_provided_keystore_and_truststore: true
    ssl_keystore_filepath: "/vagrant/ssl/kafka.server.keystore.jks"
    ssl_keystore_key_password: pass_key
    ssl_keystore_store_password: pass_key
    ssl_truststore_filepath: "/vagrant/ssl/kafka.server.truststore.jks"
    ssl_truststore_password: pass_trust

    rbac_enabled: false

    mds_super_user: mds
    mds_super_user_password: password
    kafka_broker_ldap_user: mds
    kafka_broker_ldap_password: password
    schema_registry_ldap_user: mds
    schema_registry_ldap_password: password
    ksql_ldap_user: mds
    ksql_ldap_password: password
    control_center_ldap_user: mds
    control_center_ldap_password: password

    create_mds_certs: false
    token_services_public_pem_file: /vagrant/ssl/mds.publickey.pem
    token_services_private_pem_file: /vagrant/ssl/mds.tokenkeypair.pem

    kafka_broker_cluster_name: broker-cluster
    schema_registry_cluster_name: schema-registry-cluster

    kafka_broker_principal: User:mds

    confluent_server_enabled: true
    kafka_broker_schema_validation_enabled: true

    kafka_broker_custom_listeners:
      broker:
        name: SSL
        port: 9093
        ssl_enabled: true
        ssl_mutual_auth_enabled: true
        sasl_protocol: none

zookeeper:
  hosts:
    bro1:
    bro2:
    bro3:

kafka_broker:
  vars:
    kafka_broker_custom_properties:
      ldap.java.naming.factory.initial: com.sun.jndi.ldap.LdapCtxFactory
      ldap.com.sun.jndi.ldap.read.timeout: 3000
      ldap.java.naming.provider.url: ldap://192.168.0.198:10389
      ldap.user.search.base: ou=TECH,ou=SPEZ-USER,o=VISA
      ldap.group.search.base: ou=TECH,ou=SPEZ-USER,o=VISA
      ldap.user.name.attribute: cn
      ldap.user.memberof.attribute.pattern: cn=(.*),ou=TECH,ou=SPEZ-USER,o=TEST
      ldap.group.name.attribute: cn
      ldap.group.member.attribute.pattern: cn=(.*),ou=TECH,ou=SPEZ-USER,o=TEST
      ldap.user.object.class: person

  hosts:
    bro1:
    bro2:
    bro3:

schema_registry:
  hosts:
    reg1:

control_center:
  hosts:
    cc1:

Do you have any hints where I should look for an issue?

0 Answers
Related