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

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认证且开启数据持久化

注&#xff1a;本文档部署Kafka时&#xff0c;取消了默认的SASL认证的相关配置&#xff0c;并开启了数据持久化。 一、添加并更新Helm仓库 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update bitnami二、下载并解压kafka的Chart helm pull bitna…...

kotlin -- Flow和Rxjava 对比

引言 我们先说说&#xff0c;关键词 响应式编程&#xff0c;数据流&#xff0c;观察者模式。 观察者模式 一个button setOnClickListener 就是观察者模式。 button是被观察者&#xff0c;它产生一个事件(点击)&#xff0c;观察者OnClickListener接收到&#xff0c;做出相…...

【JVM篇】自动内存管理——HotSpot虚拟机对象探秘

目录 前言 一、对象的创建 二、对象的内存布局 三、对象的访问定位 总结 前言 相关文章&#xff1a;【JVM篇】自动内存管理——运行时数据区-CSDN博客 介绍完Java虚拟机的运行时数据区域之后&#xff0c;我们大致明白了Java虚拟机内存模型的概况&#xff0c;但可能会好奇其…...

代谢组数据分析(十七):基于structToolbox代谢组分析流程讲解

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 介绍 structToolbox 是一个广泛使用的工具箱,专门用于代谢组学和其他组学数据的分析。它提供了一系列的数据预处理、统计分析和机器学习方法,特别强调统计和机器学习的重要性。这个工具箱允许…...

科普课堂走起 | 什么是网络安全和数据安全?

网络安全和数据安全是现代数字世界中非常重要的两个概念。让我们来详细了解一下这两个领域。 1.网络安全&#xff08;Network Security&#xff09; 网络安全是指保护网络系统免受未经授权的访问、攻击、破坏或滥用的一系列技术和过程。它旨在确保信息的机密性、完整性和可用…...

C语言中常用的函数

处理字符串常用的函数 size_t strspn(const char *s, const char *accept); 函数参数说明&#xff1a; s是被查找的字符串 accepct是要匹配的字符串函数功能说明&#xff1a; 它返回s字符串起始部分中&#xff0c;完全由accept字符串中的字符组成的子字符串的长度函数返回值…...

如何在SpringBoot中进行单元测试?

在Spring Boot中进行单元测试通常会涉及以下几个步骤&#xff1a; 1. 添加测试依赖 确保在你的pom.xml&#xff08;Maven&#xff09;或build.gradle&#xff08;Gradle&#xff09;中包含了Spring Boot的测试依赖。Spring Boot的Starter依赖spring-boot-starter-test通常已经…...

分布式事务学习整理

一、整体背景 最近在分布式事务领域这块的了解比较少&#xff0c;对自己来说是一个业务盲点&#xff0c;所以想抽空学习以及整理下关于分布式事务的相关知识。 1、分布式事务的发展 总所周知&#xff0c;我们为什么要考虑分布式事务&#xff0c;从一开始发展来说&#xff0c…...

Conda配置瘦身术:精通conda config --remove命令

Conda配置瘦身术&#xff1a;精通conda config --remove命令 Conda作为Python和其他科学计算语言的包管理器&#xff0c;其灵活性和强大功能在很大程度上依赖于其配置系统。随着时间的推移&#xff0c;Conda配置可能会变得复杂和冗余。conda config --remove命令提供了一种方法…...

Windows下编译安装PETSc

本文记录在Windows下使用MinGW-w64编译安装PETSc的流程。 0、环境 操作系统Windows 11MSYS2msys2-x86_64-20240507 1、开发环境 首先&#xff0c;下载并安装MSYS2&#xff0c;然后编辑PATH环境变量&#xff0c;添加mingw64相关路径&#xff1a;C:\msys64\mingw64\bin。 然…...

phpstudy搭建sqlilabs本地靶场

请先在网上解决好前置条件的下载和安装&#xff1a;phpstudy、vscode、navicat premium(非必要)、sqlilab的压缩包/文件夹 phpstudy--安装sqlilabs 1.打开phpstudy后&#xff0c;我们会用到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语言指针详解-包过系列&#xff08;二&#xff09;目录版 1、数组名的深入理解1.1、数组名的本质1.2、数组名本质的两个例外1.2.1、sizeof&#xff08;数组名&#xff09;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. 重启机器 补充说明为什么端口会被用完&#xff1f;为什么Windows要设置这样的限制&#xff1f; 注意事项参考链接 在进行性能压测或压力测试时&#xff0c;使用JMeter这样的工具来模拟大量用户请求&#xff0c;…...

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&#xff08;即时编译&#xff09;编译器是Java虚拟机&#xff08;JVM&#xff09;中的一个重要组件&#xff0c;它的主要作用是将Java字节码&#xff08;bytecode&#xff09;在运行时动态编译成高效的机器码&#xff0c;从而显著提高Java程序的执行效率。JIT编译器优化是J…...

循环执行时数据的同步方式

在dataX-web中循环执行时数据的同步方式 解决中文comment中文乱码 在mysql中 # &#xff08;0&#xff09;修改库注释 alter table DBS modify column desc varchar(256) character set utf8; alter table DATABASE_PARAMS modify column PARAM_VALUE varchar(256) characte…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...