kafka部署集群模式

Kafka部署(3.7)

生產環境推薦的kafka部署方式為operator方式部署,Strimzi是目前最主流的operator方案。集群數據量較小的話,可以采用NFS共享存儲,數據量較大的話可使用local pv存儲

部署operator

operator部署方式為helm或yaml文件部署,此處以helm方式部署為例:
必須優先部署operator (版本要適配否則安裝不上kafka)
注意:0.45以上不在支持zk

helm pull strimzi/strimzi-kafka-operator --version 0.42.0
tar -zxf strimzi-kafka-operator-helm-3-chart-0.42.0.tgz 
ls
helm install strimzi ./strimzi-kafka-operator   -n kafka   --create-namespace

在這里插入圖片描述

查看示例文件

Strimzi官方倉庫提供了各種場景下的示例文件,資源清單下載地址:https://github.com/strimzi/strimzi-kafka-operator/releases

strimzi-0.42.0.tar.gz
tar 解壓
在這里插入圖片描述
/root/lq-service/kafka/strimzi-0.42.0/examples/kafka
在這里插入圖片描述

kafka-persistent.yaml:部署具有三個 ZooKeeper 和三個 Kafka 節點的持久集群。(推薦)
kafka-jbod.yaml:部署具有三個 ZooKeeper 和三個 Kafka 節點(每個節點使用多個持久卷)的持久集群。
kafka-persistent-single.yaml:部署具有單個 ZooKeeper 節點和單個 Kafka 節點的持久集群。
kafka-ephemeral.yaml:部署具有三個 ZooKeeper 和三個 Kafka 節點的臨時群集。
kafka-ephemeral-single.yaml:部署具有三個 ZooKeeper 節點和一個 Kafka 節點的臨時群集。

創建pvc資源

[root@tiaoban kafka]# cat kafka-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-my-cluster-zookeeper-0namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-my-cluster-zookeeper-1namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-my-cluster-zookeeper-2namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-0-my-cluster-kafka-0namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-0-my-cluster-kafka-1namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: data-0-my-cluster-kafka-2namespace: kafka
spec:storageClassName: nfs-clientaccessModes:- ReadWriteOnceresources:requests:storage: 100Gi

部署kafka和zookeeper

參考官方倉庫的kafka-persistent.yaml示例文件,部署三個 ZooKeeper 和三個 Kafka 節點的持久集群。kafka-persistent.yaml

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:name: my-cluster
spec:kafka:version: 3.7.1replicas: 3listeners:- name: plainport: 9092type: internaltls: false- name: tlsport: 9093type: internaltls: trueconfig:offsets.topic.replication.factor: 3transaction.state.log.replication.factor: 3transaction.state.log.min.isr: 2default.replication.factor: 3min.insync.replicas: 2inter.broker.protocol.version: "3.7"storage:type: jbodvolumes:- id: 0type: persistent-claimsize: 10GideleteClaim: falsezookeeper:replicas: 3storage:type: persistent-claimsize: 10GideleteClaim: falseentityOperator:topicOperator: {}userOperator: {}kubectl apply -f  kafka-persistent.yaml
kubectl get po -n kafka

訪問驗證

查看資源信息,已成功創建相關pod和svc資源。
在這里插入圖片描述
在這里插入圖片描述

部署kafka-ui

創建configmap和ingress資源,在configmap中指定kafka連接地址。以traefik為例,創建ingress資源便于通過域名方式訪問。
需要先授權
traefik.containo.us_ingressroutes.yaml.yaml
地址:https://raw.githubusercontent.com/traefik/traefik/v2.6/docs/content/reference/dynamic-configuration/traefik.containo.us_ingressroutes.yaml

[root@021rjsh216171s kafka]# cat kafka-ui.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: kafka-ui-helm-valuesnamespace: kafka
data:KAFKA_CLUSTERS_0_NAME: "kafka-cluster"KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "my-cluster-kafka-brokers.kafka.svc:9092"AUTH_TYPE: "DISABLED"MANAGEMENT_HEALTH_LDAP_ENABLED: "FALSE" 
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:name: kafka-uinamespace: kafka
spec:entryPoints:- webroutes:- match: Host(`kafka-ui.local.com`) 域名kind: Ruleservices:- name: kafka-uiport: 80

