色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

zookeeper+kafka on k8s環境部署

馬哥Linux運維 ? 來源:博客園 ? 作者:大數據老司機 ? 2022-09-20 10:10 ? 次閱讀

一、概述

  • Apache ZooKeeper 是一個集中式服務,用于維護配置信息、命名、提供分布式同步和提供組服務,ZooKeeper 致力于開發和維護一個開源服務器,以實現高度可靠的分布式協調,其實也可以認為就是一個分布式數據庫,只是結構比較特殊,是樹狀結構。官網文檔:

    https://zookeeper.apache.org/doc/r3.8.0/

febc62a8-3821-11ed-ba43-dac502259ad0.pngfec6e552-3821-11ed-ba43-dac502259ad0.png

二、Zookeeper on k8s 部署

002bb7d8-3822-11ed-ba43-dac502259ad0.png

1)添加源

部署包地址:

https://artifacthub.io/packages/helm/zookeeper/zookeeper

helmrepoaddbitnamihttps://charts.bitnami.com/bitnami
helmpullbitnami/zookeeper
tar-xfzookeeper-10.2.1.tgz

2)修改配置

  • 修改zookeeper/values.yaml
image:
registry:myharbor.com
repository:bigdata/zookeeper
tag:3.8.0-debian-11-r36
...

replicaCount:3

...

service:
type:NodePort
nodePorts:
#NodePort默認范圍是30000-32767
client:"32181"
tls:"32182"

...

persistence:
storageClass:"zookeeper-local-storage"
size:"10Gi"
#目錄需要提前在宿主機上創建
local:
-name:zookeeper-0
host:"local-168-182-110"
path:"/opt/bigdata/servers/zookeeper/data/data1"
-name:zookeeper-1
host:"local-168-182-111"
path:"/opt/bigdata/servers/zookeeper/data/data1"
-name:zookeeper-2
host:"local-168-182-112"
path:"/opt/bigdata/servers/zookeeper/data/data1"

...

#EnablePrometheustoaccessZooKeepermetricsendpoint
metrics:
enabled:true
  • 添加zookeeper/templates/pv.yaml
{{-range.Values.persistence.local}}
---
apiVersion:v1
kind:PersistentVolume
metadata:
name:{{.name}}
labels:
name:{{.name}}
spec:
storageClassName:{{$.Values.persistence.storageClass}}
capacity:
storage:{{$.Values.persistence.size}}
accessModes:
-ReadWriteOnce
local:
path:{{.path}}
nodeAffinity:
required:
nodeSelectorTerms:
-matchExpressions:
-key:kubernetes.io/hostname
operator:In
values:
-{{.host}}
---
{{-end}}

  • 添加zookeeper/templates/storage-class.yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1
metadata:
name:{{.Values.persistence.storageClass}}
provisioner:kubernetes.io/no-provisioner

3)開始安裝

#先準備好鏡像
dockerpulldocker.io/bitnami/zookeeper:3.8.0-debian-11-r36
dockertagdocker.io/bitnami/zookeeper:3.8.0-debian-11-r36myharbor.com/bigdata/zookeeper:3.8.0-debian-11-r36
dockerpushmyharbor.com/bigdata/zookeeper:3.8.0-debian-11-r36

#開始安裝
helminstallzookeeper./zookeeper-nzookeeper--create-namespace

NOTES

NAME:zookeeper
LASTDEPLOYED:SunSep1818032022
NAMESPACE:zookeeper
STATUS:deployed
REVISION:1
TESTSUITE:None
NOTES:
CHARTNAME:zookeeper
CHARTVERSION:10.2.1
APPVERSION:3.8.0

**Pleasebepatientwhilethechartisbeingdeployed**

ZooKeepercanbeaccessedviaport2181onthefollowingDNSnamefromwithinyourcluster:

zookeeper.zookeeper.svc.cluster.local

ToconnecttoyourZooKeeperserverrunthefollowingcommands:

exportPOD_NAME=$(kubectlgetpods--namespacezookeeper-l"app.kubernetes.io/name=zookeeper,app.kubernetes.io/instance=zookeeper,app.kubernetes.io/component=zookeeper"-ojsonpath="{.items[0].metadata.name}")
kubectlexec-it$POD_NAME--zkCli.sh

ToconnecttoyourZooKeeperserverfromoutsidetheclusterexecutethefollowingcommands:

