搜索

13.2.22. rack 架构参考

download PDF

用于: KafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpec

Rack 模式属性的完整列表

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

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

13.2.22.1. 在机架间分散分区副本

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

Kafka 的机架 配置示例

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

注意

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

当在 Kafka 自定义资源中启用机架意识时,AMQ Streams 将自动添加 OpenShift preferredDuringSchedulingIgnoredDuringExecution affinity 规则,以在不同的机架之间分发 Kafka 代理。但是,首选 规则不能保证代理会被分散。根据确切的 OpenShift 和 Kafka 配置,您应该为 ZooKeeper 和 Kafka 添加额外的 关联性 规则或为 ZooKeeper 和 Kafka 配置 topologySpreadConstraints,以确保节点被正确分发到尽量多的机架。如需更多信息,请参阅 第 2.7 节 “配置 pod 调度”

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.