2019独角兽企业重金招聘Python工程师标准>>>

主要参考了https://www.cnblogs.com/00986014w/p/9561901.html 这篇博文,但他zookeeper使用的不是官方镜像

我使用的是3个节点的Zookeeper集群,可以参照着修改。

搭建Zookeeper集群

集群Service的zookeeper-svc.yaml

apiVersion: v1
kind: Service
metadata:labels:app: zookeeper-cluster-service-1name: zookeeper-cluster1
spec:ports:- name: client port: 2181protocol: TCP- name: followerport: 2888protocol: TCP- name: leaderport: 3888protocol: TCPselector:app: zookeeper-cluster-service-1
---
apiVersion: v1
kind: Service
metadata:labels:app: zookeeper-cluster-service-2name: zookeeper-cluster2
spec:ports:- name: clientport: 2181protocol: TCP- name: followerport: 2888protocol: TCP- name: leaderport: 3888protocol: TCPselector:app: zookeeper-cluster-service-2
---
apiVersion: v1
kind: Service
metadata:labels:app: zookeeper-cluster-service-3name: zookeeper-cluster3
spec:ports:- name: clientport: 2181protocol: TCP- name: followerport: 2888protocol: TCP- name: leaderport: 3888protocol: TCPselector:app: zookeeper-cluster-service-3

通过sudo kubectl create -f zookeeper-svc.yaml创建3个Service。

集群Deployment的zookeeper-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:labels:app: zookeeper-cluster-service-1 name: zookeeper-cluster-1
spec:replicas: 1template:metadata:labels:app: zookeeper-cluster-service-1name: zookeeper-cluster-1 spec:containers:- image: zookeeperimagePullPolicy: IfNotPresentname: zookeeper-cluster-1 ports:- containerPort: 2181env:- name: ZOO_MY_IDvalue: "1"- name: ZOO_SERVERSvalue: "server.1=0.0.0.0:2888:3888 server.2=zookeeper-cluster2:2888:3888 server.3=zookeeper-cluster3:2888:3888"
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:labels:app: zookeeper-cluster-service-2name: zookeeper-cluster-2
spec:replicas: 1template:metadata:labels:app: zookeeper-cluster-service-2name: zookeeper-cluster-2spec:containers:- image: zookeeperimagePullPolicy: IfNotPresentname: zookeeper-cluster-2ports:- containerPort: 2181env:- name: ZOO_MY_IDvalue: "2"- name: ZOO_SERVERSvalue: "server.1=zookeeper-cluster1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zookeeper-cluster3:2888:3888"
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:labels:app: zookeeper-cluster-service-1name: zookeeper-cluster-3
spec:replicas: 1template:metadata:labels:app: zookeeper-cluster-service-3name: zookeeper-cluster-3spec:containers:- image: zookeeperimagePullPolicy: IfNotPresentname: zookeeper-cluster-3ports:- containerPort: 2181env:- name: ZOO_MY_IDvalue: "3"- name: ZOO_SERVERSvalue: "server.1=zookeeper-cluster1:2888:3888 server.2=zookeeper-cluster2:2888:3888 server.3=0.0.0.0:2888:3888"

通过sudo kubectl create -f zookeeper-deployment.yaml创建3个Deployment。

检查集群是否启动成功

等3个Pod成为Running状态后,通过sudo kubectl log zookeeper-cluster-1-xxxxxx检查日志中是否有错误。

然后通过sudo kubectl exec -it zookeeper-cluster-1-676df4686f-c7b6d /bin/bash分别进入两个Pod,执行/bin/zkCli.sh分别创建查看,试试是否能成功。

搭建Kafka集群

集群Service的kafka-svc.yaml

apiVersion: v1
kind: Service
metadata:name: kafka-cluster1labels:app: kafka-cluster-1
spec:type: NodePortports:- port: 9092name: kafka-cluster-1targetPort: 9092nodePort: 30091protocol: TCPselector:app: kafka-cluster-1
---
apiVersion: v1
kind: Service
metadata:name: kafka-cluster2labels:app: kafka-cluster-2
spec:type: NodePortports:- port: 9092name: kafka-cluster-2targetPort: 9092nodePort: 30092protocol: TCPselector:app: kafka-cluster-2
---
apiVersion: v1
kind: Service
metadata:name: kafka-cluster3labels:app: kafka-cluster-3
spec:type: NodePortports:- port: 9092name: kafka-cluster-3targetPort: 9092nodePort: 30093protocol: TCPselector:app: kafka-cluster-3

