第 1 章 部署概述


AMQ Streams 简化了在 OpenShift 集群中运行 Apache Kafka 的过程。

本指南提供有关部署和管理 AMQ Streams 的说明。部署选项和步骤使用 AMQ Streams 中包含的示例安装文件进行。虽然指南突出显示了重要的配置注意事项,但它并不涵盖所有可用选项。要深入了解 Kafka 组件配置选项,请参阅 AMQ Streams 自定义资源 API 参考

除了部署说明外,指南还提供了部署前和部署后指导。它涵盖了设置并保护对 Kafka 集群的客户端访问。另外,它探索额外的部署选项,如指标集成、分布式追踪和集群管理工具,如 Cruise Control 和 AMQ Streams Drain Cleaner。您还将发现有关管理 AMQ Streams 和微调 Kafka 配置的建议,以获得最佳性能。

AMQ Streams 和 Kafka 都提供了升级说明,以帮助保持部署最新。

AMQ Streams 设计为与所有类型的 OpenShift 集群兼容,无论其发行版无关。无论您的部署涉及公有云或私有云,还是要设置本地开发环境,本指南中的说明适用于所有情况。

1.1. AMQ Streams 自定义资源

使用 AMQ Streams 将 Kafka 组件部署到 OpenShift 集群可以通过自定义资源的应用程序进行配置。这些自定义资源作为自定义资源定义(CRD)添加的 API 实例创建,以扩展 OpenShift 资源。

CRD 充当描述 OpenShift 集群中的自定义资源的配置说明,由 AMQ Streams 提供,用于部署中使用的每个 Kafka 组件,以及用户和主题。CRD 和自定义资源被定义为 YAML 文件。AMQ Streams 发行版提供了 YAML 文件示例。

CRD 还允许 AMQ Streams 资源从原生 OpenShift 功能中获益,如 CLI 访问和配置验证。

1.1.1. AMQ Streams 自定义资源示例

CRD 需要在集群中一次性安装,以定义用于实例化和管理 AMQ Streams 特定资源的 schema。

在安装 CRD 中添加新的自定义资源类型后,您可以根据规格创建资源实例。

根据集群设置,安装通常需要集群管理员特权。

注意

对管理自定义资源的访问仅限于 AMQ Streams 管理员。如需更多信息,请参阅 第 4.6 节 “设计 AMQ Streams 管理员”

在 OpenShift 集群中,CRD 定义了一个新的资源 kind,如 kind:Kafka

Kubernetes API 服务器允许根据类型创建自定义资源,并通过 CRD 了解在添加到 OpenShift 时如何验证和存储自定义资源。

每个 AMQ Streams 特定的自定义资源符合为资源的类型的 CRD 定义的架构。AMQ Streams 组件的自定义资源具有通用配置属性,它们在 spec 下定义。

要了解 CRD 和自定义资源之间的关系,请参阅 Kafka 主题的 CRD 示例。

Kafka 主题 CRD

apiVersion: kafka.strimzi.io/v1beta2
kind: CustomResourceDefinition
metadata: 
1

  name: kafkatopics.kafka.strimzi.io
  labels:
    app: strimzi
spec: 
2

  group: kafka.strimzi.io
  versions:
    v1beta2
  scope: Namespaced
  names:
    # ...
    singular: kafkatopic
    plural: kafkatopics
    shortNames:
    - kt 
3

  additionalPrinterColumns: 
4

      # ...
  subresources:
    status: {} 
5

  validation: 
6

    openAPIV3Schema:
      properties:
        spec:
          type: object
          properties:
            partitions:
              type: integer
              minimum: 1
            replicas:
              type: integer
              minimum: 1
              maximum: 32767
      # ...
Copy to Clipboard Toggle word wrap

1
主题 CRD 的元数据、名称和标签来标识 CRD。
2
此 CRD 的规格,包括组(域)名称、复数名称和受支持的模式版本,它们用于 URL 用于访问主题的 API。其他名称用于识别 CLI 中的实例资源。例如,oc get kafkatopic my-topicoc get kafkatopics
3
CLI 命令可以使用短名称。例如,oc get ktoc get kafkatopic 的缩写形式。
4
对自定义资源使用 get 命令时显示的信息。
5
CRD 的当前状态,如资源的 schema 引用 中所述。
6
openAPIV3Schema 验证提供了创建主题自定义资源的验证。例如,主题至少需要一个分区和一个副本。
注意

您可以识别 AMQ Streams 安装文件提供的 CRD YAML 文件,因为文件名包含一个索引号,后跟 'Crd'。

以下是 KafkaTopic 自定义资源的对应示例。

Kafka 主题自定义资源

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic 
1

metadata:
  name: my-topic
  labels:
    strimzi.io/cluster: my-cluster 
2

spec: 
3

  partitions: 1
  replicas: 1
  config:
    retention.ms: 7200000
    segment.bytes: 1073741824
status:
  conditions: 
4

    lastTransitionTime: "2019-08-20T11:37:00.706Z"
    status: "True"
    type: Ready
  observedGeneration: 1
  / ...
Copy to Clipboard Toggle word wrap

1
kindapiVersion 标识自定义资源为实例的 CRD。
2
标签,仅适用于 KafkaTopicKafkaUser 资源,用于定义主题或用户所属的 Kafka 集群的名称(与 Kafka 资源的名称相同)。
3
spec 显示主题的分区和副本数,以及主题本身的配置参数。在本例中,消息保留周期保留在主题中,并且指定了日志的分段文件大小。
4
KafkaTopic 资源的状态条件。在 lastTransitionTime类型 条件更改为 Ready

自定义资源可以通过平台 CLI 应用到集群。创建自定义资源时,它使用与 Kubernetes API 内置资源相同的验证。

创建 KafkaTopic 自定义资源后,主题 Operator 会收到通知,并在 AMQ Streams 中创建对应的 Kafka 主题。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat