当前位置: 首页 > news >正文

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

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 文件

<

相关文章:

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

Strimzi介绍 官方文档:https://strimzi.io/docs/operators/0.42.0/overview#kafka-components_str Strimzi介绍 Strimzi 是一个用于 Apache Kafka 在 Kubernetes 上部署和管理的开源项目。它提供了一组 Kubernetes 自定义资源定义(Custom Resource Definitions,CRDs)、控制…...

【网络安全】探索AI 聊天机器人工作流程实现RCE

未经许可,不得转载。 文章目录 前言正文前言 我发现了一个广泛使用的AI聊天机器人平台中的远程代码执行漏洞。该漏洞存在于聊天机器人的自定义工作流响应代码中,这些工作流允许开发人员通过创建定制的流程来扩展机器人的功能。 正文 在浏览自动化聊天机器人的多个特定功能…...

虚拟DOM、Vue渲染流程

虚拟DOM&#xff08;Virtual DOM&#xff09;是一种在前端开发中广泛使用的技术&#xff0c;它用JavaScript对象来表示真实DOM&#xff08;文档对象模型&#xff09;的结构和状态。虚拟DOM的核心思想是将页面的状态和结构保存在内存中&#xff0c;而不是直接操作真实的DOM。这一…...

centos7 启动python后端服务与停止服务的sh脚本

centos7 启动python后端服务与停止服务 分别在工程目录下新建启动脚本和停止脚本。 1、启动服务脚本 start_srv.sh: python3 start_srv.py运行 nohup ./start_srv.sh & 以守护进程的方式启动这个服务。 2、停止服务脚本 stop_srv.sh: sp_pidps -ef | grep start_srv…...

访问网站显示不安全怎么办?

访问网站时显示“不安全”&#xff0c;针对不同的原因有不同的解决方式&#xff0c;下面是常见的几种原因和对应的解决办法。 1.未启用HTTPS协议 如果网站仅使用HTTP协议&#xff0c;数据传输没加密&#xff0c;因此会被浏览器标记为“不安全”。解决办法是启用HTTPS协议,给…...

Scala与集合框架:高效数据处理的利器

Scala与集合框架&#xff1a;高效数据处理的利器 Scala 是一种现代化的编程语言&#xff0c;融合了面向对象编程和函数式编程的特性。其集合框架为处理数据提供了强大而灵活的工具&#xff0c;使得数据处理变得高效且富有表达力。本文将深入探讨 Scala 的集合框架&#xff0c;…...

基于 JWT 的模拟登录爬取实战

准备工作 1. 了解 JWT 相关知识 2. 安装 requests 库&#xff0c;并了解其基本使用 案例介绍 爬取网站&#xff1a; https://login3.scrape.center/ 用户名和密码是&#xff1a; admin 模拟登录 基于 JWT 的网站通常采用的是前后端分离式&#xff0c; 前后端的数据传输依…...

力扣(2024.08.06)

1. 144&#xff1a;二叉树的前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def preorderTravers…...

如何快速入门 PyTorch ?

PyTorch是一个机器学习框架&#xff0c;主要依靠深度神经网络&#xff0c;目前已迅速成为机器学习领域中最可靠的框架之一。 PyTorch 的大部分基础代码源于 Ronan Collobert 等人 在 2007 年发起的 Torch7 项目&#xff0c;该项目源于 Yann LeCun 和 Leon Bottou 首创的编程语…...

Qt 快速部署环境(windeployqt.exe)

windeployqt.exe 是 Qt 框架提供的一个工具&#xff0c;主要用于将 Qt 应用程序部署到 Windows 环境中。它自动将所需的所有库、插件和文件复制到应用程序的目录中&#xff0c;以便用户能够直接运行应用程序&#xff0c;而无需额外的配置。 主要功能 自动识别依赖项&#xff…...

白骑士的PyCharm教学实战项目篇 4.2 数据分析与可视化

