이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Chapter 3. Technology Previews
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. Cluster rebalancing with Cruise Control 링크 복사링크가 클립보드에 복사되었습니다!
Cruise Control stays in Technology Preview in this release, with some new enhancements.
You can now deploy Cruise Control to your AMQ Streams cluster and use it to rebalance the Kafka cluster using optimization goals - predefined constraints on CPU, disk, and network load. 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. Example YAML configuration files for Cruise Control are provided in examples/cruise-control/.
When Cruise Control is deployed, you can use 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 initial Technology Preview of cluster rebalancing with Cruise Control.
Rebalance performance tuning
Five new performance tuning options allow you to control how cluster rebalances are executed and reduce their performance impact.
For each batch of partition reassignment commands that comprise a cluster rebalance, you can configure the following:
- Maximum concurrent partition movements per broker (the default is 5)
- Maximum concurrent intra-broker partition movements (the default is 2)
- Maximum concurrent leader movements (the default is 1000)
- Bandwidth in bytes-per-second to assign to partition reassignment (the default is no limit)
-
Replica movement strategy (the default is
BaseReplicaMovementStrategy)
Previously, AMQ Streams inherited these options from Cruise Control, so their default values could not be adjusted.
You can set performance tuning options for the Cruise Control server, individual rebalances, or both.
-
For the Cruise Control server, set options in the
Kafkacustom resource, underspec.cruiseControl.config. -
For a cluster rebalance, set options in the
specproperty of theKafkaRebalancecustom resource.
See Rebalance performance tuning overview.
Exclude topics from optimization proposals
You can now exclude one or more topics from an optimization proposal. Those topics are not included in the calculation of partition replica and partition leadership movements for the cluster rebalance.
To exclude topics, specify a regular expression matching the topic names in the KafkaRebalance custom resource, in the spec.excludedTopicsRegex property.
When viewing a generated optimization proposal, the excludedTopics property shows you the topics that were excluded.
See Rebalance performance tuning overview.
CPU capacity goal support
Rebalancing a Kafka cluster based on CPU capacity is now supported through the following configurations:
-
The
CpuCapacityGoaloptimization goal -
The
cpuUtilizationcapacity limit
The CPU capacity goal prevents the CPU utilization of each broker from exceeding a maximum percentage threshold. The default threshold is set as 100% of CPU capacity per broker.
To reduce the percentage threshold, configure the cpuUtilization capacity limit in the Kafka custom resource. Capacity limits apply to all brokers.
CPU capacity is preset as a hard goal in Cruise Control. Therefore, it is inherited from Cruise Control as a hard goal, unless you override the preset hard goals in the hard.goals property in Kafka.spec.cruiseControl.config.
Example configuration for CPU capacity goal in a KafkaRebalance custom resource
apiVersion: kafka.strimzi.io/v1alpha1
kind: KafkaRebalance
metadata:
name: my-rebalance
labels:
strimzi.io/cluster: amq-streams-cluster
spec:
goals:
- CpuCapacityGoal
- DiskCapacityGoal
#...
Example configuration for percentage CPU utilization capacity limit
apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
name: amq-streams-cluster
spec:
# ...
cruiseControl:
# ...
brokerCapacity:
cpuUtilization: 85
disk: 100Gi
# ...