8.5. 精简控制配置


Kafka.spec.cruiseControl 中的 config 属性包含作为键的配置选项,其值为以下 JSON 类型之一:

  • 字符串
  • 数字
  • 布尔值
注意

类似于 JSON 或 YAML 的字符串需要用显式引号括起。

除了由 AMQ Streams 直接管理的选项外,您还可以指定并配置 Cruise Control 文档 的"配置"一节中列出的所有选项。特别是,您无法 修改与 此处 提及的其中一个键相等或开头的键的配置选项。

如果指定了 restricted 选项,则忽略它们,并在 Cluster Operator 日志文件中输出警告信息。所有支持的选项都传递给 Cruise Control。

Cruise Control 配置示例

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      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
    # ...

容量配置

整合控制使用 容量限制 来确定资源分布的优化目标是否受到破坏。这种类型的四个目标:

  • DiskUsageDistributionGoal - 磁盘使用率分布
  • CpuUsageDistributionGoal - CPU 使用率分布
  • NetworkInboundUsageDistributionGoal - 网络入站利用率分布
  • NetworkOutboundUsageDistributionGoal - 网络出站利用率分布

您可以在 Kafka. spec.cruiseControl 中的 brokerCapacity 属性中为 Kafka 代理资源指定容量限值。它们默认是启用的,您可以更改其默认值。可以使用标准 OpenShift 字节单元(K、M、G 和 T)或其双字节(双倍的幂等)等效项(Ki、Mi、Gi 和 Ti)来为以下代理资源设置容量限制:

  • 磁盘 - 每个代理的磁盘存储(默认:100000Mi)
  • cpuUtilization - CPU 使用率作为百分比(默认:100)
  • Inbound Network - 入站网络吞吐量以每秒字节单位为单位(默认值:10000KiB/s)
  • 出站网络 - 出站网络吞吐量以每秒字节单位为单位(默认值:10000KiB/s)

因为 AMQ Streams Kafka 代理是同构的,所以 Cruise Control 会为其监控的每个代理应用相同的容量限制。

使用 Bbyte 单元的 Cruise Control 代理功能配置示例

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      disk: 100Gi
      cpuUtilization: 100
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
    # ...

其他资源

如需更多信息,请参阅 第 B.72 节 “BrokerCapacity schema 参考”

日志记录配置

精简控制具有自己的可配置日志记录器:

  • cruisecontrol.root.logger

整合控制使用 Apache log4j 日志记录器实施。

使用 logging 属性来配置日志记录器和日志记录器级别。

您可以通过直接(内线)指定日志记录器和级别来设置日志级别,或使用自定义(外部)ConfigMap。如果使用 ConfigMap,则将 logging.name 属性设置为包含外部日志配置的 ConfigMap 的名称。在 ConfigMap 中,日志配置使用 log4j.properties 进行 描述。

此处我们会看到 内联 和外部 记录示例。

内联日志记录

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: inline
      loggers:
        cruisecontrol.root.logger: "INFO"
    # ...

外部日志记录

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: external
      name: customConfigMap
    # ...

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.