exportNODE_IP=$(kubectlgetnodes--namespacezookeeper-ojsonpath="{.items[0].status.addresses[0].address}")
exportNODE_PORT=$(kubectlget--namespacezookeeper-ojsonpath="{.spec.ports[0].nodePort}"serviceszookeeper)
zkCli.sh$NODE_IP:$NODE_PORT

004f18ea-3822-11ed-ba43-dac502259ad0.png
查看 pod 狀態

kubectlgetpods,svc-nzookeeper-owide
0062232c-3822-11ed-ba43-dac502259ad0.png

4)測試驗證

#登錄zookeeperpod
kubectlexec-itzookeeper-0-nzookeeper--zkServer.shstatus
kubectlexec-itzookeeper-1-nzookeeper--zkServer.shstatus
kubectlexec-itzookeeper-2-nzookeeper--zkServer.shstatus

kubectlexec-itzookeeper-0-nzookeeper--bash
00798e5e-3822-11ed-ba43-dac502259ad0.png

5)Prometheus 監控

Prometheus:https://prometheus.k8s.local/targets?search=zookeeper
008f8952-3822-11ed-ba43-dac502259ad0.png

可以通過命令查看采集數據

kubectlget--rawhttp://10.244.0.52:9141/metrics
kubectlget--rawhttp://10.244.1.101:9141/metrics
kubectlget--rawhttp://10.244.2.137:9141/metrics

Grafana:https://grafana.k8s.local/
賬號:admin,密碼通過下面命令獲取

kubectlgetsecret--namespacegrafanagrafana-ojsonpath="{.data.admin-password}"|base64--decode;echo

導入 grafana 模板,集群資源監控:10465
官方模塊下載地址:

https://grafana.com/grafana/dashboards/

00a29880-3822-11ed-ba43-dac502259ad0.png

6)卸載

helmuninstallzookeeper-nzookeeper

kubectldeletepod-nzookeeper`kubectlgetpod-nzookeeper|awk'NR>1{print$1}'`--force
kubectlpatchnszookeeper-p'{"metadata":{"finalizers":null}}'
kubectldeletenszookeeper--force

三、Kafka on k8s 部署

1)添加源

部署包地址:

https://artifacthub.io/packages/helm/bitnami/kafka

helmrepoaddbitnamihttps://charts.bitnami.com/bitnami
helmpullbitnami/kafka
tar-xfkafka-18.4.2.tgz

2)修改配置

  • 修改kafka/values.yaml
image:
registry:myharbor.com
repository:bigdata/kafka
tag:3.2.1-debian-11-r16

...

replicaCount:3

...

service:
type:NodePort
nodePorts:
client:"30092"
external:"30094"

...

externalAccess
enabled:true
service:
type:NodePort
nodePorts:
-30001
-30002
-30003
useHostIPs:true

...

persistence:
storageClass:"kafka-local-storage"
size:"10Gi"
#目錄需要提前在宿主機上創建
local:
-name:kafka-0
host:"local-168-182-110"
path:"/opt/bigdata/servers/kafka/data/data1"
-name:kafka-1
host:"local-168-182-111"
path:"/opt/bigdata/servers/kafka/data/data1"
-name:kafka-2
host:"local-168-182-112"
path:"/opt/bigdata/servers/kafka/data/data1"

...

metrics:
kafka:
enabled:true
image:
registry:myharbor.com
repository:bigdata/kafka-exporter
tag:1.6.0-debian-11-r8
jmx:
enabled:true
image:
registry:myharbor.com
repository:bigdata/jmx-exporter
tag:0.17.1-debian-11-r1
annotations:
prometheus.io/path:"/metrics"

...

zookeeper:
enabled:false

...

externalZookeeper
servers:
-zookeeper-0.zookeeper-headless.zookeeper
-zookeeper-1.zookeeper-headless.zookeeper
-zookeeper-2.zookeeper-headless.zookeeper
  • 添加kafka/templates/pv.yaml
{{-range.Values.persistence.local}}
---
apiVersion:v1
kind:PersistentVolume
metadata:
name:{{.name}}
labels:
name:{{.name}}
spec:
storageClassName:{{$.Values.persistence.storageClass}}
capacity:
storage:{{$.Values.persistence.size}}
accessModes:
-ReadWriteOnce
local:
path:{{.path}}
nodeAffinity:
required:
nodeSelectorTerms:
-matchExpressions:
-key:kubernetes.io/hostname
operator:In
values:
-{{.host}}
---
{{-end}}
  • 添加kafka/templates/storage-class.yaml