helm方式部署kafka-ui并指定配置文件

helm repo add kafka-ui https://provectus.github.io/kafka-ui
helm install kafka-ui kafka-ui/kafka-ui -n kafka --set existingConfigMap="kafka-ui-helm-values"

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92200.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言中級_動態內存分配、指針和常量、各種指針類型、指針和數組、函數指針

0、前言: 動態內存分配是一個重要概念,要和靜態數組對比著學習;指針和數組搭配在一起,讓指針理解的難度上了一個臺階,尤其是二維數組搭配指針,要獲取數組的值,什么時候“取地址”,什…

單變量單步時序預測:CNN-GRU卷積神經網絡結合門控循環單元

目錄預測效果1. **CNN-GRU的基本原理**2. **應用場景**3. **模型結構與實現**4. **優勢與挑戰**5. **相關研究與實現**6. **未來發展方向**結論代碼設計預測效果 CNN-GRU卷積神經網絡結合門控循環單元是一種結合了卷積神經網絡(CNN)和門控循環單元&#…

MonoFusion 與 Genie 3

卡內基梅隆大學的研究者發明了一種叫 MonoFusion 的新技術,它能用很少的普通相機(比如4個),就能拍出像電影特效一樣細膩流暢的動態3D場景(4D重建),比如彈鋼琴、修自行車這種復雜動作&#xff0c…

kubernets命令行創建Token并附加權限給dashboard控制臺登錄

1、創建登錄token kubectl create token default -n graph-node-test dgjeojrgopejgeropjgpsdjgerjglsdjfsjogjeojgeorjgortlfhj4yu493460uwperg3wef;lsj2y3r934tnrhifrlfe9t4h5tlhobdrmlgw485tw4yp653ut9ogogjerolj4w9erjgotj3fgjletyj49yr20o359truyo5u6908430jt5grjsdtgj49…

什么是SpringBoot

題目詳細答案Spring Boot 是由 Pivotal 團隊提供的一個基于 Spring 框架的項目,它旨在簡化 Spring 應用的開發和部署。Spring Boot 通過提供一系列的約定和開箱即用的功能,使得開發者可以更快地構建獨立的、生產級的 Spring 應用程序,而無需進…

從零開始設計一個分布式KV存儲:基于Raft的協程化實現

從零開始設計一個分布式KV存儲:基于Raft的協程化實現 本文將以一個最小可運行的分布式KV系統為例,帶你拆解如何用C、Raft算法和協程模型構建高可用的Key-Value存儲。 一、為什么需要分布式KV? 單機KV(如Redis)存在單點…

虛擬機或docker的ubuntu無界面安裝完成后鏡像源設置

ubuntu系統源 在裝好虛擬機或者docker鏡像后,直接使用apt update && apt upgrade是無法完更新的。 此時系統中也沒有vim工具,我們可以在清華源的網站中找到幫助文檔。mirrors.tuna.tsinghua.edu.cn/help/ubuntu/為了避免沖突,我們使用…

串口通信02 溫度傳感DS18B20 01 day49

九:串口通信 通信:無線和有線 ? 單工 半雙工 全雙工 并行:多個數據線 串行:一根數據線 同步:通信雙方使用同一個時鐘,SPI信息幀,有CLK引腳 異步:通信雙方使用不同時鐘,雙…

【FreeRTOS 】任務通知

FreeRTOS 任務通知任務通知簡介一 、發送通知1.1 xTaskNotify()1.2 xTaskNotifyFromISR()1.3 xTaskNotifyGive()1.4 xTaskNotifyAndQuery()1.5 xTaskNotifyAndQueryFromISR()二、接收通知2.1 ulTaskNotifyTake()2.2 xTaskNotifyWait()三、清除通知狀態和值3.1 xTaskNotifyState…