系列目录 上一篇&#xff1a;白骑士的PyCharm教学实战项目篇 4.1 Web应用开发 数据分析和可视化是现代数据科学和工程中的重要环节。借助PyCharm的强大功能&#xff0c;数据分析与可视化的开发工作变得更加高效和便捷。本文将详细介绍如何在PyCharm中进行数据分析工具的集成与…...

el-form-item,label在上方显示,输入框在下方展示

本来是两排展示去写&#xff0c;设计要求一排展示&#xff0c;label再上方&#xff0c;输入框、勾选框在下方&#xff1b;只能调整样式去修改&#xff1b;参考label-position这个属性 代码如下&#xff1a; <el-form ref"form" :model"formData" clas…...

Centos7.9操作系统kdump crash文件vmcore未生成问题

Centos7.9操作系统kdump crash文件未生成问题 一、背景说明1、问题背景 二、排查思路1、先了解下crashkernelcrashkernel设置方式示例如何配置crashkernel验证crashkernel配置 2、再了解下kdump2.1 Kdump 的基本概念2.1.1. 生产内核&#xff08;Production Kernel&#xff09;2…...

找不到符号 javax.servlet.WriteListener

1、问题 找不到符号2、原因 JDK1.8升级到高版本后&#xff0c;需要手动引入包。 在打包时&#xff0c;需要注意一下是否是在父类打包&#xff0c;而不是在某个model打包。 3、解决 引入 <dependency><groupId>javax.servlet</groupId><artifactId>…...

智能仪表板DevExpress Dashboard v24.1 - 新增级联参数过滤

使用DevExpress Analytics Dashboard&#xff0c;再选择合适的UI元素&#xff08;图表、数据透视表、数据卡、计量器、地图和网格&#xff09;&#xff0c;删除相应参数、值和序列的数据字段&#xff0c;就可以轻松地为执行主管和商业用户创建有洞察力、信息丰富的、跨平台和设…...

计算机网络-CSP初赛知识点整理

历年真题 [2016-NOIP-普及-第3题] 以下不属于无线通信技术的是( ) A. 蓝牙 B. Wifi C. GPRS D. 以太网 [2015-NOIP-普及-第10题] FTP 可以用于( )。 A. 远程传输文件 B. 发送电子邮件 C. 浏览网页 D. 网上聊天 [2019-CSP-J-第1题] 中国的国家顶级域名是( ). A. .cn B. .ch C.…...

MySQL第1讲--详细安装教程和启动方法

文章目录 安装教程打开或关闭方式方式1&#xff1a;方式2&#xff1a; 客户端连接方式客户端连接方式1&#xff1a;客户端连接方式2&#xff1a;MySQL环境变量的配置 安装教程 1、mysql官网下载最新的符合本系统的版本 2、点击.msi文件进入安装页面 选择默认的选项开发者安…...

SQL创建数据表的一些语句

SQL创建数据表 /*Navicat Premium Data TransferSource Server : dockermysqlSource Server Type : MySQLSource Server Version : 80023Source Host : localhost:3306Source Schema : nestleTarget Server Type : MySQLTarget Server Version…...

Spring Boot实战:拦截器

一.拦截器快速入门 1.1了解拦截器 什么是拦截器&#xff1a; 概念 &#xff1a;拦截器是Spring框架提供的核⼼功能之⼀, 主要⽤来拦截⽤⼾的请求, 在指定⽅法前后, 根据业务需要执⾏预先设定的代码。 也就是说, 允许开发⼈员提前预定义⼀些逻辑, 在⽤⼾的请求响应前后执⾏. 也…...

<数据集>战斗机识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;7903张 标注数量(xml文件个数)&#xff1a;7903 标注数量(txt文件个数)&#xff1a;7903 标注类别数&#xff1a;43 标注类别名称&#xff1a;[F16, Mig31, F35, F18, SR71, A10, A400M, AG600, J20, F4, C17, Tor…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...