kind:StorageClass
apiVersion:storage.k8s.io/v1
metadata:
name:{{.Values.persistence.storageClass}}
provisioner:kubernetes.io/no-provisioner

3)開始安裝

#先準備好鏡像
dockerpulldocker.io/bitnami/kafka:3.2.1-debian-11-r16
dockertagdocker.io/bitnami/kafka:3.2.1-debian-11-r16myharbor.com/bigdata/kafka:3.2.1-debian-11-r16
dockerpushmyharbor.com/bigdata/kafka:3.2.1-debian-11-r16

#node-export
dockerpulldocker.io/bitnami/kafka-exporter:1.6.0-debian-11-r8
dockertagdocker.io/bitnami/kafka-exporter:1.6.0-debian-11-r8myharbor.com/bigdata/kafka-exporter:1.6.0-debian-11-r8
dockerpushmyharbor.com/bigdata/kafka-exporter:1.6.0-debian-11-r8

#JXM
docker.io/bitnami/jmx-exporter:0.17.1-debian-11-r1
dockertagdocker.io/bitnami/jmx-exporter:0.17.1-debian-11-r1myharbor.com/bigdata/jmx-exporter:0.17.1-debian-11-r1
dockerpushmyharbor.com/bigdata/jmx-exporter:0.17.1-debian-11-r1

#開始安裝
helminstallkafka./kafka-nkafka--create-namespace

NOTES

NAME:kafka
LASTDEPLOYED:SunSep1820022022
NAMESPACE:kafka
STATUS:deployed
REVISION:1
TESTSUITE:None
NOTES:
CHARTNAME:kafka
CHARTVERSION:18.4.2
APPVERSION:3.2.1
---------------------------------------------------------------------------------------------
WARNING

Byspecifying"serviceType=LoadBalancer"andnotconfiguringtheauthentication
youhavemostlikelyexposedtheKafkaserviceexternallywithoutany
authenticationmechanism.

Forsecurityreasons,westronglysuggestthatyouswitchto"ClusterIP"or
"NodePort".Asalternative,youcanalsoconfiguretheKafkaauthentication.

---------------------------------------------------------------------------------------------

**Pleasebepatientwhilethechartisbeingdeployed**

Kafkacanbeaccessedbyconsumersviaport9092onthefollowingDNSnamefromwithinyourcluster:

kafka.kafka.svc.cluster.local

EachKafkabrokercanbeaccessedbyproducersviaport9092onthefollowingDNSname(s)fromwithinyourcluster:

kafka-0.kafka-headless.kafka.svc.cluster.local:9092
kafka-1.kafka-headless.kafka.svc.cluster.local:9092
kafka-2.kafka-headless.kafka.svc.cluster.local:9092

TocreateapodthatyoucanuseasaKafkaclientrunthefollowingcommands:

kubectlrunkafka-client--restart='Never'--imagedocker.io/bitnami/kafka:3.2.1-debian-11-r16--namespacekafka--command--sleepinfinity
kubectlexec--tty-ikafka-client--namespacekafka--bash

PRODUCER:
kafka-console-producer.sh

--broker-listkafka-0.kafka-headless.kafka.svc.cluster.local:9092,kafka-1.kafka-headless.kafka.svc.cluster.local:9092,kafka-2.kafka-headless.kafka.svc.cluster.local:9092
--topictest

CONSUMER:
kafka-console-consumer.sh

--bootstrap-serverkafka.kafka.svc.cluster.local:9092
--topictest
--from-beginning

ToconnecttoyourKafkaserverfromoutsidethecluster,followtheinstructionsbelow:

Kafkabrokersdomain:YoucangettheexternalnodeIPfromtheKafkaconfigurationfilewiththefollowingcommands(ChecktheEXTERNALlistener)

1.Obtainthepodname:

kubectlgetpods--namespacekafka-l"app.kubernetes.io/name=kafka,app.kubernetes.io/instance=kafka,app.kubernetes.io/component=kafka"

2.Obtainpodconfiguration:

kubectlexec-itKAFKA_POD--cat/opt/bitnami/kafka/config/server.properties|grepadvertised.listeners

Kafkabrokersport:YouwillhaveadifferentnodeportforeachKafkabroker.Youcangetthelistofconfigurednodeportsusingthecommandbelow:

echo"$(kubectlgetsvc--namespacekafka-l"app.kubernetes.io/name=kafka,app.kubernetes.io/instance=kafka,app.kubernetes.io/component=kafka,pod"-ojsonpath='{.items[*].spec.ports[0].nodePort}'|tr'''
')"

00c57486-3822-11ed-ba43-dac502259ad0.png
查看 pod 狀態

kubectlgetpods,svc-nkafka-owide
00dface8-3822-11ed-ba43-dac502259ad0.png

4)測試驗證

#登錄zookeeperpod
kubectlexec-itkafka-0-nkafka--bash

1、創建 Topic(一個副本一個分區)

--create:指定創建topic動作

--topic:指定新建topic的名稱

--bootstrap-server:指定kafka連接地址

--config:指定當前topic上有效的參數值,參數列表參考文檔為:Topic-levelconfiguration

--partitions:指定當前創建的kafka分區數量,默認為1個

--replication-factor:指定每個分區的復制因子個數,默認1個
kafka-topics.sh--create--topictest001--bootstrap-serverkafka.kafka:9092--partitions1--replication-factor1
#查看
kafka-topics.sh--describe--bootstrap-serverkafka.kafka:9092--topictest001

00faab10-3822-11ed-ba43-dac502259ad0.png

2、查看 Topic 列表

kafka-topics.sh--list--bootstrap-serverkafka.kafka:9092

3、生產者/消費者測試

【生產者】

kafka-console-producer.sh--broker-listkafka.kafka:9092--topictest001

{"id":"1","name":"n1","age":"20"}
{"id":"2","name":"n2","age":"21"}
{"id":"3","name":"n3","age":"22"}

【消費者】

#從頭開始消費
kafka-console-consumer.sh--bootstrap-serverkafka.kafka:9092--topictest001--from-beginning
#指定從分區的某個位置開始消費,這里只指定了一個分區,可以多寫幾行或者遍歷對應的所有分區
kafka-console-consumer.sh--bootstrap-serverkafka.kafka:9092--topictest001--partition0--offset100--grouptest001

4、查看數據積壓

kafka-consumer-groups.sh--bootstrap-serverkafka.kafka:9092--describe--grouptest001

5、刪除 topic

kafka-topics.sh--delete--topictest001--bootstrap-serverkafka.kafka:9092

5)Prometheus 監控

Prometheus:

https://prometheus.k8s.local/targets?search=kafka

01089248-3822-11ed-ba43-dac502259ad0.png

可以通過命令查看采集數據

kubectlget--rawhttp://10.244.2.165:9308/metrics

Grafana:https://grafana.k8s.local/
賬號:admin,密碼通過下面命令獲取

kubectlgetsecret--namespacegrafanagrafana-ojsonpath="{.data.admin-password}"|base64--decode;echo

導入 grafana 模板,集群資源監控:11962
官方模塊下載地址:

https://grafana.com/grafana/dashboards/

6)卸載

helmuninstallkafka-nkafka

kubectldeletepod-nkafka`kubectlgetpod-nkafka|awk'NR>1{print$1}'`--force
kubectlpatchnskafka-p'{"metadata":{"finalizers":null}}'
kubectldeletenskafka--force

zookeeper + kafka on k8s 環境部署 就先到這里了,小伙伴有任何疑問,歡迎給我留言!

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3794

    瀏覽量

    64362
  • kafka
    +關注

    關注

    0

    文章

    51

    瀏覽量

    5216
  • zookeeper
    +關注

    關注

    0

    文章

    33

    瀏覽量

    3670

