strimzi operator 部署kafka集群(可外部访问)

news2024/12/26 22:24:09

Strimzi介绍

官方文档:https://strimzi.io/docs/operators/0.42.0/overview#kafka-components_str
Strimzi介绍 Strimzi 是一个用于 Apache Kafka 在 Kubernetes 上部署和管理的开源项目。它提供了一组 Kubernetes 自定义资源定义(Custom Resource Definitions,CRDs)、控制器和操作符,使得在 Kubernetes 环境中轻松地部署、管理和操作 Kafka 集群成为可能。Strimzi 项目旨在简化 Kafka 在 Kubernetes 上的部署和运维,同时利用 Kubernetes 的优势,如弹性、可扩展性和自动化。

以下是 Strimzi 的一些关键特性和优势:
Kubernetes原生支持: Strimzi 利用 Kubernetes 的原生资源和概念,如Pods、Services、PersistentVolumeClaims(PVCs)等,使得 Kafka 集群的部署和管理与 Kubernetes 中其他应用程序类似。
自定义资源定义(CRDs): Strimzi 提供了一组自定义资源定义(CRDs),用于描述 Kafka 集群、主题、用户等 Kafka 相关的资源,使得用户可以通过 Kubernetes API 对其进行管理。
多种部署选项: Strimzi 支持多种部署模式,包括单节点、多节点、高可用、多集群等,可以根据需求选择合适的部署模式。
集成安全性: Strimzi 支持 Kafka 的安全功能,包括TLS/SSL加密、身份认证、授权等,以确保 Kafka 集群的安全性。
自动化运维: Strimzi 提供了一组控制器和操作符,可以自动化 Kafka 集群的运维任务,如扩展、备份、升级等,减少了运维人员的工作量。

Kafka 组件架构

Apache Kafka 组件可通过 Strimzi 发行版部署到 Kubernetes。Kafka 组件通常以集群形式运行,以确保可用性。
包含 Kafka 组件的典型部署可能包括:

  • Kafka代理节点集群
  • 复制的 ZooKeeper 实例的ZooKeeper集群
  • Kafka Connect集群用于外部数据连接
  • Kafka MirrorMaker集群用于在辅助集群中镜像 Kafka 集群
  • Kafka Exporter提取额外的 Kafka 指标数据用于监控
  • Kafka Bridge向 Kafka 集群发出基于 HTTP 的请求
  • Cruise Control用于在代理节点之间重新平衡主题分区

虽然这些组件并非全部都是必需的,但您至少需要 Kafka 和 ZooKeeper。有些组件可以在没有 Kafka 的情况下部署,例如 MirrorMaker 或 Kafka Connect。

  • Kafka 集群由负责消息传递的代理组成。
  • ZooKeeper 用于集群管理。在 KRaft(Kafka Raft 元数据)模式下部署 Kafka 时,通过在 Kafka 节点内集成代理和控制器角色,集群管理得到简化,无需 ZooKeeper。Kafka 节点承担代理、控制器或两者的角色。在 Strimzi 中使用节点池配置角色。

其他每个 Kafka 组件都与 Kafka 集群交互以执行特定的角色。

Kafka 组件交互

请添加链接描述

  • Apache ZooKeeper
    Apache ZooKeeper 提供集群协调服务,存储和跟踪代理和消费者的状态。ZooKeeper 还用于控制器选举。如果使用 ZooKeeper,则在运行 Kafka 之前必须准备好 ZooKeeper 集群。在 KRaft 模式下,ZooKeeper 不是必需的,因为协调由 Kafka 集群中作为控制器运行的 Kafka 节点管理。

  • Kafka Connect
    Kafka Connect 是一个集成工具包,用于使用连接器插件在 Kafka 代理和其他系统之间传输数据。Kafka Connect 提供了一个框架,用于将 Kafka 与外部数据源或目标(例如数据库)集成,以便使用连接器导入或导出数据。连接器是提供所需连接配置的插件。

  • 源连接器将外部数据推送到 Kafka。

  • 接收器连接器从 Kafka 中提取数据
    外部数据被翻译并转换成适当的格式。
    您可以通过配置来部署 Kafka Connect build,该配置会自动构建包含数据连接所需连接器插件的容器映像。

  • Kafka MirrorMaker
    Kafka MirrorMaker 在两个 Kafka 集群之间(在数据中心内或跨数据中心)复制数据。
    MirrorMaker 从源 Kafka 集群获取消息并将其写入目标 Kafka 集群。

  • Kafka桥
    Kafka Bridge 提供了用于将基于 HTTP 的客户端与 Kafka 集群集成的 API。

  • Kafka Exporter
    Kafka Exporter 提取数据作为 Prometheus 指标进行分析,主要是与偏移量、消费者组、消费者滞后和主题相关的数据。消费者滞后是指写入分区的最后一条消息与消费者当前从该分区获取消息之间的延迟

