Jump to section

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

复制 URL

将 Apache Kafka 部署到类似 Kubernetes 的容器编排平台上,以便从任意位置自动化、扩展和部署事件驱动型应用。也就是说,Kubernetes 放大了 Apache Kafka 上应用的固有灵活性。

随着企业 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 来提供可扩展的无服务器通知、进程间通信以及无服务器功能的可见性。

试用用于 Apache Kafka 的红帽 OpenShift Streams

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

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

Kubernetes 与生俱来的可扩展性是对 Apache Kafka 的绝佳补充。Kubernetes 允许应用通过简单的命令来扩展和缩减资源,或者按照使用量进行自动缩放,从而最经济地利用计算、网络和存储资源。此外,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 安全防护的自动化,因此开发人员不必花费时间来实施基本的安全防护功能

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

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

继续阅读

文章

什么是集成?

想要知道什么是集成?了解何为集成、它的具体实现方式以及使用开源技术为什么有助于实现集成。

文章

什么是 Apache Kafka?

Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。

文章

什么是 API?

应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。

详细了解集成

产品

一套全面的集成和消息传递技术,旨在跨混合基础架构连接应用和数据。包括红帽 3scale API 管理、红帽 AMQ、红帽应用运行时、变更数据捕获和服务注册表。

托管平台、应用和简化了混合云体验的数据服务,从而降低了运维成本和提供云原生应用的复杂性。

一整套产品、工具及组件,以用于开发和维护云原生应用。包括红帽 AMQ、红帽数据网格、红帽 JBoss® 企业应用平台、红帽 JBoss Web 服务器、OpenJDK 的红帽版、Quarkus 红帽版、一组云原生运行时、应用迁移工具包、单点登录和启动器服务。

一套全面的集成和运行时技术,旨在帮助您构建、部署和操作应用,同时兼顾安全性和跨混合云的可扩展性。

相关资源

电子书

创建敏捷的基础架构,打造灵活应变的企业

继续探索

分析师资料

事件网格:入门

培训

免费培训课程

红帽敏捷集成技术概述