原文標題:14 張圖詳解 Zookeeper + Kafka on K8S 環境部署

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    搭建K8s環境平臺的步驟

    1 搭建K8s環境平臺規劃1.1 單master集群1.2 多master集群
    發表于 11-04 06:03

    Kafka集群環境的搭建

    1、環境版本版本:kafka2.11,zookeeper3.4注意:這里zookeeper3.4也是基于集群模式部署。2、解壓重命名tar
    發表于 01-05 17:55

    OpenStack與K8s結合的兩種方案的詳細介紹和比較

    OpenStack與K8S結合主要有兩種方案。一是K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發表于 10-14 09:38 ?2.7w次閱讀

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對強大的集群,成千上萬的容器,突然感覺不香了。 這時候就需要我們的主角 Kubernetes 上場了,先來了解一下 K8s 的基本概念,后面再介紹實踐,由淺入深步步為營
    的頭像 發表于 06-02 11:56 ?3437次閱讀

    簡單說明k8s和Docker之間的關系

    這篇文章主要介紹了k8s和Docker關系簡單說明,本文利用圖文講解的很透徹,有需要的同學可以研究下 最近項目用到kubernetes(以下簡稱k8sks之間有
    的頭像 發表于 06-24 15:48 ?3405次閱讀

    mysql部署k8s上的實現方案

    的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件之一。這里主要講 mysql 部署k8s 上,mysql 部署
    的頭像 發表于 09-26 10:39 ?2506次閱讀

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡稱K8s,是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful
    發表于 07-19 13:14 ?1113次閱讀

    什么是K3sK8sK3sK8s有什么區別?

    Kubernetes,通常縮寫為 K8s,是領先的容器編排工具。該開源項目最初由 Google 開發,幫助塑造了現代編排的定義。該系統包括了部署和運行容器化系統所需的一切。
    的頭像 發表于 08-03 10:53 ?7518次閱讀

    k8s架構篇:服務部署模式是如何變遷的

    kubernetes,簡稱 K8s,是用 8 代替中間 8 個字符 “ubernete” 而成的縮寫,是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes 的目標是讓
    的頭像 發表于 10-15 15:39 ?648次閱讀
    <b class='flag-5'>k8s</b>架構篇:服務<b class='flag-5'>部署</b>模式是如何變遷的

    zookeeperkafka的關系

    KafkaZookeeper是一個用于協調分布式系統的開源軟件。它提供了一種分布式的協同服務,可以管理和維護大規模集群中的配置信息、命名服務、分布式鎖和分布式隊列等。Zookeeper的設計目標是提供一種簡單而效率高的分布
    的頭像 發表于 12-03 16:39 ?1531次閱讀

    K8S落地實踐經驗分享

    k8s 即 Kubernetes,是一個開源的容器編排引擎,用來對容器化應用進行自動化部署、 擴縮和管理。
    的頭像 發表于 01-02 11:45 ?1117次閱讀
    <b class='flag-5'>K8S</b>落地實踐經驗分享

    納尼?自建K8s集群日志收集還能通過JMQ保存到JES

    推薦采用單獨部署的方案。 二、新方案實踐 1.新方案簡介 在京東內網環境部署 K8S 并 收集日志 , kafk
    的頭像 發表于 09-30 14:45 ?209次閱讀

    k8s可以部署私有云嗎?私有云部署全攻略

    Kubernetes(簡稱K8S)可以部署私有云。Kubernetes是一個開源的容器編排引擎,能夠自動化容器的部署、擴展和管理,使得應用可以在各種環境中高效運行。通過使用Kubern
    的頭像 發表于 10-25 09:32 ?158次閱讀

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網絡連接。接著,配置kubeconfig文件連接兩集群,并安裝云服務插件以實現資源互通。然后,編寫Deployment文件
    的頭像 發表于 11-07 09:37 ?141次閱讀

    k8s和docker區別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環境,具備自動化
    的頭像 發表于 12-11 13:55 ?76次閱讀
    主站蜘蛛池模板: 袖珍人与大黑人性视频| 加勒比一本之道高清视频在线观看| 综合色就爱涩涩涩综合婷婷| 亚洲一区综合图区| 亚洲天堂久久久| 中文字幕在线免费视频| 18亚洲男同gay1069| 99热国产这里只有精品9九| 99精品久久| 大咪咪dvd| 国产精品第1页在线观看| 国产精品丰满人妻AV麻豆| 丰满大屁俄罗斯肥女| 国产免费人视频在线观看免费 | 久久综合色悠悠| 毛片在线看片| 色综合伊人色综合网站| 亚洲精品AV中文字幕在线| 伊在香蕉国产在线视频| 99精品视频在线观看免费播放| 成人无码国产AV免费看| 国产精品亚洲专一区二区三区 | 国产亚洲精品久久无码98 | 在线观看日本免费| 拔萝卜在线高清观看视频| 国语自产一区第二页| 暖暖 日本 视频 在线观看免费| 色多多污版app下载网站| 亚洲午夜久久久久中文字幕| 78m成人亚洲| 国产精品亚洲AV色欲在线观看| 久久激情网| 少妇精油按摩| 最近中文字幕完整版免费| 床伴在线观看免费高清完整泰剧第四集| 国产九色在线| 热久久国产欧美一区二区精品| 亚洲欧美综合中文| 国产成人女人视频在线观看| 邻居的阿2中文字版电影| 小柔的性放荡羞辱日记动漫|