登录 / 注册 Account

集成

为什么要在 Kubernetes 上运行 Apache Kafka?

Jump to section

随着企业 IT 部门越来越多地采用微服务云原生开发,由事件驱动应用(EDA) 填充的分布式系统应运而生。在这种不断变化的开发大环境中,许多数字领域的领导者都选择了 Apache Kafka,并将其与 Kubernetes 结合在一起。

Apache Kafka 允许用户实时查看和分析业务,从而对不断变化的市场情况做出快速反应。此外,Apache Kafka 还是建立和维护与内部利益相关者及外部合作伙伴、供应商、客户之间实时连接的绝佳选择。

作为 Apache Kafka 中的一项功能,Kafka Streams 可添加到任何应用中,用于对 Kafka 事件进行简单而有效的流处理。这种对大量数据进行连续不断、并发且持续的处理和分析正是 Apache Kafka 与其他消息传递系统真正的区别所在。Apache Kafka 允许用户聚合、转换、丰富和组织相关事件以进行实时在线分析,而不必等待大数据机制来处理各种数字。对于任何需要即时响应实时数据的应用而言,Apache Kafka 的这一特性可谓至关重要。

Apache Kafka 为云原生开发奠定了良好的基础。云原生应用属于事件驱动型,而 Apache Kafka 正是管理事件的行家里手。分布式流、实时处理、高度可扩展性——Apache Kafka 支持所有这些核心事件驱动功能。

无服务器架构(继云原生之后的下一关键要素)也是基于事件的,Apache Kafka 也可以提供支持。开发人员可以依靠 Kubernetes 上的 Apache Kafka 来提供可扩展的无服务器通知、进程间通信以及无服务器功能的可见性。

为什么要在 Kubernetes 上运行 Apache Kafka?

Apache Kafka 经常部署在跨主机集群自动部署扩展和运维容器的 Kubernetes 容器管理系统上。Kubernetes 上的 Apache Kafka 与云原生开发(下一代应用开发技术)往往相辅相成,携手并进。云原生应用属于独立的、松散耦合的分布式服务,可通过云实现高度可扩展性。同样,基于 Kafka 构建的事件驱动应用也是松散耦合的,并可跨分布式混合云环境进行扩展。

对于在 Kubernetes 上运行 Apache Kafka 的运维团队来说,一个重大优势就是基础架构抽象:只需配置一次,即可在任何地方运行。现今的运维团队通常要管理各种内部和云资源,而 Kubernetes 允许他们把这些资产当作计算资源池,并可以为其分配软件资源,包括 Apache Kafka。此外,该 Kubernetes 层还允许通过单个环境来管理其所有的 Apache Kafka 实例。

Kubernetes 与生俱来的可扩展性是对 Apache Kafka 的绝佳补充。Kubernetes 允许应用通过简单的命令来扩展和缩减资源,或者按照使用量进行自动缩放,从而最经济地利用计算、网络和存储资源。此外,Kubernetes 还为 Apache Kafka 提供了相应的可移植性,可以跨内部环境和公共云、私有云或混合云,并且使用不同的操作系统。

Strimzi:在 Kubernetes 上使用 Apache Kafka

手动操作 Apache Kafka 很麻烦,需要对许多组件进行各种配置。在裸机(或虚拟机)上运行 Apache Kafka 也十分复杂。尤其是部署、监控、更新和回滚节点,不仅复杂,而且困难重重。

Strimzi 开源项目解决了这一难题。Strimzi 使用操作器(Operator)来平稳、无缝地部署 Apache Kafka 配置。操作器是 Kubernetes 上用于部署和管理应用的最新工具,由于它们在基础架构级别上进行了抽象,从而使开发人员无需过多了解有关基础架构的信息即可部署应用,所以让开发更加灵活。开发人员不需要了解技术细节(例如有多少台计算机或是什么类型的硬件),因为操作程序可以自动置备基础架构并管理所有细节。

Strimzi 提供了基础架构即代码(IaC)的诸多优势,开发人员可以轻松编写类似代码一样的指令手册来定义基础架构,Strimzi 可以完美地执行这些指令。Strimzi 甚至可以简化高可用性模式下的 Apache Kafka 部署,而这一点也是其他方案难以实现的。

Strimzi 中的操作器也可以帮助解决 Apache Kafka 的许多安全问题,这也是使用 Strimzi 的另一个重要原因。不仅如此,Strimzi 还通过单点登录、加密和身份验证等功能实现了 Kubernetes 上 Apache Kafka 安全防护的自动化,因此开发人员不必花费时间来实施基本的安全防护功能。

寻找适合的 EDA 解决方案

红帽 AMQ Streams(红帽集成的组件之一)是 Apache Kafka 和 Strimzi 项目的红帽企业发行版。AMQ Streams 带给 Apache Kafka 的大部分额外价值都集中在“在 Kubernetes 上使用 Apache Kafka”(或称为红帽 OpenShift,它是 Kubernetes 的红帽发行版)上。

OpenShift 上的红帽 AMQ Streams 将在 Kubernetes 上提供 Apache Kafka,以支持企业级事件驱动架构,从而支持分布式数据流和基于流处理微服务的应用。AMQ Streams 尤其适用于大规模、高吞吐量的方案,因为 Apache Kafka 的内在分区有助于满足可扩展性要求。

携手红帽,深度集成

红帽可为您提供模块化、轻量级且全面的集成解决方案,这些方案采用开源技术、符合开放标准,并可在本地或云端实施。

消息传递

作为红帽® AMQ 的一部分,AMQ Streams 实现了在红帽 OpenShift® 容器平台中提供 Apache Kafka。AMQ Streams 是一种基于在 Kubernetes 上运行的 Apache Kafka 项目的可扩展、分布式的高性能数据流功能。

容器平台

借助容器平台,利用容器来开发、部署、管理和扩展云原生应用。OpenShift 可以自动编排所有这些应用,并与 AMQ、Fuse 和 3scale API 管理等产品协同工作,以构建适用于云端的敏捷整合方案。

与红帽一起探索集成技术