8.7. 生成优化分析
当您创建或更新 KafkaRebalance 资源时
,Cruise Control 会根据配置的 优化目标为 Kafka 集群生成 优化建议。
分析优化建议中的信息,并决定是否批准它。
先决条件
- 您已将 Cruise Control 部署到 AMQ Streams 集群中。
- 您已配置了 优化目标,以及可选 的代理资源容量限制。
步骤
创建
KafkaRebalance
资源:要使用
Kafka
资源中定义的 默认优化目标,请将spec
属性留空:apiVersion: kafka.strimzi.io/v1alpha1 kind: KafkaRebalance metadata: name: my-rebalance labels: strimzi.io/cluster: my-cluster spec: {}
要配置 用户提供的优化目标 而不是使用默认目标,请添加
target
属性并输入一个或多个目标。在以下示例中,机架意识和副本容量被配置为用户提供的优化目标:
apiVersion: kafka.strimzi.io/v1alpha1 kind: KafkaRebalance metadata: name: my-rebalance labels: strimzi.io/cluster: my-cluster spec: goals: - RackAwareGoal - ReplicaCapacityGoal
要忽略配置的硬目标,请添加
skipHardGoalCheck: true
属性:apiVersion: kafka.strimzi.io/v1alpha1 kind: KafkaRebalance metadata: name: my-rebalance labels: strimzi.io/cluster: my-cluster spec: goals: - RackAwareGoal - ReplicaCapacityGoal skipHardGoalCheck: true
创建或更新资源:
oc apply -f your-file
Cluster Operator 从 Cruise Control 请求优化建议。这可能需要一些时间,具体取决于 Kafka 集群的大小。
检查
KafkaRebalance
资源的状态:oc describe kafkarebalance rebalance-cr-name
cruise Control 返回两个状态之一:
-
PendingProposal
:重新平衡操作器正在轮询 Cruise Control API,以检查优化建议是否已就绪。 -
ProposalReady
:优化建议可供审核,并在需要时予以批准。优化建议包含在KafkaRebalance
资源的Status.Optimization Result
属性中。
-
查看优化建议。
oc describe kafkarebalance rebalance-cr-name
下面是一个示例:
Status: Conditions: Last Transition Time: 2020-05-19T13:50:12.533Z Status: ProposalReady Type: State Observed Generation: 1 Optimization Result: Data To Move MB: 0 Excluded Brokers For Leadership: Excluded Brokers For Replica Move: Excluded Topics: Intra Broker Data To Move MB: 0 Monitored Partitions Percentage: 100 Num Intra Broker Replica Movements: 0 Num Leader Movements: 0 Num Replica Movements: 26 On Demand Balancedness Score After: 81.8666802863978 On Demand Balancedness Score Before: 78.01176356230222 Recent Windows: 1 Session Id: 05539377-ca7b-45ef-b359-e13564f1458c
Optimization Result
部分中的属性描述待处理的集群重新平衡操作。有关每个属性的描述,请参阅 优化方法的内容。
接下来要做什么
其他资源