Kubernetes基于helm部署Kafka_Kraft集群并取消SASL认证且开启数据持久化
注:本文档部署Kafka时,取消了默认的SASL认证的相关配置,并开启了数据持久化。
一、添加并更新Helm仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update bitnami
二、下载并解压kafka的Chart
helm pull bitnami/kafka
tar -xf kafka-29.3.14.tgz
三、修改values.yml
下面为修改后的示例:
我已经删除了多余的注释和默认的配置,仅保留修改后的必要的内容
image:# 镜像仓库,原为docker.io/bitnami/kafka:3.7.1-debian-12-r4registry: registry.cn-hangzhou.aliyuncs.comrepository: zhaoll/kafkatag: 3.7.1-debian-12-r4pullPolicy: IfNotPresent
heapOpts: -Xmx1024m -Xms1024m
listeners:client:containerPort: 9092name: CLIENTprotocol: PLAINTEXT # 原为SASL_PLAINTEXT,因为我不需要访问Kafka时进行认证,所以改为PLAINTEXTsslClientAuth: none # 原为"",因为我不需要访问Kafka时进行认证,所以改为nonecontroller:name: CONTROLLERcontainerPort: 9093protocol: PLAINTEXT # 同上sslClientAuth: none # 同上interbroker:containerPort: 9094name: INTERNALprotocol: PLAINTEXT # 同上sslClientAuth: none # 同上external:containerPort: 9095name: EXTERNALprotocol: PLAINTEXT # 同上sslClientAuth: none # 同上extraListeners: []overrideListeners: ""advertisedListeners: ""securityProtocolMap: ""
sasl: {} #把sasl下面的大段给注释掉或者删除,并将这里改为{}
controller:replicaCount: 3controllerOnly: falseminId: 0zookeeperMigrationMode: falseheapOpts: -Xmx1024m -Xms1024mpersistence:enabled: true # 设为true,启用持久化存储storageClass: "nfs-client" # 这里配置自己的storageClass,用于自动创建PV和PVCaccessModes:- ReadWriteOncesize: 1Gi # 大小自己决定mountPath: /bitnami/kafkalogPersistence:enabled: true # 启用日志持久化storageClass: "nfs-client" # 这里配置自己的storageClass,用于自动创建PV和PVCaccessModes:- ReadWriteOncesize: 1Gi # 大小自己决定mountPath: /opt/bitnami/kafka/logsservice:type: NodePort #这里原为ClusterIP,我们改为NodePortports:client: 9092controller: 9093interbroker: 9094external: 9095nodePorts:client: ""external: ""externalTrafficPolicy: Clusterheadless:controller:annotations: {}labels: {}broker:annotations: {}labels: {}
kraft:enabled: true # 启用Kraft,不依赖zookeeper建立集群。existingClusterIdSecret: ""clusterId: ""controllerQuorumVoters: ""
四、开始安装
[root@master1 kafka]# helm install kafka -f values.yaml bitnami/kafka
大致解释一下上面输出的内容:
[root@master1 kafka]# helm install kafka -f values.yaml bitnami/kafka
# 安装信息,主要是kafka的版本和Chart版本
NAME: kafka
LAST DEPLOYED: Tue Aug 6 16:30:13 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: kafka
CHART VERSION: 29.3.14
APP VERSION: 3.7.1** Please be patient while the chart is being deployed **# 可以通过kafka.default.svc.cluster.local名称加上9092端口在k8s集群内部访问访问Kafka集群
Kafka can be accessed by consumers via port 9092 on the following DNS name from within your cluster:kafka.default.svc.cluster.local# 生产者可以通过下面三个节点名称来访问Kafka
Each Kafka broker can be accessed by producers via port 9092 on the following DNS name(s) from within your cluster:kafka-controller-0.kafka-controller-headless.default.svc.cluster.local:9092kafka-controller-1.kafka-controller-headless.default.svc.cluster.local:9092kafka-controller-2.kafka-controller-headless.default.svc.cluster.local:9092# 创建一个pod用于访问Kafka
To create a pod that you can use as a Kafka client run the following commands:# 这是创建pod的命令kubectl run kafka-client --restart='Never' --image registry.cn-hangzhou.aliyuncs.com/zhaoll/kafka:3.7.1-debian-12-r4 --namespace default --command -- sleep infinity# 这是进入pod内部kubectl exec --tty -i kafka-client --namespace default -- bashPRODUCER:# 在Pod里执行下面这行命令,开启一个生产者,用于发送消息kafka-console-producer.sh \--broker-list kafka-controller-0.kafka-controller-headless.default.svc.cluster.local:9092,kafka-controller-1.kafka-controller-headless.default.svc.cluster.local:9092,kafka-controller-2.kafka-controller-headless.default.svc.cluster.local:9092 \--topic testCONSUMER:# 在Pod里执行下面这行命令,开启一个消费者,用于接收消息kafka-console-consumer.sh \--bootstrap-server kafka.default.svc.cluster.local:9092 \--topic test \--from-beginning
# 默认镜像被替换了,会在此出现警告
Substituted images detected:- registry.cn-hangzhou.aliyuncs.com/zhaoll/kafka:3.7.1-debian-12-r4
按照上面的提示,创建一个测试用的Pod:
kubectl run kafka-client --restart='Never' --image registry.cn-hangzhou.aliyuncs.com/zhaoll/kafka:3.7.1-debian-12-r4 --namespace default --command -- sleep infinity
安装完成后,查看Pod和SVC:
[root@master1 kafka]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/kafka-client 1/1 Running 0 3m
pod/kafka-controller-0 1/1 Running 0 4m
pod/kafka-controller-1 1/1 Running 0 4m
pod/kafka-controller-2 1/1 Running 0 4m
pod/nfs-client-provisioner-6f5897fd65-28qlw 1/1 Running 0 15dNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kafka NodePort 10.108.113.8 <none> 9092:32476/TCP 4m
service/kafka-controller-headless ClusterIP None <none> 9094/TCP,9092/TCP,9093/TCP 4m
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
六、创建生产者和消费者进行测试
生产者:
[root@master1 kafka]# kubectl exec --tty -i kafka-client --namespace default -- bash
I have no name!@kafka-client:/$ kafka-console-producer.sh \
> --broker-list kafka-controller-0.kafka-controller-headless.default.svc.cluster.local:9092,kafka-controller-1.kafka-controller-headless.default.svc.cluster.local:9092,kafka-controller-2.kafka-controller-headless.default.svc.cluster.local:9092 \
> --topic test
>我超级牛逼的
>
消费者:
[root@master1 kafka]# kubectl exec --tty -i kafka-client --namespace default -- bash
I have no name!@kafka-client:/$ kafka-console-consumer.sh \
> --bootstrap-server kafka.default.svc.cluster.local:9092 \
> --topic test \
> --from-beginning
我超级牛逼的
以上,部署完成
相关文章:
Kubernetes基于helm部署Kafka_Kraft集群并取消SASL认证且开启数据持久化
注:本文档部署Kafka时,取消了默认的SASL认证的相关配置,并开启了数据持久化。 一、添加并更新Helm仓库 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update bitnami二、下载并解压kafka的Chart helm pull bitna…...
kotlin -- Flow和Rxjava 对比
引言 我们先说说,关键词 响应式编程,数据流,观察者模式。 观察者模式 一个button setOnClickListener 就是观察者模式。 button是被观察者,它产生一个事件(点击),观察者OnClickListener接收到,做出相…...
【JVM篇】自动内存管理——HotSpot虚拟机对象探秘
目录 前言 一、对象的创建 二、对象的内存布局 三、对象的访问定位 总结 前言 相关文章:【JVM篇】自动内存管理——运行时数据区-CSDN博客 介绍完Java虚拟机的运行时数据区域之后,我们大致明白了Java虚拟机内存模型的概况,但可能会好奇其…...
代谢组数据分析(十七):基于structToolbox代谢组分析流程讲解
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 介绍 structToolbox 是一个广泛使用的工具箱,专门用于代谢组学和其他组学数据的分析。它提供了一系列的数据预处理、统计分析和机器学习方法,特别强调统计和机器学习的重要性。这个工具箱允许…...
科普课堂走起 | 什么是网络安全和数据安全?
网络安全和数据安全是现代数字世界中非常重要的两个概念。让我们来详细了解一下这两个领域。 1.网络安全(Network Security) 网络安全是指保护网络系统免受未经授权的访问、攻击、破坏或滥用的一系列技术和过程。它旨在确保信息的机密性、完整性和可用…...
C语言中常用的函数
处理字符串常用的函数 size_t strspn(const char *s, const char *accept); 函数参数说明: s是被查找的字符串 accepct是要匹配的字符串函数功能说明: 它返回s字符串起始部分中,完全由accept字符串中的字符组成的子字符串的长度函数返回值…...
如何在SpringBoot中进行单元测试?
在Spring Boot中进行单元测试通常会涉及以下几个步骤: 1. 添加测试依赖 确保在你的pom.xml(Maven)或build.gradle(Gradle)中包含了Spring Boot的测试依赖。Spring Boot的Starter依赖spring-boot-starter-test通常已经…...
分布式事务学习整理
一、整体背景 最近在分布式事务领域这块的了解比较少,对自己来说是一个业务盲点,所以想抽空学习以及整理下关于分布式事务的相关知识。 1、分布式事务的发展 总所周知,我们为什么要考虑分布式事务,从一开始发展来说,…...
Conda配置瘦身术:精通conda config --remove命令
Conda配置瘦身术:精通conda config --remove命令 Conda作为Python和其他科学计算语言的包管理器,其灵活性和强大功能在很大程度上依赖于其配置系统。随着时间的推移,Conda配置可能会变得复杂和冗余。conda config --remove命令提供了一种方法…...
Windows下编译安装PETSc
本文记录在Windows下使用MinGW-w64编译安装PETSc的流程。 0、环境 操作系统Windows 11MSYS2msys2-x86_64-20240507 1、开发环境 首先,下载并安装MSYS2,然后编辑PATH环境变量,添加mingw64相关路径:C:\msys64\mingw64\bin。 然…...
phpstudy搭建sqlilabs本地靶场
请先在网上解决好前置条件的下载和安装:phpstudy、vscode、navicat premium(非必要)、sqlilab的压缩包/文件夹 phpstudy--安装sqlilabs 1.打开phpstudy后,我们会用到MySQL5.7.26和Nginx1.15.11 #mysql5.7.26是因为sqlilabs靶场不支持高版本MySQL 2.在软…...
Linux 实验基础环境准备(外网篇)
1.关闭禁用防火墙和selinux systemctl disable firewalld --now sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config2.保证可以连接外网 ping -c3 www.baidu.com 3.配置yum为阿里仓库并下载epel源 mkdir /etc/yum.repos.d/bak/; mv /etc/yum.repos.d/*.repo /e…...
centos8 安装mysql 制作备份数据库脚本
1、配置阿里云源 cd /etc/yum.repos.d/ vim CentOS-Stream-AppStream.repo [appstream] nameCentOS Stream $releasever - AppStream #mirrorlisthttp://mirrorlist.centos.org/?release$stream&arch$basearch&repoAppStream&infra$infra baseurlhttp://mirrors…...
Parsing error: The keyword ‘interface‘ is reserved配置优化
当我们在创建Vue项目时,Vue默认是配置了eslint代码规范检查的,不过我们在项目中Typescript来编写代码时,却报了标题的错误,对应的代码如下: <script lang="ts"> export default{name: "DlHeader" } </script><script setup lang=&quo…...
C语言指针详解-包过系列(二)目录版
C语言指针详解-包过系列(二)目录版 1、数组名的深入理解1.1、数组名的本质1.2、数组名本质的两个例外1.2.1、sizeof(数组名)1.2.2、&数组名 2、使用指针访问数组3、一维数组传参本质4、二级指针4.1、二级指针介绍4.2、二级指针…...
驰骋BPM RunSQL_Init SQL注入漏洞复现
0x01 产品简介 驰骋BPM系统由济南驰骋信息技术有限公司研发,具有悠久的历史和丰富的行业经验。其工作流引擎CCFlow自2003年开始研发,是国内知名的老牌工作流引擎,在BPM领域拥有广泛的研究群体与应用客户群。统提供.net与java两个版本,且两个版本的代码结构、数据库结构、设…...
谷粒商城实战笔记-143-性能压测-压力测试-JMeter在windows下地址占用bug解决
文章目录 问题背景解决步骤1. 修改端口范围2. 调整端口回收时间3. 重启机器 补充说明为什么端口会被用完?为什么Windows要设置这样的限制? 注意事项参考链接 在进行性能压测或压力测试时,使用JMeter这样的工具来模拟大量用户请求,…...
Pod的调度机制
文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…...
JIT(即时编译)编译器
JIT(即时编译)编译器是Java虚拟机(JVM)中的一个重要组件,它的主要作用是将Java字节码(bytecode)在运行时动态编译成高效的机器码,从而显著提高Java程序的执行效率。JIT编译器优化是J…...
循环执行时数据的同步方式
在dataX-web中循环执行时数据的同步方式 解决中文comment中文乱码 在mysql中 # (0)修改库注释 alter table DBS modify column desc varchar(256) character set utf8; alter table DATABASE_PARAMS modify column PARAM_VALUE varchar(256) characte…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