Android視圖狀態以及重繪

一、視圖狀態(View States)1. 五種核心狀態狀態作用修改方法特點enabled視圖是否響應交互setEnabled(boolean)禁用狀態下不響應onTouch事件focused視圖是否獲得焦點requestFocus()需同時滿足focusable和focusableInTouchModewindow_focused視圖所在窗口是…

vue3接收SSE流數據進行實時渲染日志

后端使用的是 Spring Boot WebFlux(響應式編程框架),并且返回的是 Server-Sent Events (SSE) 流式數據,那么在 Vue3 中,需要使用 EventSource API 或 fetch 流式讀取 來正確獲取響應內容。方案 1:使用 Eve…

每日五個pyecharts可視化圖表-bars(6)

探索pyecharts庫中條形圖的高級用法與定制技巧 在數據可視化中,條形圖是最常用的圖表類型之一,它能夠清晰地展示不同類別之間的數量對比。今天,我們將繼續學習如何使用pyecharts創建5種不同風格的條形圖。pyecahts源碼 圖表1:帶…

【C語言】文件操作全解析

文章目錄一、為什么需要文件操作?二、認識文件:不止是磁盤上的存儲2.1 程序文件2.2 數據文件2.3 文件名的構成三、文本文件與二進制文件:數據的兩種形態3.1 存儲方式差異3.2 實例對比:整數10000的存儲3.3 二進制文件操作示例四、文…

C結構體的幾種定義形式 + typedef結合使用的好處

struct 語句定義了一個包含多個成員的新的數據類型,struct 語句的格式如下: struct tag { member-list member-list member-list ... } variable-…

SPICE電容矩陣

SPICE電容矩陣: 如果有許多條傳輸線,就可以用下標來標記每一條線。例如,如果有5條線,就用1~5分別標記,依慣例把返回路徑導體標記為導線0。圖10.6給出了5條導線和一個公共返回平面的橫截面圖。首先研究電容器元件,下一節再討論電感器元件。 在這個線的集合中,每對導線之間…

【Java】棧和隊列

文章目錄1.棧1.1 棧的定義1.2 棧的使用1.3 棧的模擬實現2.隊列2.1 隊列的定義2.2 隊列的使用2.3 隊列的模擬實現3.循環隊列3.1 循環隊列的概念3.2 循環隊列判斷空和滿4.雙端隊列Deque1.棧 1.1 棧的定義 棧是一種特殊的線性表,其只允許在固定的一段進行數據的插入或…

【性能測試】---測試工具篇(jmeter)

目錄 1、安裝并啟動jemeter 2、重點組件 2.1、線程組: 2.2、HTTP取樣器?編輯 2.3、查看結果樹 2.4、HTTP請求默認值 2.5、HTTP信息頭管理器 2.6、JSON提取器 2.7、JSON斷言 2.8、同步定時器 2.9、CSV數據文件設置 2.10、HTTP Cookie管理器 3、測試報告…

機器學習(12):拉索回歸Lasso

- 拉索回歸可以將一些權重壓縮到零,從而實現特征選擇。這意味著模型最終可能只包含一部分特征。 - 適用于特征數量遠大于樣本數量的情況,或者當特征間存在相關性時,可以從中選擇最相關的特征。 - 拉索回歸產生的模型可能更簡單,因…

Redis持久化存儲

Redis持久化存儲詳解 一、核心持久化機制 Redis提供兩種主要持久化方式:RDB(快照) 和 AOF(追加文件),以及兩者的混合模式。 RDB(Redis Database)快照持久化 工作原理 RDB通過創建數據…

python學智能算法(三十四)|SVM-KKT條件回顧

【1】引言 前序學習進程中,對軟邊界拉格朗日方程進行了初步構建。 其中約定了兩個拉格朗日乘子要非負,其本質是要滿足KKT條件。 今天就乘此次機會,在回顧一下KKT條件。 【2】定義 當問題無約束的時候,只要讓函數梯度為零&#…