8.6. 部署清理控制
要将 Cruise Control 部署到 AMQ Streams 集群,请使用 Kafka
资源中的 cruise Control
属性定义配置,然后创建或更新资源。
每个 Kafka 集群部署一个 Cruise Control 实例。
先决条件
- OpenShift 集群
- 一个正在运行的 Cluster Operator
流程
编辑
Kafka
资源并添加 cruiseControl
属性。您可以配置的属性显示在此示例配置中:
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: # ... cruiseControl: brokerCapacity: 1 inboundNetwork: 10000KB/s outboundNetwork: 10000KB/s # ... config: 2 default.goals: > com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal # ... cpu.balance.threshold: 1.1 metadata.max.age.ms: 300000 send.buffer.bytes: 131072 # ... resources: 3 requests: cpu: 1 memory: 512Mi limits: cpu: 2 memory: 2Gi logging: 4 type: inline loggers: rootLogger.level: "INFO" template: 5 pod: metadata: labels: label1: value1 securityContext: runAsUser: 1000001 fsGroup: 0 terminationGracePeriodSeconds: 120 readinessProbe: 6 initialDelaySeconds: 15 timeoutSeconds: 5 livenessProbe: 7 initialDelaySeconds: 15 timeoutSeconds: 5 # ...
- 1
- 指定代理资源的容量限制。如需更多信息,请参阅 容量配置。
- 2
- 定义 Cruise 控制配置,包括默认优化目标(
默认为默认值)
,以及对主要优化目标(目标
)或硬目标(硬目标)的自定义。
除了由 AMQ Streams 直接管理的以外,您还可以提供任何 标准 Cruise Control 配置选项。有关配置优化目标的详情请参考 第 8.2 节 “优化目标概述”。 - 3
- 为 Cruise Control 保留的 CPU 和内存资源.如需更多信息,请参阅 第 13.1.5 节 “
资源
”。 - 4
- 定义的日志记录器和日志级别通过 ConfigMap 直接(内线)或间接(外部)添加。自定义 ConfigMap 必须放在 log4j.properties 键下。登陆控制具有一个名为
rootLogger.level
的单个日志记录器。您可以将日志级别设置为 INFO、ERROR、WARN、TRACE、DEBUG、FATAL 或 OFF。如需更多信息,请参阅 日志配置。 - 5
- 6
- 7
创建或更新资源:
oc apply -f kafka.yaml
验证 Cruise Control 是否已成功部署:
oc get deployments -l app.kubernetes.io/name=cruise-control
自动创建的主题
下表显示了部署 Cruise Control 时自动创建的三个主题。这些主题是必需的,清理控制才能正常工作,且不得删除或更改。
自动创建的主题 | 创建者 | 功能 |
---|---|---|
| AMQ Streams Metrics Reporter | 将 Metrics Reporter 中的原始指标存储在每个 Kafka 代理中。 |
| Sything Control | 存储每个分区派生的指标。它们由 Metric Sample Aggregator 创建。 |
| Sything Control | 存储用于创建集群 工作负载模型 的指标示例。 |
为防止删除 Cruise Control 所需的记录,在自动创建的主题中禁用了日志压缩。
接下来要做什么
配置和部署 Cruise Control 后,您可以 生成优化建议。