Chapter 3. Technology Previews

Important

Technology Preview features are not supported with Red Hat production service-level agreements (SLAs) and might not be functionally complete; therefore, Red Hat does not recommend implementing any Technology Preview features in production environments. This Technology Preview feature provides early access to upcoming product innovations, enabling you to test functionality and provide feedback during the development process. For more information about support scope, see Technology Preview Features Support Scope.

3.1. Cruise Control for cluster rebalancing

Note

Cruise Control remains in Technology Preview, with some new enhancements.

You can deploy Cruise Control and use it to rebalance your Kafka cluster using optimization goals — defined constraints on CPU, disk, network load, and more. In a balanced Kafka cluster, the workload is more evenly distributed across the broker pods.

Cruise Control is configured and deployed as part of a Kafka resource. You can use the default optimization goals or modify them to suit your requirements. Example YAML configuration files for Cruise Control are provided in examples/cruise-control/.

When Cruise Control is deployed, you can create KafkaRebalance custom resources to:

  • Generate optimization proposals from multiple optimization goals
  • Rebalance a Kafka cluster based on an optimization proposal

Other Cruise Control features are not currently supported, including anomaly detection, notifications, write-your-own goals, and changing the topic replication factor.

See Cruise Control for cluster rebalancing.

3.1.1. Enhancements to the Technology Preview

The following enhancements have been added to the Technology Preview of Cruise Control for cluster rebalancing.

New goal: Minimum topic leaders per broker

You can use a new goal named MinTopicLeadersPerBrokerGoal.

For each topic in a defined group of topics, the goal ensures that each active broker has at least a certain number of leader replicas.

MinTopicLeadersPerBrokerGoal is a default goal and is preset as a hard goal.

See Optimization goals overview

Logging enhancements: Dynamic logging configuration and Log4j 2

Cruise Control now supports dynamic logging configuration. This means that changing the logging level for Cruise Control no longer triggers a rolling update to the Kafka cluster or the Cruise Control pod.

Log4j 2 is now used for Cruise Control logging.

You must update existing configurations for Cruise Control logging from Log4j to Log4j 2 compatible syntax. Logging is configured in the Kafka custom resource.

  • For inline logging, replace the cruisecontrol.root.logger property with the rootLogger.level property.
  • For external logging, replace the existing configuration with a new configuration file named log4j2.properties. The configuration must use Log4j 2 compatible syntax.

See External logging and Cruise Control configuration