Strimzi operators

官方文档:https://strimzi.io/docs/operators/latest/deploying#assembly-operators-str
Strimzi operators 专门设计了专业的操作知识,以有效管理 Kubernetes 上的 Kafka。每个操作员都执行不同的功能。

Cluster Operator

Cluster Operator 负责在 Kubernetes 上部署和管理 Apache Kafka 集群。它可自动设置 Kafka 代理以及其他 Kafka 组件和资源。

Topic Operator

Topic Operator 管理 Kafka 集群内主题的创建、配置和删除。

User Operator

User Operator 管理需要访问 Kafka 代理的 Kafka 用户。
部署 Strimzi 时,首先要部署 Cluster Operator。然后,Cluster Operator 即可处理 Kafka 的部署。您还可以使用 Cluster Operator(推荐)或作为独立操作员部署 Topic Operator 和 User Operator。您可以将独立操作员与不受 Cluster Operator 管理的 Kafka 集群一起使用。
Topic Operator 和 User Operator 是 Entity Operator 的一部分。Cluster Operator 可以根据 Entity Operator 的配置部署其中一个或者两个 Operator。


部署 Cluster Operator

认识Cluster Operator

  • Strimzi的Cluster Operator是一个自定义的Kubernetes操作符,用于管理和运行Kafka集群。
  • 它是Strimzi的核心组件之一,负责监视Kafka集群的运行状态、处理集群级别的配置变更、创建、删除和更新Kafka集群资源等。
  • Cluster Operator可以自动化部署、升级和维护Kafka集群,使得Kafka集群可以自动化、高效地运行在Kubernetes中。
  • 主要用途是将Kafka和Kubernetes整合在一起,提供了一种简单、可扩展且可靠的方式来管理Kafka集群。

Kafka集群、Topic Operator、User Operator

为了能够使用 Cluster Operator 管理 Kafka 集群,您必须将其部署为 Kafka 资源。 Strimzi 提供了示例部署文件来执行此操作。您可以使用这些文件同时部署 Topic Operator 和 User Operator。

部署 Cluster Operator 后,使用 Kafka 资源部署以下组件:

  • Kafka集群
  • Topic Operator
  • User Operator

在安装 Kafka 时,Strimzi 还安装了 ZooKeeper 集群,并添加了连接 Kafka 和 ZooKeeper 所需的配置。
如果您尚未将 Kafka 集群部署为 Kafka 资源,则无法使用 Cluster Operator 对其进行管理。例如,这适用于在 Kubernetes 外部运行的 Kafka 集群。但是,您可以将 Topic Operator 和 User Operator 与不受 Strimzi 管理的 Kafka 集群一起使用,方法是将它们部署为独立组件。您还可以在非 Strimzi 管理的 Kafka 集群中部署和使用其他 Kafka 组件。

部署 Cluster Operator 以监视所有命名空间

官方文档: https://strimzi.io/quickstarts/

此过程演示如何部署 Cluster Operator 以监视 Kubernetes 集群中所有命名空间中的 Strimzi 资源。
在此模式下运行时,Cluster Operator 会自动管理创建的任何新命名空间中的集群。

创建一个名为 kafka 的命名空间
kubectl create namespace kafka
获取项目代码
# 使用默认的 main 分支即可
git clone https://github.com/strimzi/strimzi-kafka-operator.git
cd strimzi-kafka-operator
配置RBAC

先决条件

  • 您需要一个有权创建和管理 CustomResourceDefinition 和 RBAC(ClusterRole 和 RoleBinding)资源的帐户。

