8.6. 部署清理控制

要将 Cruise Control 部署到 AMQ Streams 集群,请使用 Kafka 资源中的 cruise Control 属性定义配置,然后创建或更新资源。

每个 Kafka 集群部署一个 Cruise Control 实例。

先决条件

  • OpenShift 集群
  • 一个正在运行的 Cluster Operator

流程

  1. 编辑 Kafka 资源并添加 cruise Control 属性。

    您可以配置的属性显示在此示例配置中:

    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
  2. 创建或更新资源:

    oc apply -f kafka.yaml
  3. 验证 Cruise Control 是否已成功部署:

    oc get deployments -l app.kubernetes.io/name=cruise-control

自动创建的主题

下表显示了部署 Cruise Control 时自动创建的三个主题。这些主题是必需的,清理控制才能正常工作,且不得删除或更改。

表 8.2. 自动创建的主题

自动创建的主题创建者功能

strimzi.cruisecontrol.metrics

AMQ Streams Metrics Reporter

将 Metrics Reporter 中的原始指标存储在每个 Kafka 代理中。

strimzi.cruisecontrol.partitionmetricsamples

Sything Control

存储每个分区派生的指标。它们由 Metric Sample Aggregator 创建。

strimzi.cruisecontrol.modeltrainingsamples

Sything Control

存储用于创建集群 工作负载模型 的指标示例。

为防止删除 Cruise Control 所需的记录,在自动创建的主题中禁用了日志压缩。

接下来要做什么

配置和部署 Cruise Control 后,您可以 生成优化建议