通过sudo kubectl create -f kafka-svc.yaml创建3个Service。

集群Deployment的kafka-deployment.yaml

这里需要注意,要把envKAFKA_ADVERTISED_HOST_NAME改成各个Pod对应Service的ClusterIP。

PS: 如果上面zookeeper的service和我定义的不同,就对应着修改KAFKA_ZOOKEEPER_CONNECT

kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: kafka-cluster-1
spec:replicas: 1selector:matchLabels:name: kafka-cluster-1 template:metadata:labels:name: kafka-cluster-1app: kafka-cluster-1spec:containers:- name: kafka-cluster-1image: wurstmeister/kafkaimagePullPolicy: IfNotPresentports:- containerPort: 9092env:- name: KAFKA_ADVERTISED_PORTvalue: "9092"- name: KAFKA_ADVERTISED_HOST_NAMEvalue: "[zookeeper-cluster1  的 ClusterIP]"- name: KAFKA_ZOOKEEPER_CONNECTvalue: zookeeper-cluster1:2181,zookeeper-cluster2:2181,zookeeper-cluster3:2181- name: KAFKA_BROKER_IDvalue: "1"
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: kafka-cluster-2
spec:replicas: 1selector:matchLabels:name: kafka-cluster-2template:metadata:labels:name: kafka-cluster-2app: kafka-cluster-2spec:containers:- name: kafka-cluster-2image: wurstmeister/kafkaimagePullPolicy: IfNotPresentports:- containerPort: 9092env:- name: KAFKA_ADVERTISED_PORTvalue: "9092"- name: KAFKA_ADVERTISED_HOST_NAMEvalue: "[zookeeper-cluster2 的  ClusterIP]"- name: KAFKA_ZOOKEEPER_CONNECTvalue: zookeeper-cluster1:2181,zookeeper-cluster2:2181,zookeeper-cluster3:2181- name: KAFKA_BROKER_IDvalue: "2"
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: kafka-cluster-3
spec:replicas: 1selector:matchLabels:name: kafka-cluster-3template:metadata:labels:name: kafka-cluster-3app: kafka-cluster-3spec:containers:- name: kafka-cluster-3image: wurstmeister/kafkaimagePullPolicy: IfNotPresentports:- containerPort: 9092env:- name: KAFKA_ADVERTISED_PORTvalue: "9092"- name: KAFKA_ADVERTISED_HOST_NAMEvalue: "[zookeeper-cluster3  的  ClusterIP]"- name: KAFKA_ZOOKEEPER_CONNECTvalue: zookeeper-cluster1:2181,zookeeper-cluster2:2181,zookeeper-cluster3:2181- name: KAFKA_BROKER_IDvalue: "3"

通过sudo kubectl create -f zookeeper-deployment.yaml创建3个Deployment。

检查集群是否启动成功

等3个Pod成为Running状态后,通过sudo kubectl log kafka-cluster-1-xxxxxx检查日志中是否有错误。

然后通过sudo kubectl exec -it -sudo kubectl exec -it kafka-cluster-1-558747bc7d-5n94p /bin/bash进入Pod,执行kafka-console-producer.sh --broker-list [zookeeper-cluster1 的 ClusterIP]:9092 --topic test创建了topic test

通过sudo kubectl exec -it kafka-cluster-2-66c88f759b-8wlvp /bin/bash进入Pod,执行kafka-console-consumer.sh --bootstrap-server [zookeeper-cluster2 的 ClusterIP]:9092 --topic test --from-beginning接收topic test的消息。

然后试着在cluster-1中发送消息,看看在cluster-2中是否能接收。

转载于:https://my.oschina.net/jianming/blog/2870757

