搜索

第 25 章 rack 模式参考

download PDF

used in: KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec

Rack 模式属性的完整列表

rack 选项配置机架感知。机架 可以代表一个可用性区域、数据中心或数据中心中的实际机架。机架 通过 topologyKey 配置。topologyKey 标识 OpenShift 节点上的标签,其值中包含拓扑名称。此类标签的示例是 topology.kubernetes.io/zone (或旧的 OpenShift 版本上的 failure-domain.beta.kubernetes.io/zone ),其中包含运行 OpenShift 节点的可用区的名称。您可以将 Kafka 集群配置为了解其运行的 机架,并启用额外的功能,如将分区副本分散到不同的机架中或使用最接近的副本的消息。

如需有关 OpenShift 节点标签的更多信息,请参阅 Well -Known Labels、Annotations 和 Taints。有关代表节点要部署到的区域或机架的节点标签,请参阅您的 OpenShift 管理员。

25.1. 在机架之间分散分区副本

当配置了机架感知时,Apache Kafka 的 Streams 将为每个 Kafka 代理设置 broker.rack 配置。broker.rack 配置为每个代理分配一个机架 ID。配置 broker.rack 时,Kafka 代理将尽可能将分区副本分散到不同的机架中。当副本分散到多个机架中时,多个副本的概率会同时失败,超过同一机架中。分散副本提高了弹性,对于可用性和可靠性至关重要。要在 Kafka 中启用机架感知,请在 Kafka 自定义资源的 .spec.kafka 部分添加 rack 选项,如下例所示。

Kafka 的 rack 配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...

注意

当 pod 被删除或重启时,代理运行的 机架 在某些情况下可能会改变。因此,在不同机架中运行的副本可能会共享相同的机架。使用 Cruise Control 和带有 RackAwareGoalKafkaRebalance 资源,以确保副本在不同机架之间保持分布。

当在 Kafka 自定义资源中启用机架感知时,Apache Kafka 的 Streams 将自动添加 OpenShift preferredDuringSchedulingIgnoredDuringExecution 关联性规则,以便在不同的机架之间分发 Kafka 代理。但是,偏好规则 不保证代理将被分散。根据确切的 OpenShift 和 Kafka 配置,您应该添加额外的 关联性规则,或为 ZooKeeper 和 Kafka 配置 topologySpreadConstraints,以确保节点可以正确分布在多个机架中。如需更多信息,请参阅配置 pod 调度

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.