11.5. 使用 Kafka 配置和部署 Cruise 控制
配置 Kafka 资源,以使用 Kafka 集群部署 Cruise Control。您可以使用 Kafka 资源的 cruiseControl 属性来配置部署。为每个 Kafka 集群部署一个 Cruise Control 实例。
在 Cruise Control config 中使用 goals 配置来指定优化目标,以生成优化建议。您可以使用 brokerCapacity 更改与资源分发相关的目标的默认容量限制。如果代理在带有异构网络资源的节点上运行,您可以使用 覆盖 为每个代理设置网络容量限制。
如果将空对象({})用于 cruiseControl 配置,则所有属性都使用它们的默认值。
有关 Cruise Control 配置选项的更多信息,请参阅 自定义资源 API 参考。
先决条件
- 一个 OpenShift 集群
- 正在运行的 Cluster Operator
流程
编辑
Kafka资源的cruiseControl属性。您可以配置的属性显示在本示例配置中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 代理资源的容量限制。
- 2
- 当使用异构网络资源的节点运行时,覆盖为特定代理设置网络容量限制。
- 3
- Cruise Control 配置。可以提供标准的 Cruise Control 配置,仅限于不直接由 AMQ Streams 管理的这些属性。
- 4
- 优化目标配置,其中包括用于默认优化目标(
default.goals)、主要优化目标(目标)和硬目标(硬.goals)的配置。 - 5
- 为对 Cruise Control API 的只读访问启用并配置 CORS。
- 6
- 用于保留支持的资源、当前
cpu和内存以及限制的请求,以指定可消耗的最大资源。 - 7
- 通过 ConfigMap 直接添加 Cruise Control logger 和 loglevel (
内联)或间接(外部)。自定义 ConfigMap 必须放在log4j.properties键下。Cruise Control 有一个名为rootLogger.level的单个日志记录器。您可以将日志级别设置为 INFO, ERROR, WARN, TRACE, DEBUG, FATAL 或 OFF。 - 8
- 模板自定义。这里的 pod 使用额外的安全属性调度。
- 9
- 健康检查以了解何时重启容器(持续)以及容器可以接受流量(就绪状态)。
- 10
- 启用 Prometheus 指标。在本例中,为 Prometheus JMX Exporter (默认指标导出器)配置了指标。
创建或更新资源:
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查部署的状态:
oc get deployments -n <my_cluster_operator_namespace>
oc get deployments -n <my_cluster_operator_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示部署名称和就绪度
NAME READY UP-TO-DATE AVAILABLE my-cluster-cruise-control 1/1 1 1
NAME READY UP-TO-DATE AVAILABLE my-cluster-cruise-control 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-cluster是 Kafka 集群的名称。READY显示就绪/预期的副本数。当AVAILABLE输出显示为1时,部署成功。
自动创建的主题
下表显示了部署 Cruise Control 时自动创建的三个主题。Cruise Control 正常工作且不得删除或更改这些主题。您可以使用指定的配置选项更改主题的名称。
| 自动创建的主题配置 | 默认主题名称 | 创建者 | 功能 |
|---|---|---|---|
|
|
| AMQ Streams Metrics Reporter | 将 Metrics Reporter 中的原始指标存储在每个 Kafka 代理中。 |
|
|
| Sything Control | 存储每个分区派生的指标。它们由指标示例聚合器创建。 |
|
|
| Sything Control | 存储用于创建 Cluster Workload Model 的指标示例。 |
要防止删除 Cruise Control 所需的记录,在自动创建的主题中禁用日志压缩。
如果在启用了 Cruise Control 的 Kafka 集群中更改自动创建主题的名称,旧的主题不会被删除,应手动删除旧的主题。
接下来要做什么
配置和部署 Cruise Control 后,您可以生成优化提议。