修改RoleBinding文件

sed -i 's/namespace: .*/namespace: kafka/' install/cluster-operator/*RoleBinding*.yaml

编辑 install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml 文件

<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1973464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

充电宝有必要买贵的吗?充电宝可以带上高铁吗?充电宝选购方法

市面上的充电宝可以说是非常的多&#xff0c;但是能选到一款适合自己的充电宝基本是不容易的&#xff0c;然而&#xff0c;当我们准备选购充电宝时&#xff0c;常常会面临诸多疑问。其中&#xff0c;“充电宝有必要买贵的吗”就是一个备受关注的问题。价格似乎成为了我们在众多…

[Git][认识Git]详细讲解

目录 1.什么是仓库&#xff1f;2.认识工作区、暂存区、版本库3.认识 .git1.index2.HEAD && master3.objects4.总结 1.什么是仓库&#xff1f; 仓库&#xff1a;进⾏版本控制的⼀个⽂件⽬录 2.认识工作区、暂存区、版本库 工作区&#xff1a;在电脑上写代码或⽂件的⽬录…

【C++】C++应用案例-通讯录管理系统

目录 一、整体介绍 1.1、需求和目标 1.2、整体功能描述 二、页面及功能描述 2.1 主菜单 2.2 添加联系人菜单 2.3 显示联系人菜单 2.4 修改联系人菜单 2.5 退出功能 三、流程设计 3.1 主流程 3.2 添加操作流程 3.3 显示联系人操作流程 3.4 修改联系人操作流程 四…

V.PS荷兰阿姆斯特丹VPS详细测评

V.PS怎么样&#xff1f; V.PS的荷兰VPS位于荷兰阿姆斯特丹数据中心&#xff0c;实际的网络从测评的数据来看&#xff1a;电信走的CN2 GIA/AS4809网络、联通走的是CUII/AS9929网络、移动走的是CUII/AS9929网络&#xff0c;也就是说三网都是走的运营商的轻负载线路。 默认的CPU型…

c/c++自增运算符

自增运算符在前&#xff1a;先自增再取值 自增运算符在后&#xff1a;先取值再自增 如图&#xff1a; lptmp等于tmp&#xff0c;但是t等于128&#xff0c;也就说&#xff0c;当位于后面时&#xff0c;先取值&#xff0c;再自增。

数论第四节:二元一次不定方程、勾股数

不定方程定义 解不确定的方程称为不定方程。一般化的定义为&#xff1a;不定方程是指未知数的个数多余方程的个数&#xff0c;或未知数受到某种限制&#xff08;如整数、正整数等&#xff09;的方程和方程组。 二元一次不定方程定义 形如axbyc的形式的方程。其中a,b不等于0&…

python print 函数参数:sep 自定义分隔符,end 自定义结尾符

1. 简述 print 函数可以将内容打印到标准输出&#xff0c;如果不指定 end 参数&#xff0c;默认在输出的内容之后加一个 “回车符\n”。 以下是 print 函数常用的参数用法&#xff1a; print(object, …, sepstr, endstr) object, …&#xff1a;要打印的内容&#xff0c;可以…

如何基于欧拉系统完成第三方软件仓库的安装

首先&#xff0c;我们需要写一个镜像脚本 rootlocalhost yum.repos.d]# vim docker-ce.repo内容如下 [docker-ce] namedocker baseurlhttps://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/rhel/9/x86_64/stable/ //我们使用的是清华的镜像源 gpgcheck0 tips:这里告诉大家一…

来点八股文(五) 分布式和一致性

Raft raft 会进入脑裂状态吗&#xff1f;描述下场景&#xff0c;怎么解决&#xff1f; 不会。raft通过选举安全性解决了这个问题&#xff1a; 一个任期内&#xff0c;follower 只会投票一次票&#xff0c;且先来先得&#xff1b;Candidate 存储的日志至少要和 follower 一样新…

Kafka基本讲解

Kafka基本讲解 一&#xff1a;Kafka介绍 Kafka是分布式消息队列&#xff0c;主要设计用于高吞吐量的数据处理和消息传输&#xff0c;适用于日志处理、实时数据管道等场景。Kafka作为实时数仓架构的核心组件&#xff0c;用于收集、缓存和分发实时数据流&#xff0c;支持复杂的…

【单例设计模式】揭秘单例模式:从原理到实战的全方位解析(开发者必读)

文章目录 深入理解单例设计模式&#xff1a;原理、实现与最佳实践引言第一部分&#xff1a;设计模式简介第二部分&#xff1a;单例模式定义第三部分&#xff1a;单例模式的优点和缺点第四部分&#xff1a;单例模式的实现方式懒汉式非线程安全的实现线程安全的实现&#xff08;双…

vmware ubuntu虚拟机网络联网配置

介绍vmware虚拟机配置基础网络环境&#xff0c;同时连接外网&#xff08;通过桥接模式&#xff09;&#xff0c;以及ubuntu下输入法等基础工具安装。 本文基于ubuntu22.04&#xff0c;前提虚拟机已经完成安装。本文更多是针对vmware虚拟机的设置&#xff0c;之前有一篇针对ubun…

第三关:Git 基础知识

一、Git是什么 Git是一种开源的分布式版本控制系统&#xff0c;广泛应用于软件开发领域&#xff0c;尤其是在协同工作环境中。它为程序员提供了一套必备的工具&#xff0c;使得团队成员能够有效地管理和跟踪代码的历史变更。下面是 Git 的主要功能和作用的规范描述&#xff1a…

Java面试题——第二篇(设计模式)

1. 工厂方法模式 1.1 普通工厂模式 建立一个工厂类&#xff0c;对实现了同一接口的一些类进行实例的创建。 1.2 抽象工厂模式 抽象多个工厂类&#xff0c;提高工厂的可扩展性 定义抽象工厂接口 public interface DeviceFactory { Phone createPhone(); Computer creat…

【工具插件类教学】vHierarchy 2工具编辑器扩展使用

目录 一、下载导入 二、使用介绍 1.便捷小工具 a.图标和颜色Icons and colors b.对象组件缩略图Component minimap c.层级线展示Hierarchy lines d.极简模式Minimal mode e.斑马条纹图案Zebra striping f.激活切换Activation toggle 2、快捷键 一、下载导入 资源官方…

Redis系列之Redis Sentinel

概述 Redis主从集群&#xff0c;一主多从模式&#xff0c;包括一个Master节点和多个Slave节点。Master负责数据的读写&#xff0c;Slave节点负责数据的查询。Master上收到的数据变更&#xff0c;会同步到Slave节点上实现数据的同步。通过这种架构实现可以Redis的读写分离&…

U盘文件或目录损坏无法读取?专业恢复策略全解析

U盘困境&#xff1a;文件目录的隐形危机 在日常的数字生活中&#xff0c;U盘作为便捷的数据存储与传输工具&#xff0c;扮演着至关重要的角色。然而&#xff0c;当U盘中的文件或目录突然遭遇损坏&#xff0c;导致无法被正常读取时&#xff0c;这无疑给用户带来了极大的困扰。这…

达梦数据库的系统视图v$cachers

达梦数据库的系统视图v$cachers 达梦数据库的系统视图V$CACHERS的作用是显示缓存中的项信息&#xff0c;在 ini 参数 USE_PLN_POOL !0 时才统计。这个视图帮助数据库管理员监控和分析缓存的使用情况&#xff0c;优化数据库性能。通过查询V$CACHERS视图&#xff0c;可以获取缓存…

DeferredResult 是如何实现异步处理请求的

最近遇到了一个问题&#xff0c;我们的一个接口需要去轮询另一个第三方接口&#xff0c;导致这个接口占用了太多工作线程&#xff0c;这些工作线程长时间 running&#xff0c;我们需要解决这个问题。 于是&#xff0c;我们的方案是&#xff1a;用 DeferredResult 实现接口异步。…

如何用 ChatGPT 提升学术写作:15 个高效提示

在本文&#xff0c;我们详细探讨了如何利用 ChatGPT 提升学术写作的各个方面。我们帮助学术作者通过生成创意点子、构建论证结构、克服写作障碍以及格式化引用&#xff0c;从而显著提升其学术论文的质量。这 15 条提示不仅可以单独使用&#xff0c;还可作为学习的良好范例。 本…