Kubernetes搭建Zookeeper和Kafka集群相关推荐

  1. Kafka Without ZooKeeper ---- 不使用zookeeper的kafka集群

    不使用zookeeper的kafka集群 前言 ZooKeeper的缺点 Kakfa Without ZooKeeper简介 Kakfa Without ZooKeeper的优势 总结 参考链接 前言 ...

  2. 大数据 -- zookeeper和kafka集群环境搭建

    一 运行环境 从阿里云申请三台云服务器,这里我使用了两个不同的阿里云账号去申请云服务器.我们配置三台主机名分别为zy1,zy2,zy3. 我们通过阿里云可以获取主机的公网ip地址,如下: 通过secu ...

  3. zookeeper 和 kafka 集群搭建

    Kafka初识 1.Kafka使用背景 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户 ...

  4. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群

    有时候为了更好地了解kafka集群的运行机制,需要自己搭建kafka集群.本文的目的就是让大家在单机上快速搭建kafka集群(仅作为单机测试使用). 环境及工具版本 mac OS 10.15.5 ka ...

  5. ZooKeeper和Kafka集群部署

    1. 基础环境配置 (1)主机名配置 使用secureCRT对3台云主机进行连接. 3个节点修改主机名为zookeeper1.zookeeper2.zookeeper3,命令如下: zookeeper ...

  6. Zookeeper与Kafka集群搭建

    一 :环境准备: 物理机window7 64位 vmware 3个虚拟机 centos6.8  IP为:192.168.17.[129 -131] JDK1.7安装配置 各虚拟机之间配置免密登录 安装 ...

  7. MQ 系列之 ActiveMQ 搭建 Zookeeper + Replicated LevelDB 集群

    1.1 简介 1.1.1 概述   从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Masster-Slave 方式.,增加了基于 Zookeeper + Level ...

  8. kubernetes搭建 二、Etcd集群

    etcd需要在master和node上都部署,首先在master上部署,然后把相关的二进制文件和程序拷贝到node上再修改即可 1.下载二进制包然后解压 wget https://github.com ...

  9. zeekooper集群搭建_Zookeeper与Kafka集群搭建完整教程

    修改完后:在/yybTest/zookeeper/data目录下建立一个myid的文本文件 直接vim myid会直接进入,保存后会自动创建这个.在里面写上对应数字1,这里1对上server后面的那数 ...

最新文章

  1. 关于反射GetType().GetProperties()的疑惑
  2. the code place where the binding is converted to final value displayed in u
  3. 信号与系统实验:信号抽样
  4. mysql扩展文件_MySQL中的空间扩展
  5. 【NeurIPS2020】之预训练语言模型压缩
  6. 奔图 Pantum P2206NW 打印机驱动
  7. MusicXML文档翻译(持续更新)
  8. Intellij idea破解2017
  9. JAVA 生成随机数两种方式
  10. 拼音打字时不定时出现重复字母
  11. mysql创建表插入随机数_插入随机数到MySQL数据库
  12. 阮一峰老师-Auth 2.0 的一个简单解释
  13. 金蝶K/3 ERP 基于Citrix Access Gateway 的SSL ××× 部署方案
  14. 全同态加密(FHE):BV方案、密钥切换、模约化、自举
  15. A-MPDU与A-MSDU各是什么意思
  16. springboot之微信支付与退款
  17. 互联网日报 | 6月28日 星期一 | B站成立哔哩哔哩快乐奖学金;百度成立独立芯片公司昆仑芯;FF将于7月21日纳斯达克上市...
  18. 如何使用 Typora 创建思维导图
  19. 计算机的表白隐藏功能,微信隐藏符号功能大全 情人节可以发这些表白
  20. 成都盛铭轩:直通车小知识

热门文章

  1. 机器人售卖雪糕机_智能售货机售货机,冰淇淋厂
  2. 我愿意参加计算机俱乐部的英文,如果你是一英语俱乐部的负责人你会组织什么活动...
  3. mysql使用中遇到的问题吗_MySQL使用中遇到的问题及解决办法
  4. excel 某个单元格不是等于空值_excel 单元格为空与不存在
  5. 两个组件连线_如何正确的使用日志组件 Log4j、SLF4J、Logback
  6. 完美解决“惠普p1007打印机老显示脱机使用”的问题
  7. MATLAB中的三角函数单位问题
  8. 【 SIMULATION 】RMSE Comparison of Linear Approaches for TOA - Based Positioning
  9. Uber开源TensorFlow框架工具箱Ludwig,无需编码即可进行深度学习开发
  10. fragment生命周期